tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Recordsetをクリアにしても前回検索したレコードの内容が残ります
投稿日: 2008/07/26(Sat) 09:30
投稿者higuchi
VBで文書検索を行うシステムを作っているのですが、文字列を変えて検索するたびにMSHFlexGrid上に表示されるレコードが増えていきます。レコード数をカウントすると
レコード数自体は同じなのですが、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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。