Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1532to1536
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code wird nach Datenbank-Abfrage nicht ausgeführt

Code wird nach Datenbank-Abfrage nicht ausgeführt
10.01.2017 12:57:32
Silas
Hallo,
ich habe in Excel eine Tabelle mit Verbindung zu einer Access-Datenbank. Über VBA bearbeite ich die Verbindungseigenschaften der Tabelle und ändere den Befehlstyp auf "SQL" und ersetze den Befehlstext durch meine Abfrage. Danach wird die Tabelle aktualisiert, sodass die neuen Daten angezeigt werden. Im Anschluss sollen mehrere Funktionen ausgeführt werden, die u.A. die Formatierung der Tabelle ändern.
Allerdings wird der Code, der nach der Abfrage kommt, nicht (oder nur teilweise) ausgeführt. Setze ich einen Breakpoint (F9) nach der Abfrage, und lasse dann den Rest mit F5 durchlaufen, dann funktioniert alles. Ist der Breakpoint vor der Abfrage, wird lediglich die Datenbank aktualisiert und das war es (keine Fehlermeldung, Code wird auch nicht angehalten). Komischerweise werden aber die Funktionen ausgeführt, die nicht die Zellen der Tabelle bearbeiten.
Ich habe es auch schon mit einem Change-Event probiert, welches ausgelöst wird, sobald sich die Daten der Tabelle ändern, das klappt aber auch nicht. Nach der Abfrage ein paar Sekunden zu warten (Application.Wait), hat auch nichts gebracht.
Der Code ist insgesamt recht umfangreich, weshalb ich diesen hier (noch) nicht einfüge. Falls jemand unbedingt einen Blick darauf werfen möchte, kann ich ihn als Kommentar einfügen.
Vielleicht hatte ja schon mal jemand ein ähnliches Problem? Bin für jede Hilfe dankbar!
Grüße
Silas

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code wird nach Datenbank-Abfrage nicht ausgeführt
10.01.2017 13:39:27
EtoPHG
Hallo Silas,
Was du mit der Änderungs des Befehlstyp auf "SQL" meinst, ist mir völlig unklar.
Ein QueryTable-Objekt hat eine BackgroundQuery Eigenschaft, die per default auf TRUE steht. Benutze beim Refresh den Parameter BackgroundQuery:=False. Damit wird die Kontrolle an VBA erst nach der vollständigen Erfüllung der Abfrage zurückgegeben.
Gruess Hansueli
AW: Code wird nach Datenbank-Abfrage nicht ausgeführt
10.01.2017 14:40:00
Silas
Hallo Hansueli,
hat man in Excel die Tabelle ausgewählt, kann man über den Reiter "Daten" auf "Eigenschaften" und dann ist rechts neben dem Verbindungsnamen der Button "Verbindungseigenschaften". Klickt man darauf und wechselt im sich öffnenden Fenster zum Reiter "Definition", so kann man dort den Befehlstyp ändern (was das genau ist, weiß ich auch nicht, ich stelle es immer auf "SQL", da ich ja dann im Befehlstext meine Abfrage schreibe).
Ich aktualisiere die DB so:
With ActiveWorkbook.Connections("availability_plan").OLEDBConnection
.CommandText = sql
.CommandType = xlCmdSql
End With
ActiveWorkbook.Connections("availability_plan").Refresh
Wobei "sql" der String ist, der meine Abfrage enthält.
Wie genau ändere ich jetzt den von dir genannten Parameter?
So geht es nicht:
ActiveWorkbook.Connections("availability_plan").Refresh BackgroundQuery:=False
Schon mal Danke für die Hilfe!
Gruß
Silas
Anzeige
AW: Code wird nach Datenbank-Abfrage nicht ausgeführt
10.01.2017 15:24:55
EtoPHG
Hallo Silas,
Du hast verschwiegen, dass es sich um eine OLEDBConnection handelt.
Diese Art der Verbindung kennt keine Parameter für die Refresh-Methode.
Du könntest in deinem With...End With noch ein .BackgroundQuery = False einschieben, damit solltest du das Gleiche erreichen.
Gruess Hansueli
AW: Code wird nach Datenbank-Abfrage nicht ausgeführt
10.01.2017 15:31:42
Silas
Hallo Hansueli,
`tschuldigung, dachte, das wäre irrelevant (wieder was gelernt).
Jetzt klappt alles, vielen, vielen Dank! Das hat mir wirklich sehr geholfen!
Gruß
Silas

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige