tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。