私はMySQLをバックエンドとしてフロントエンドとして使用しています。かなり時間のかかるクエリで時間を節約するために、私はMySQLサーバにこれらを並列に実行させたいと思います。MS Access VBAからのODBC経由のMySQLクエリ:ADODB非同期実行が機能しません
現在、VBAに非同期に送信するように指示することはできません。私のコードは次のようになります:
Do While ...
Dim rs_newRecordSet As ADODB.Recordset
Set rs_newRecordSet = New ADODB.Recordset
rs_newRecordSet.Open Ext_TranslateQuery(str_query), Ext_Connection, , , adAsyncExecute
Loop
Do whileループの間に、いくつかのクエリがオプションadAsyncExecuteでレコードセットを通して開かれます。クエリはINSERT INTO ... SELECT FROM-QUeriesであるため、レコードセットには何も返されません。
問題は、adAsyncExecute-Optionが指定されていても、VBAはRecordset.Open-Commandが終了するまで待機しているようです。さらに、私がプロセスリストを表示すると、mysqlスキーマにというINSERT INTO ...クエリを持つスレッドが1つしか表示されません。
なぜVBAはクエリの実行を待つのですか?これをどのように変更できますか?
感謝 バスティアン
アクションクエリに 'rs.Open'を使用しないでください。代わりに 'conn.Execute'を使用してください。 – Parfait
それ以上の場合は、 'ADODB.Command'と' .Execute'を作成してください。 –
ありがとうございました、ADODB.Commandに切り替えました – Bastian