AccessのデータをExcelからSQL文を使って取り出しています。
複数のレコードセットを2次元配列に取り組むために
With My_RecSet
On Error Resume Next
.Open MySQL, My_DB
On Error GoTo 0
Application.Wait Now + TimeValue("00:00:01")
On Error GoTo RsCloseHdl
If .EOF And .BOF Then
'該当するレコードセットが一つもない場合
SQL_ext = -1 ←Function名
Exit Function
Else
SQL_ext = .GetRows
End If
としています。
私のパソコンの性能の関係かもしれませんが、ウエイトを入れないとたまに、レコードセットが1つ以上あるのにも関わらず.EOF And .BOF で引っ掛かります。1秒以下のウエイトの入れ方を教えて頂けませんか?
また、たまに、.Closeさせているにも関わらす、.Open MySQL, My_DBで、すでに開いているものに開けませんとエラーがでるので、やむなく、On Error Resume Nextとしています。限られた情報の提供となりますが、わかる範囲で教えて頂けないでしょうか?
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
> 1秒以下のウエイトの入れ方を教えて頂けませんか?
Sleep API が一番簡単かな。モジュールの先頭で以下のように宣言
しておき、ミリ秒(1秒=1000ミリ秒)単位でウェイトをかけられ
ます。
Declare Sub Sleep Lib "kernel32.dll" ( _
ByVal dwMilliseconds As Long)
Sub Test()
' 処理~
Sleep (500) ' 500ミリ秒
' 処理~
End Sub
Loop処理の中でウエイトを使っていたので、実際に処理する時間の3倍ぐらいがウエイトで占められていましたので大変助かります。
早速使わせて頂きます。
ありがとうございます。
No.2
- 回答日時:
だめもとで・・
>レコードセットが1つ以上あるのにも関わらず.EOF And .BOF で引っ掛かります
Dcount で判断させてから、あれば配列に代入とか?
>Closeさせているにも関わらず
Closeの処理を通ってないとか、.Close : Set My_RecSet = Nothing としてみるとか
カーソルタイプをadOpenDynamic などに変えてみるとか
回答ありがとうございます。
Accessは、初心者なのでいろいろと勉強していきたいと思います。
教えて頂いた点についても調べてみます。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
エクセルでXY座標に並べられた...
-
Excel2010のinputboxで複数デー...
-
Dir関数で読み取り順を操作でき...
-
CheckBoxの配列化
-
大量の変数を定義するにはどう...
-
定数配列の書き方
-
構造体配列内の文字列検索のよ...
-
OutOfMemoryExceptionの回避策...
-
vba フィルター 複数条件 3つ以...
-
2次元配列でウォッチが出来ない
-
Redim とEraseの違いは?
-
グラフの「項目軸ラベルに使用...
-
VBAでMODE関数をつくる
-
excel vbaの配列なんですが・・・
-
サイズのわからない配列
-
C#でbyte配列から画像を表示さ...
-
エクセル VBA 変数を一括で宣言...
-
配列のペースト出力結果の書式...
-
デバイスマネージャーの一覧取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
Excel2010のinputboxで複数デー...
-
vba フィルター 複数条件 3つ以...
-
C#でbyte配列から画像を表示さ...
-
配列のペースト出力結果の書式...
-
Dir関数で読み取り順を操作でき...
-
エクセルでXY座標に並べられた...
-
VBAで配列引数を値渡しできない...
-
C++で作成したDLLにVBAから配列...
-
構造体配列の特定のメンバーをF...
-
OutOfMemoryExceptionの回避策...
-
大量の変数を定義するにはどう...
-
VBAでMODE関数をつくる
-
VBScriptでCSVファイルを読み出...
-
定数配列の書き方
-
Segmentation Fault (メモリ制限?)
-
Excelのメモリ(配列)の上限は2G...
-
Redim とEraseの違いは?
-
CheckBoxの配列化
-
配列の中の最大値とそのインデ...
おすすめ情報