2016-07-23 5 views
0

Ich habe eine Union-Abfrage, die nicht aktualisiert wird, wenn ich Access schließe und es erneut öffne.Union-Abfrage wird nicht aktualisiert, wenn ich die Datenbank schließe und erneut öffne

Die Union-Abfrage verfolgt 2 Seiten, 1 Seite hat Nummern, die zugewiesen wurden. Die andere Seite hat Zahlen, die nicht identifiziert sind.

Um dies so einfach wie möglich zu halten, ist der Name der Abfrage "TOTALS_FINAL" und es erzeugt die gewünschten Ergebnisse.

Aber es ist eine schwere Abfrage, so anstatt sie Datenquelle auf dem Formular zu machen Hier ist, wie ich die Werte auf dem Formular zeigen

Public Sub RefreshTOTALS() 

Dim db As DAO.Database 
Dim rs As DAO.Recordset 
'Dim rsSP As DAO.Recordset 

'dbOpenSnapshot is dramatically quicker than multiple Dlookups 
Set db = CurrentDb 
Set rs = db.OpenRecordset("TOTALS_FINAL", dbOpenSnapshot) 



With Form_frm_COB 

.txtTOTALS_AFP = rs!AFP 
.txtTOTALS_ALLT = rs!ALLT 
.txtTOTALS_SP_C = rs!SP_C 
.txtTOTALS_SP_O = rs!SP_O 
.txtTOTALS_COMMITS = rs!COMMITS 
.txtTOTALS_OBS = rs!OBS 
.txtTOTALS_COM_SP_RATE = rs!COM_SP_RATE 
.txtTOTALS_OBS_SP_RATE = rs!OBS_SP_RATE 
.txtTOTALS_UNC = rs!UNC 

Set rs = Nothing 
Set db = Nothing 

End Sub 

Wenn ich bitte Ihre Erlaubnis haben, habe ich darauf verzichtet die Details der Abfrage anzeigen, da diese Frage unnötig kompliziert wird. Es genügt zu sagen, dass, wenn ich die Datenbank schließe und sie wieder öffne, dies die einzige Möglichkeit ist, die Werte in dieser Abfrage zu aktualisieren.

Ich habe versucht rs.requery, aber es funktioniert auch nicht.

Ich kann mehr Teile dieser Abfrage zeigen, wenn relevante Fragen gestellt werden.

In der Hoffnung, gibt es eine programmatische Möglichkeit, dies zu aktualisieren, wenn sich die Daten in der zugrunde liegenden Abfrage ändern.

+0

Dies ist keine Antwort, die Ihnen sofort helfen wird, aber Sie sollten ernsthaft darüber nachdenken, die DB in eine geeignete Datenbank wie MSSQL oder Oracle oder MySQL zu verschieben. Und das Frontend wurde in einer ausgereiften Sprache/Framework wie .Net/C# geschrieben. Es wird Ihnen auf lange Sicht viel Kummer ersparen. (Sprechen aus Erfahrung) – objectNotFound

+0

@objectNotFound: Zugriff als Frontend ist in Ordnung, wenn Sie wissen, was Sie tun. – Andre

+0

Also diese UNION Abfrage gibt nur einen Datensatz zurück? Das ist ein bisschen seltsam. Und wenn Sie den obigen Sub-Befehl erneut ausführen, werden die Werte nicht aktualisiert? Was passiert, wenn Sie die Abfrage direkt öffnen? – Andre

Antwort

1

Lösung war: die Abfrage nahm einige seiner Daten aus einer Tabelle, Caches Daten von anderen Abfragen, und ist wahrscheinlich beim Start gefüllt.