
VBで文書検索を行うシステムを作っているのですが、文字列を変えて検索するたびにMSHFlexGrid上に表示されるレコードが増えていきます。原因がわかりません。よろしくお願いします。
Private Sub Command1_Click()
Dim kubun As String '文字列型
Dim mojiretsu_k As String '文字列型
Dim A As Integer '
Dim cn As New ADODB.Connection 'データベースに接続するためのコネクションオブジェクト
Dim cmd As ADODB.Command
Dim rst As ADODB.Recordset
Dim strSQL As String
Dim i 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
Set cn = New ADODB.Connection
cn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=aaa.mdb;" & _
"Mode=Read"
cn.Open
Set rst = New ADODB.Recordset
' レコードソースにSQL文を指定
mojiretsu_k = Text1.Text
If Option18.Value = True Then '現行文書のみ検索
If Option7.Value = True Then
strSQL = "Select 資料区分,資料名称,ファイルパス From T_SHIRYO WHERE 資料名称 like'%" & mojiretsu_k & "%' and 廃止フラグ = False order by ID"
Else
strSQL = "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
strSQL = "Select 資料区分,資料名称,ファイルパス,廃止フラグ From T_SHIRYO WHERE 資料名称 like'%" & mojiretsu_k & "%' and 廃止フラグ = true order by ID"
Else
strSQL = "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
strSQL = "Select 資料区分,資料名称,ファイルパス,廃止フラグ From T_SHIRYO WHERE 資料名称 like'%" & mojiretsu_k & "%' order by ID"
Else
strSQL = "Select 資料区分,資料名称,ファイルパス,廃止フラグ From T_SHIRYO WHERE 資料名称 like'%" & mojiretsu_k & "%' and 資料区分 = """ & kubun & """ order by ID"
End If
End If
rst.Open strSQL, cn, adOpenStatic, adLockOptimistic, adCmdText
i = 0
Do While Not rst.EOF
With Form1.MSHFlexGrid1
.AddItem ""
.TextMatrix(i, 0) = rst.Fields("資料区分")
.TextMatrix(i, 1) = rst.Fields("資料名称")
.TextMatrix(i, 2) = rst.Fields("ファイルパス")
End With
i = i + 1
rst.MoveNext
Loop
rst.Close
cn.Close
Set rst = Nothing
Set cn = Nothing
End Sub
No.1ベストアンサー
- 回答日時:
前回の検索結果を削除していないので検索を実行するたびに結果が増えていくのは当然でしょう
MSHFlexGrid1.Clearとして一度初期化してから
Doループを実行してみましょう
Clearメソッドで不具合があるのでしたらRemoveItemを使って不要な結果を削除するようにしてください
for n = MSHFlexGrid1.Rows to 1 step -1
MSHFlexGrid1.RemoveItem n
next
といった具合です
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
Excel 相対パス
-
エクセルVBAで一つ上の階層...
-
ExcelVBAの使い方 ¥の使い方...
-
xcopyコマンドの進行状況を表示...
-
C#でのProcess.Startと変数path
-
VBA★PDFをPDFアプリで印刷し...
-
Eclipse
-
コマンドプロンプトのコピー関...
-
初心者powershellのPS1ファイル...
-
EXCEL(VBA)で指定フォルダ内の...
-
VBAでの共有パスにつきまして
-
VBS パスに変数を入れたい
-
C++でネットワークパスのファイ...
-
指定したフォルダ内の最新ファ...
-
コマンドプロンプトでファイル...
-
ファイルストリームからファイ...
-
【VB.NET】App.configにファイ...
-
デスクトップなど特殊フォルダ...
-
VBで文書を検索するシステムを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
Excel 相対パス
-
【VB.NET】App.configにファイ...
-
【VBA】ExcelマクロでCSVファイ...
-
エクセルのマクロで特定フォル...
-
実行ファイルのパスを取得したい
-
コマンドプロンプトのコピー関...
-
VBA★PDFをPDFアプリで印刷し...
-
VBAでパワーシェルを実行したい...
-
ExcelVBAの使い方 ¥の使い方...
-
C#でのProcess.Startと変数path
-
ExcelのVBAで上書き保存を確...
-
開いているファイルを削除し、...
-
アプリケーションのインストー...
-
【VBA】複数のtxtファイルから...
-
EXCEL(VBA)で指定フォルダ内の...
-
fopenでのパス指定
-
パスワード保護されたExcelファ...
おすすめ情報