2017-05-25 4 views
0

レコードをテーブルシート2からテーブルシート3に移動したいとします。レコードを別のテーブルに移動するためのVBA

オブジェクトが開いているときに操作を実行できません。

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

コードの書式設定と同じ種類の間違いをしています。マークダウンエディタの '{}'オプションを使用してコードを適切にフォーマットしてください。 – Arulkumar

答えて

0

私は、クエリからのステートメントを実行しようとしているからだと思います。 次のコードを試してください。

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 
関連する問題