Beste,
Ik krijg de foutmelding "1004-This operation cannot be done because the data is refreshing in the background" in onderstaand stukje code.
Voer ik de subroutine uit door op F5 te drukken in de subroutine, geen probleem, maar wanneer ik de subroutine aanroep vanuit een vbs-script krijg ik de foutmelding op de regel:
.CommandText = Array("SELECT SKUBONTS.SKTMSTAV, SKUBONTS.SKTMSTUV FROM C600789C.GPC.SKUBONTS SKUBONTS")
Hoe kan ik dit oplossen?
Gr,
Ariane
Ik krijg de foutmelding "1004-This operation cannot be done because the data is refreshing in the background" in onderstaand stukje code.
Voer ik de subroutine uit door op F5 te drukken in de subroutine, geen probleem, maar wanneer ik de subroutine aanroep vanuit een vbs-script krijg ik de foutmelding op de regel:
.CommandText = Array("SELECT SKUBONTS.SKTMSTAV, SKUBONTS.SKTMSTUV FROM C600789C.GPC.SKUBONTS SKUBONTS")
Hoe kan ik dit oplossen?
Gr,
Ariane
Code:
VBA-code:
On Error GoTo Erh_automatischePrintopdracht
Dim intErrorCount
intErrorCount = 0
TryAgain_automatischePrintopdracht:
x = ActiveSheet.Name
Sheets("param").Select
Range("Tabel_Query_van_ged[SKTMSTAV]").Select
With ActiveWorkbook.Connections("Query van ged").ODBCConnection
'.BackgroundQuery = True
.CommandText = Array( _
"SELECT SKUBONTS.SKTMSTAV, SKUBONTS.SKTMSTUV FROM C600789C.GPC.SKUBONTS SKUBONTS" _
)
.CommandType = xlCmdSql
.Connection = "ODBC;DSN=ged;"
.RefreshOnFileOpen = False
.RefreshPeriod = False 'refresh afzetten !!
.SavePassword = False
.SourceConnectionFile = ""
.SourceDataFile = ""
.ServerCredentialsMethod = xlCredentialsMethodIntegrated
.AlwaysUseConnectionFile = False
End With
Sheets(x).Select
'==============================EINDE VAN refresh afzetten=============================
automatischePrintopdrachtHang
automatischePrintopdrachtFlat
On Error GoTo 0
Exit Sub
Erh_automatischePrintopdracht:
If Err.Number = 1004 And intErrorCount < 100 Then
'This operation cannot be done because the data is refreshing in the background.
intErrorCount = intErrorCount + 1
Application.Wait (Now + #12:00:15 AM#) 'wacht 15 seconden
GoTo TryAgain_automatischePrintopdracht
End If
'MsgBox "Fout in AutomatischePrintopdracht: (" & Err.Number & ") - " & Err.Description
Resume Next
vbs-script:
' Dit scriptje zal onderstaand exceldocument openen en op de achtergrond enkele macro's uitvoeren
On Error Resume Next
Dim appExcel
Dim objExel
Dim strSH
Dim pwd
Dim path
' Create new instance of Microsoft Excel.
Set appExcel = WScript.CreateObject("Excel.Application")
'Op de achtergrond draaien
appExcel.Visible = true
path = "Picking_Sheet.xlsm"
appExcel.Workbooks.Open path , 3 , True
'Run macro
appExcel.Run "automatischePrintopdracht"
'Excel afsluiten
'appExcel.quit
appExcel.DisplayAlerts = False
appExcel.Quit
Laatst bewerkt door een moderator: