• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Error: This operation cannot be done because the data is refreshing in the background

Status
Niet open voor verdere reacties.

linkav

Gebruiker
Lid geworden
13 jun 2007
Berichten
465
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










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:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan