刚接到任务,做一个查询,我想知道有没有这个语句能够 查询 一个表里面 的任意字段的满足条件任意值,并切把所有满足的条件的值打印到没有连接到ADO的DATAGRID 里面呢.
下面是我写的 希望能够 让您更清楚我的意思.
Private Sub Form_Load()
Dim sql As String '定义一个变量来代表SQL语句
Set db = OpenDatabase("E:\mms2\mmsdb.mdb", False, True) '打开数据库
End SubPublic db As Database
Public rs As Recordset
Dim strsql As String
Dim strfield As String '存放输入的字节Private Sub Command1_Click()
strfield = strfield + Text1.Text '得到需要搜索的关键字
sql = "SELECT * FROM custerm where like + " & strfield 'SQL语句,打开price表中所有字段,并以ID号排序
Set rs = db.OpenRecordset(sql, dbOpenDynaset) '执行上面一条SQL语句If rs.EOF Then
rs.MoveFirst
Else
for i=1 to 8
Debug.Print rs(i) '打印数据
next i
rs.MoveNext
End IfEnd Sub
下面是我写的 希望能够 让您更清楚我的意思.
Private Sub Form_Load()
Dim sql As String '定义一个变量来代表SQL语句
Set db = OpenDatabase("E:\mms2\mmsdb.mdb", False, True) '打开数据库
End SubPublic db As Database
Public rs As Recordset
Dim strsql As String
Dim strfield As String '存放输入的字节Private Sub Command1_Click()
strfield = strfield + Text1.Text '得到需要搜索的关键字
sql = "SELECT * FROM custerm where like + " & strfield 'SQL语句,打开price表中所有字段,并以ID号排序
Set rs = db.OpenRecordset(sql, dbOpenDynaset) '执行上面一条SQL语句If rs.EOF Then
rs.MoveFirst
Else
for i=1 to 8
Debug.Print rs(i) '打印数据
next i
rs.MoveNext
End IfEnd Sub
应该是:sql = "SELECT * FROM custerm where like + " & strfield 'SQL语句,打开custerm表中所有字段,并以ID
得到某个ID的记录:假设你的ID字段是数值型(float、Int、BigInt、SmallInt等类型)
sql = "SELECT * FROM custerm where [ID] =" & strfield 如果ID是文本类型,数值需要用两个单引号括起来:
sql = "SELECT * FROM custerm where [ID] =' " & strfield & "'"
那这个查询出来的结果 怎么才能把 查到的所有满足条件的 行全部打印出来呢
Set rs = db.OpenRecordset(sql, dbOpenDynaset) '执行上面一条SQL语句If rs.EOF Then
rs.MoveFirst
Else
for i=1 to 8
Debug.Print rs(i) '打印数据
next i
rs.MoveNext
End If
这段代码能打印出所有满足条件的行吗?
还有为什么这句我怎么也不能正常运行! 为找到方法或数据错误
---------------------------------
你的rs是DAO类型的,而dataGrid是与ADO绑定了建议:查询和显示都用ADO来做
Private Sub Command1_Click()
strfield = strfield + Text1.Text '得到需要搜索的关键字
sql = "SELECT * FROM custerm where like + " & strfield 'SQL语句,打开price表中所有字段,并以ID号排序
Set rs = db.OpenRecordset(sql, dbOpenDynaset) '执行上面一条SQL语句If rs.EOF Then
rs.MoveFirst
Else
for i=1 to 8
Debug.Print rs(i) '打印数据
next i
rs.MoveNext
End IfEnd Sub为什么这段代码就只能执行一次呢 下次就没用了?
Debug.Print rs(i) '打印数据
rs.MoveNext
next i
打印要注意打印的地方.