2017-05-25 1 views
0

Ich möchte Datensätze von Tabelle Sheet2 zu Tabelle Sheet3 verschieben. Ich bekomme einen Fehler alsVBA zum Verschieben von Datensätzen von einer Tabelle in eine andere

Operation kann nicht ausgeführt werden, wenn das Objekt geöffnet ist.

With Acon 
    .Provider = "Microsoft.ACE.OLEDB.12.0" 
    .ConnectionString = "Data Source=" + myFileNameDir 
    .Open 
End With 

With Rs 
    .CursorLocation = adUseClient 
    .CursorType = adOpenDynamic 
    .LockType = adLockOptimistic 
    .ActiveConnection = Acon 
    .Source = "Select * from [Sheet2] where [Manager Com]= 'OK'" 
    .Open 
End With 

With Rs1 
    .CursorLocation = adUseClient 
    .CursorType = adOpenDynamic 
    .LockType = adLockOptimistic 
    .ActiveConnection = Acon 
    .Source = "Select * from [Sheet3]" 
    .Open 
End With 

Dim strSQL As String 
strSQL = "INSERT INTO Sheet3 SELECT * From Sheet2 where [Manager Com]= 'OK'" 
Rs.Open strSQL 

Rs1.Close 
Rs.Close 
Acon.Close 

Set Rs = Nothing 
Set Acon = Nothing 
+0

Ihre alten Fragen Sehen Sie die gleiche Art von Fehlern für die Code-Formatierung tun. Bitte benutzen Sie die '{} 'Option im Markdown-Editor, um den Code richtig zu formatieren. – Arulkumar

Antwort

0

Ich vermute, es ist, weil Sie eine Anweisung aus einer Abfrage auszuführen versuchen. Versuchen Sie Folgendes:

Dim CMD As Object 
Dim strSQL As String 

With Acon 
    .Provider = "Microsoft.ACE.OLEDB.12.0" 
    .ConnectionString = "Data Source=" + myFileNameDir 
    .Open 
End With 

Set CMD = CreateObject("ADODB.Command") 
CMD.ActiveConnection = ACon 


strSQL = "INSERT INTO Sheet3 SELECT * From Sheet2 where [Manager Com]= 'OK'" 

CMD.CommandText = strSQL 
CMD.Execute 

Acon.Close 
Verwandte Themen