16.01.2019, 11:29
Hallo zusammen,
ich habe eine ODBC Verbindung welche ca. 1 Minute zum aktualisieren dauert. Nun springt Excel im Makro zu schnell weiter zum nächsten Punkt.
Es soll hier aber so lange warten bis tatsächlich alle Daten aktualisiert wurden.
Ich habe ein bisschen recherchiert und bin hier auf eine mögliche Lösung gestoßen:
https://stackoverflow.com/questions/2208...nishes-vba
Ich würde es lieber so wie in einem anderen Beispiel das hier angegeben wurde lösen:
Hier springt das Makro einfach bei diesem Schritt weiter und lässt den ganzen unteren Block aus:
For Each objConnection In ThisWorkbook.Connections
Irgendjemand hat dann hier kommentiert:
Das habe ich auch versucht, aber irgendetwas mache ich noch falsch.
Hat hier jemand einen Tipp / Hinweis wie ich das von einer OLEDB auf eine ODBC Verbindung umstellen kann?
Für mich sieht es so aus als würde das Problem bereits hier liegen, als würde VBA hier die ODBC Verbindung nicht als objConnection erkennen.
For Each objConnection In ThisWorkbook.Connections
Danke und lg
Olli
ich habe eine ODBC Verbindung welche ca. 1 Minute zum aktualisieren dauert. Nun springt Excel im Makro zu schnell weiter zum nächsten Punkt.
Es soll hier aber so lange warten bis tatsächlich alle Daten aktualisiert wurden.
Ich habe ein bisschen recherchiert und bin hier auf eine mögliche Lösung gestoßen:
https://stackoverflow.com/questions/2208...nishes-vba
Code:
'~~> your code here before refresh
Activeworkbook.RefreshAll
DoEvents
'~~> rest of your code here after refresh
Ich würde es lieber so wie in einem anderen Beispiel das hier angegeben wurde lösen:
Code:
Sub Refresh_All_Data_Connections()
For Each objConnection In ThisWorkbook.Connections
'Get current background-refresh value
bBackground = objConnection.OLEDBConnection.BackgroundQuery
'Temporarily disable background-refresh
objConnection.OLEDBConnection.BackgroundQuery = False
'Refresh this connection
objConnection.Refresh
'Set background-refresh value back to original value
objConnection.OLEDBConnection.BackgroundQuery = bBackground
Next
MsgBox "Finished refreshing all data connections"
End Sub
Hier springt das Makro einfach bei diesem Schritt weiter und lässt den ganzen unteren Block aus:
For Each objConnection In ThisWorkbook.Connections
Irgendjemand hat dann hier kommentiert:
Code:
This worked for me, but using ODBCConnection instead of OLEDB. – Dan Nov 20 '14 at 16:05
Das habe ich auch versucht, aber irgendetwas mache ich noch falsch.
Hat hier jemand einen Tipp / Hinweis wie ich das von einer OLEDB auf eine ODBC Verbindung umstellen kann?
Für mich sieht es so aus als würde das Problem bereits hier liegen, als würde VBA hier die ODBC Verbindung nicht als objConnection erkennen.
For Each objConnection In ThisWorkbook.Connections
Danke und lg
Olli
WIN 10 64-Bit Pro / EXCEL Microsoft Office 365 ProPlus 64-Bit