• 締切済み

Access2003(VBA)でADO接続時にルーターのセッション増加

早速質問させていただきます。 WindowsXP上のAccess2003でDBServer(SQLSERVER2005Express)にADO接続でデータ要求を行うアプリを開発しました。 このアプリをDBServerがあるネットワークセグメント以外から実行するとルータのセッション数が見る見るうちに増加してルーターがハングアップしてしまいます。 調査してみたらADOのRecoredsetをMovenextする度にセッション数が増えるようです。そもそもADO接続では毎レコード毎?にセッションを張るような仕組みなのでしょうか? またこの現象を解消するにはどのような手法があるのでしょうか? ご教授のほどよろしくお願い致します。 -------------------------------------------------------------- Dim adoCON As New ADODB.Connection Dim adoRS As ADODB.Recordset '(1)ADOを使いSQL ServerのDBを開きます adoCON.Open "Driver={SQL Server};" & _ "server=SERVERNAME\SQLEXPRESS;          database=db_name; uid=sa; pwd=sa;" 'レコードセットの作成(SELECT文の実行) Set adoRS = adoCON.Execute("select * from 商品マスタ where 削除日=0") '//CSVデータ取り込み用配列の初期化 Erase arr() LineCount = 0 TblColCnt = 0 '最終レコードまで順読み込みを行う Do Until adoRS.EOF = True ReDim Preserve arr(ShouhinMSTMaxCol, LineCount) For cols = 1 To adoRS.Fields.Count - 1 TblColCnt = TblColCnt + 1 arr(TblColCnt, LineCount) = Trim$(adoRS(cols - 1)) Next LineCount = LineCount + 1 TblColCnt = 0 'レコードの順読み adoRS.MoveNext Loop 'レコードセットのクローズ adoRS.Close 'データベースのクローズ adoCON.Close 'オブジェクト変数のクリア Set adoRS = Nothing Set adoCON = Nothing --------------------------------------------------------------

みんなの回答

  • t2hayashi
  • ベストアンサー率46% (102/219)
回答No.2

いったんループする前に adoRS.MoveLast してから adoRS.MoveFirst してみてはいかがでしょうか。

adminchan
質問者

お礼

ご返答ありがとうございます。 結果的にネットワーク構成を見直すことで問題は解決されました。 ありがとうございました。

  • ape5
  • ベストアンサー率57% (85/148)
回答No.1

的はずれかもしれませんが、カーソルタイプとCursorLocationは何を使ってますか? もしかしたら、その辺を変更すると、よくなる・・かも?(チョー自信ないです。

adminchan
質問者

お礼

ご返答ありがとうございます。 この件ですが、カーソルタイプなど色々と調整してみたのですが改善されませんでした。 結果的にネットワーク構成を見直すことで問題は解決されました。 ありがとうございました。

関連するQ&A