PDA

Vollständige Version anzeigen : Access- Query- Verbindung schließen


Piecha
03.07.2015, 07:53
Hallo zusammen,

Ich fange gerade an, mich mit Datenbanken zu befassen.
Zur Zeit erstelle ein Makro, welches mir aus einer .mdb, aus 5 unterschiedlichen Tabellen, Daten zusammensammelt. Da ich die daraus resultierende Auswertung nur einmalig aktualisiere, möchte ich sicher gehen, das ich die mit:


With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array(SQL_ODBC), Array(SQLEinstellungen)), Destination:=Range("$A$1")).QueryTable
.CommandText = Array(SQL_SELECT0, SQL_SELECT1, SQL_SELECT2, SQL_SELECT3, SQL_SELECT4, SQL_SELECT5, SQL_SELECT_ENDE, SQL_FROM & vbNewLine, SQL_WHERE & vbNewLine, SQL_ORDER_BY)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Tabelle_Abfrage_von_MS_Access_Database"
.Refresh BackgroundQuery:=False
End With


geöffnete Verbindung, sauber schließe.

Welche Möglichkeiten stehen mir zur verfügung?

Danke

Piecha

ios707
03.07.2015, 11:24
Da ich die daraus resultierende Auswertung nur einmalig aktualisiere, möchte ich sicher gehen, das ich die mit:
[ein Haufen Code]
geöffnete Verbindung, sauber schließe.


Ich verstehe nicht, was du an der Stelle befürchtest? Die Abfrage wird dir als Resultat die passenden Daten ZUM ZEITPUNKT DER ABFRAGE liefern. Wenn sich die Daten in der Datenbank in der nächsten Sekunde ändern, dann wird sich das Ergebnis der Abfrage NICHT automatisch aktualisieren, sondern du müsstest die Abfrage erneut ausführen um an die aktuellen Daten zu gelangen.


Welche Möglichkeiten stehen mir zur verfügung?


Je nachdem was du unter "sauber" verstehst, wird die Verbindung spätestens mit dem Beenden der Excel-Instanz automatisch geschlossen.

Piecha
06.07.2015, 07:24
Hallo,
wie schon erwähnt, sind es derzeit 5 Tabellen, aus denen ich die Daten hole. Ich realisiere es so, dass ich Tabelle 1 selektiere und lade. Danach die Daten wie benötigt aufbereite. Als nächstes lösch ich die Daten aus dem Import- Blatt und hole mir die nächste Tabelle, sortiere die Daten ein, und so weiter. Alle nachgeladenen Daten basieren auf den Auftragsnummern der ersten Tabelle und werden nach dem Auswerten nicht mehr benötigt.

Mir ist nun aufgefallen, dass sich nach dem Öffnen meiner Tabelle die Access- Datenbank (zumindest auf meinen Rechner) merkwürdig verhält. Ev. ist dies auf einen Versionskonflikt zurück zu führen (Access97 zu Office 2013)

Ich möchte auf jeden Fall sicher gehen, das Microsoft, im Hintergrund nicht irgendwelchen Dummfug macht, und aus diesem Grund ein Access- Anwender Probleme hat.

Danke
Piecha