VB6でmdbファイルのレコードを検索かけた場合に時折エラーがでます。
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
お礼
お手数をおかけして申し訳ありません。 変数の中身を確認したところFalseでした。。 色々試してみたいと思います。
補足
LEN関数で直接ファイル指定したものとクリックイベントで変数に入力したものの文字列を数えたところ異なりました。 アクセスのDBを確認したところ、入力していた文字列がおかしかった(1文字の漢字の真ん中にカーソルが置ける様な状態??)ので、打ち直したところ正常にファイルを開くことができました。 どうも長時間ありがとうございました。