Hallo,
ich habe ein VBA Script, welches eine Datenbankverbindung aufbaut, ein SQL-Statement an die Datenbank schickt und anschliesend die Datenbankverbindung trennt.
Das Skript funktioniert auch wunderbar aber ich schicke an die Datenbank ein SQL-Statement mit einer schleife welche etwas länger zur Ausführung braucht.
Nun habe ich ein Formular mit einer ProgressBar die für jeden Schritt gefüllt wird, was ja auch funktioniert für die Funktionen die Clientseitig ausgeführt werden aber, und jetzt meine Frage, kann ich den aktuellen Status der Datenbankabfrage abfragen?
Also damit der User sieht ob sich Excel aufgehangen hat oder noch etwas macht?
Am besten wäre es, wenn ich in meiner Schleife der Datenbankabfrage ein print einbauen würde, welches mir einen Counter hoch zählt und das Ergebnis dieses prints in Excel zurück gibt, so, dass es weiter verarbeitet werden kann und ich mit diesem Counter die ProgressBar füllen kann.
Ich hoffe ich habe mein Problem gut beschrieben und mir kann jemand weiter helfen. Falls ich was vergessen haben sollte oder etwas unklar ist dann reiche ich es gerne noch nach.
Vielen Dank schonmal im Vorraus
ich habe ein VBA Script, welches eine Datenbankverbindung aufbaut, ein SQL-Statement an die Datenbank schickt und anschliesend die Datenbankverbindung trennt.
Das Skript funktioniert auch wunderbar aber ich schicke an die Datenbank ein SQL-Statement mit einer schleife welche etwas länger zur Ausführung braucht.
Nun habe ich ein Formular mit einer ProgressBar die für jeden Schritt gefüllt wird, was ja auch funktioniert für die Funktionen die Clientseitig ausgeführt werden aber, und jetzt meine Frage, kann ich den aktuellen Status der Datenbankabfrage abfragen?
Also damit der User sieht ob sich Excel aufgehangen hat oder noch etwas macht?
Am besten wäre es, wenn ich in meiner Schleife der Datenbankabfrage ein print einbauen würde, welches mir einen Counter hoch zählt und das Ergebnis dieses prints in Excel zurück gibt, so, dass es weiter verarbeitet werden kann und ich mit diesem Counter die ProgressBar füllen kann.
Ich hoffe ich habe mein Problem gut beschrieben und mir kann jemand weiter helfen. Falls ich was vergessen haben sollte oder etwas unklar ist dann reiche ich es gerne noch nach.
Code:
'Schickt das übergebene SQL-Statement an die Datenbank Function executeSql(sqlString As String) As ADODB.Recordset On Error GoTo execute_err_end: 'Setzt ein Recordset für das Ergebnis der Abfrage Set executeSql = New ADODB.Recordset 'Setzt die Lokation auf welcher die Abfrage ausgeführt werden soll executeSql.CursorLocation = adUseClient 'Sendet das SQL-Statement an die bereits geöffnete Connection und schreibt sie in das Recordset executeSql.Open sqlString, conn, adOpenDynamic 'Debug.Print (sqlString & Chr(10)) Exit Function execute_err_end: Debug.Print ("___________________________________") Debug.Print ("Datenbankfehler!") Debug.Print (sqlString) Debug.Print (Err.Description) Debug.Print ("___________________________________") Err.Clear End Function
Comment