2016-04-22 15 views
0

Ich versuche, eine Datenbank in Access 2010 zu erstellen, und habe ein kleines Problem festgestellt. Ich habe derzeit zwei Tabellen, EarlyStageListResults & ESDailyTotals. Jede dieser Tabellen hat ein Feld mit dem Namen Records, wobei ESDailyTotals eine Zusammenfassung mehrerer Einträge in EarlyStageListResults ist. Was ich tun muss, ist das Records Feld in ESDailyTotals die Summe von mehreren Records Felder in EarlyStageListResults sein. Zum Beispiel, da die folgenden Datensätze in EarlyStageListResults:Berechne den Wert eines Felds basierend auf mehreren Datensätzen in einer anderen Tabelle in Access DB

Date   Records 
4/22/16  2000 
4/22/16  3000 
4/22/16  1500 
4/21/16  1200 
4/21/16  2700 

die Datensätze in ESDailyTotals sollten sein:

Date   Records 
4/22/16  6500 
4/21/16  3900 

Ich weiß, das später durch VBA und ein Formularereignis, berechnet werden kann, aber optimal würde ich gerne aktualisieren zu können, sobald sich eines der Records Felder in EarlyStageListResults ändert. Es scheint, als könnte es eine Möglichkeit geben, dies mit dem Access Macro Editor zu tun (nicht sicher über den Namen, aber das Tool, wo Sie ein Makro durch eine Reihe von Kombinationsfeldern anstatt über VBA erstellen können), aber ich habe es nie bekommen ein Verständnis für die Verwendung dieses Tools, so haben sich immer auf Forms und VBA verlassen. Wenn es ein Ereignis gibt, das ausgelöst wird, wenn ein Feld aktualisiert wird, und eine Möglichkeit, VBA-Code in diesen Ereignishandler einzugeben, wie Sie es mit Access Forms können, dann kann ich das mit DLookup oder einer SQL-Anweisung machen. Ich weiß, wie man diesen Event-Handler ergreift.

Dies muss alles in Access selbst getan werden, kann ich ein externes Programm nicht verwenden, um die Datensätze in einer Access-Datenbankdatei zu aktualisieren. Dies ist für die Arbeit, und (zumindest offiziell) sind alle benutzerdefinierten Programme ein großes Nein. :)

Vielen Dank im Voraus jeder!

Antwort

1

Sie machen diesen Weg zu kompliziert. Sie müssen nur eine Tabelle und eine Datenbank-View (eine Abfrage in Access genannt, glaube ich), die als

select Date, sum(Records) as Records from EarlyStageListResults 
group by Date 

Namen der Abfrage ESDailyTotals definiert ist.

+0

Das wird das Feld aber nicht richtig aktualisieren? Der Grund, warum ich sie brauche, ist, dass es Berechnungen gibt, die mit der Gesamtzahl pro Tag gemacht werden müssen. Ich hatte das vorher in einer anderen Form, was ich versuche zu vereinfachen ist es. Die vorherige Version hatte diese zwei Tabellen als eine einzige Tabelle kombiniert, und es funktioniert so, aber dann brauche ich ungefähr 10 Felder für jede Liste, und wenn sich ein Listenname ändert, dann muss ich hineingehen und die Felder ändern, was vorher bedeutet Daten sind viel schwieriger zugänglich. Ich versuche, es für zukünftige Änderungen aktualisierbar zu machen. –

+0

'Das wird das Feld nicht aktualisieren, richtig?' Ich weiß nicht, was das bedeutet oder auf welches Feld Sie sich beziehen. Es ist eine Abfrage, es wird die Summen im laufenden Betrieb jedes Mal berechnen, wenn "ESDailyTotals" aufgerufen wird. –

+0

Ich brauche die Ergebnisse der Berechnung, die im 'ESDailyTotals' 'Report'-Feld gespeichert werden, damit in späteren Berechnungen darauf zugegriffen werden kann. Es gibt ein Feld mit dem Namen "PercentTotal", das den Prozentsatz aller Konten speichert, die eine bestimmte Liste jeden Tag enthält. Wenn an einem bestimmten Tag insgesamt 6000 Konten vorhanden sind und Liste A 2000 davon enthält, würde das Feld "ProzentTotal" in Liste A 33% betragen. (Fortsetzung) –