タイトル : VB2005からAccess2000への連携時のトラブル 投稿日 : 2008/06/25(Wed) 22:50 投稿者 : kiRITYAN
すいません。非常に困っています。どなたか手を貸してください。 開発言語 VB2005 Access2000 VB2005でメインの制御を行い、データはAccessに保存する処理を作成しています。 そこでVB2005からテキストデータをAccessにインポートする命令を与えるために、Accessのモジュールに記入した処理をVBから起動しています(大体下に示した感じです) ・txtはAccess側の処理が終わったのをVBが判別するのに使用しています。 →終了を判別する別の方法ありますか?(結局これでうまく行ってないのですが…) 問題はこの方法で取り込みを行うとテーブルに追加されるのに時間がかかるらしく 普通に動かすと追加するテーブルデータが0件になります。時間を空けて走らせると18件。 データテーブルのRowのcountをループ文で取ってみたのですが(txtが削除された後です) 2秒ぐらいたつと元レコードにデータが追加されたようでいきなり0件から18件になります。 どなたかこの問題を解決するアドバイスをお願いいたします。 ・ちなみにSQLでの抽出はこの前処理(同じプロシジャ)で同じSQLを使用して起動しています。 この処理で0件の場合のみ、Accessにtxtデータを取り込み、再度テーブルの件数が どうなったかを確認しています。 Accessの処理 Public sub Test() DoCmd.TransferText acImportFixed,"T_目マスタ","インポート定義","C:\i.txt",True kill("\\192.168.1.3\c\end.txt") ←終わった合図 End sub VB2005の処理 Private Sub CommandButton1_Click() はじめに\\192.168.1.3\c\end.txtにファイルを作成しておく Dim i as long Dim a As Object Dim Adapter As New OleDbDataAdapter(SQLCm) Dim Table As New DataTable Set a = GetObject("\\192.168.1.3\c\test.mdb") a.Run "Test" a=nothing do If System.IO.File.Exists("\\192.168.1.3\c\end.txt") Then i = i + 1 else exit do end if loop do SQLCm.CommandText = "SELECT 説明 FROM T_目マスタ WHERE 目ID = 2" SQLCm.ExecuteNonQuery() Adapter.Fill(Table) Table.Rows.Count ←ここを記録 loop End Sub |