こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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
--------------------------------------------------------------

投稿日時 - 2007-05-17 10:32:25

QNo.3006971

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

いったんループする前に

adoRS.MoveLast

してから

adoRS.MoveFirst

してみてはいかがでしょうか。

投稿日時 - 2007-05-18 20:50:19

お礼

ご返答ありがとうございます。

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

投稿日時 - 2007-05-21 11:54:10

ANo.1

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

投稿日時 - 2007-05-17 15:38:20

お礼

ご返答ありがとうございます。

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

ありがとうございました。

投稿日時 - 2007-05-21 11:53:06

あなたにオススメの質問