VB6.0を使って資料のデーターベースを作っているのですが、質問させてください。
アクセスのmdbファイルからデータを読みとり、Command1ボタンを押した際にテキストボックスに入力した任意の文字列が含む資料名のレコードを抽出する機能を持たせています。
また、OPTIONボタンでA~Jまでの資料区分ごとに絞り込みを行う機能(option7を押した場合は全資料区分から検索)も持たせているのですが、テキストボックスに文字列を入力後、OPTIONボタンで資料区分Aを検索⇒Command1ボタン⇒OPTIONボタンで資料区分B⇒Command1ボタン等のように繰り返しての検索をすると時折フリーズして動かなくなります。特に該当レコードが0の後に発生する場合が多いようです
原因が分からず困っています。よろしくお願いします。
Private Sub Command1_Click()
Dim kubun As String '文字列型 資料の区分
Dim mojiretsu_k As String '文字列型 検索用文字列
Dim a As Integer
If Option7 = True Then'全文書区分から検索
ElseIf Option8 = True Then
kubun = "A"
ElseIf Option9 = True Then
kubun = "B"
ElseIf Option10 = True Then
kubun = "C"
ElseIf Option11 = True Then
kubun = "D"
ElseIf Option12 = True Then
kubun = "E"
ElseIf Option13 = True Then
kubun = "F"
ElseIf Option14 = True Then
kubun = "G"
ElseIf Option15 = True Then
kubun = "H"
ElseIf Option16 = True Then
kubun = "I"
ElseIf Option17 = True Then
kubun = "J"
End If
' 接続文字列を設定
Adodc1.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=資料.mdb;" & _
"Mode=Read"
' レコードソースにSQL文を指定
mojiretsu_k = Text1.Text
If Option18.Value = True Then '現行文書のみ検索
If Option7.Value = True Then'全文書区分から検索
Adodc1.RecordSource = "Select 資料区分,資料名称,ファイルパス From T_SHIRYO WHERE 資料名称 like'%" & mojiretsu_k & "%' and 廃止フラグ = False order by ID"
Else'指定された資料区分で検索
Adodc1.RecordSource = "Select 資料区分,資料名称,ファイルパス From T_SHIRYO WHERE 資料名称 like'%" & mojiretsu_k & "%' and 資料区分 = """ & kubun & """ and 廃止フラグ = False order by ID"
End If
ElseIf Option19.Value = True Then '廃止文書のみ検索
If Option7.Value = True Then
Adodc1.RecordSource = "Select 資料区分,資料名称,ファイルパス,廃止フラグ From T_SHIRYO WHERE 資料名称 like'%" & mojiretsu_k & "%' and 廃止フラグ = true order by ID"
Else
Adodc1.RecordSource = "Select 資料区分,資料名称,ファイルパス,廃止フラグ From T_SHIRYO WHERE 資料名称 like'%" & mojiretsu_k & "%' and 資料区分 = """ & kubun & """ and 廃止フラグ = true order by ID"
End If
ElseIf Option20.Value = True Then '現行+廃止文書を検索
If Option7.Value = True Then
Adodc1.RecordSource = "Select 資料区分,資料名称,ファイルパス,廃止フラグ From T_SHIRYO WHERE 資料名称 like'%" & mojiretsu_k & "%' order by ID"
Else
Adodc1.RecordSource = "Select 資料区分,資料名称,ファイルパス,廃止フラグ From T_SHIRYO WHERE 資料名称 like'%" & mojiretsu_k & "%' and 資料区分 = """ & kubun & """ order by ID"
End If
End If
' データを再取得
Adodc1.Refresh
With MSHFlexGrid1
.FocusRect = flexFocusNone
.HighLight = flexHighlightAlways
End With
End Sub
No.1ベストアンサー
- 回答日時:
ADODC1が何なのかよくわからないのでサンプルを書いておきます。
■ADOの接続
Dim oConn As ADODB.Connection
Dim oRec As ADODB.Recordset
Set oConn = New ADODB.Connection
'________mdb________にmdbまでのフルパスを書く
oConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=________mdb________")
'________SQL________に作成したSQL文
Set oRec = oConn.Execute("________SQL________")
While Not oRec.EOF
'________COL________にmdbのカラム名を書く
Debug.Print oRec.Fields("________COL________").Value
oRec.MoveNext
Wend
oRec.Close
Set oRec = Nothing
oConn.Close
Set oConn = Nothing
エラーになる原因は0件の場合に
With MSHFlexGrid1
.FocusRect = flexFocusNone
.HighLight = flexHighlightAlways
End With
で何をどこに入れるか判断が付かないのかなって思われます。
0件の時に回避できるようにしてはどうでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
VBAでパワーシェルを実行したい...
-
初心者powershellのPS1ファイル...
-
VBS パスに変数を入れたい
-
SaveAsの保存先について
-
Excel 相対パス
-
SHGetPathFromIDList によるパ...
-
相対パスが使えない
-
outlook開けない
-
【VB.NET】App.configにファイ...
-
VBAで、VBのapp.pathと同じ機能...
-
【VBA】ExcelマクロでCSVファイ...
-
フォルダ名だけを取得するVBA
-
エクセルマクロでファイル名の...
-
アプリケーションのインストー...
-
エクセルVBAで複数の変数に、パ...
-
ShellExecuteでエクセルファイ...
-
エクセルのマクロで特定フォル...
-
VBA・LOGの取り方で質問です
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
Excel 相対パス
-
【VB.NET】App.configにファイ...
-
xcopyコマンドの進行状況を表示...
-
【VBA】ExcelマクロでCSVファイ...
-
EXCEL(VBA)で指定フォルダ内の...
-
エクセルのマクロで特定フォル...
-
パスワード保護されたExcelファ...
-
ExcelVBAの使い方 ¥の使い方...
-
開いているファイルを削除し、...
-
SaveAsの保存先について
-
初心者powershellのPS1ファイル...
-
fopenでのパス指定
-
VBA★PDFをPDFアプリで印刷し...
-
【Excel VBA】Power Qurry のソ...
-
指定したフォルダ内の最新ファ...
-
A列に記載されているフォルダ...
-
ExcelのVBAで上書き保存を確...
おすすめ情報