掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
一つのテーブルから複数の条件でレコードセットを取得するには? (ID:113444)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして。VBを始めてまだ間もない50才の超ビギナーです。どうしても自己解決できないので、お知恵を拝借したく、書き込みました。長文で読みづらいかもしれませんがよろしくお願いします。 data.mdbの中の個人情報テーブルから複数の条件(氏名、住所、電話番号)で検索してレコードセットを取得しようとしています。が、下記のコードで実行すると、テーブルにある全てのデータがデータグリッドに表示されてしまい、必要とするデータだけを抽出することが出来ません。 「メニュー / デバッグ」の「カーソルの直前までを実行」 を実施して変数に入っている文字を調べてみると strsql = "select * from 個人情報 where '" & criteria & "'" の部分が,検索条件が氏名と電話番号の場合を例にとると、 strsql = "select * from 個人情報 where '氏名 = 山田 太郎 and 電話番号 = 0123456789'" という様になっています。前後の ' を何とかはずそうとしましたが、うまく出来ません。 データは全てテキストです。VB6を使用しています。よろしくお願いします。 Private cn As ADODB.Connection Private rs As ADODB.Recordset Dim strsql As String Dim tt As String Dim tn As String Dim ta As String Dim rc As String Dim key(1 To 3) As String Dim i As Integer Dim crlen As String Dim criteria As String ---------------------------------------------------------------- Private Sub Form_Load() Set cn = New ADODB.Connection cn.ConnectionString = "provider=microsoft.jet.OLEDB.4.0;" _ & "data source=c:\data.mdb" cn.Open End Sub --------------------------------------------------------------- Private Sub cmd1_Click() tt = Text1.Text tn = Text2.Text ta = Text3.Text If tt = "" Then key(1) = "" Else key(1) = "電話番号=" & tt End If If tn = "" Then key(2) = "" Else key(2) = "氏名=" & tn End If If ta = "" Then key(3) = "" Else key(3) = "住所 =" & ta End If criteria = "" For i = 1 To 3 If key(i) = "" Then ' Else criteria = criteria & key(i) & " and " End If Next i If criteria = "" Then Exit Sub End If crlen = Len(criteria) criteria = Left(criteria, crlen - 5) ’最終の" and "を取り除く strsql = "select * from 個人情報 where '" & criteria & "'" Set rs = New ADODB.Recordset rs.ActiveConnection = cn rs.Source = strsql rs.CursorType = adOpenStatic rs.LockType = adLockReadOnly rs.Properties("irowsetidentity") = True rs.Open Set dg1.DataSource = rs rc = rs.RecordCount End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.