ms访问数据库搜索无法按预期工作

时间:2011-05-26 09:17:16

标签: ms-access vb6

表名是water,它有两个字段fname和serial。

在fname字段中假设一个值'bill'有3个序列1,2和3.现在我需要当我在textbox1中键入bill并单击搜索按钮时,combobox1应该显示'bill'的序列号为1, 2和3。

我正在使用ms访问作为数据库,我正在使用此代码,但它无法正常工作。

还有其他方法可以解决这个问题吗?

Set rs4 = cn.Execute("select fname, serial from water where fname = '" & Text1.Text & "'")
rs4.MoveFirst
Do While Not rs4.EOF
    Combo1.AddItem rs4("serial")
    rs4.MoveNext
Loop

3 个答案:

答案 0 :(得分:2)

当有人在文本框中输入单引号时,您可能会遇到问题。你应该这样做:

Set rs4 = cn.Execute("select fname, serial from water where fname = '" & Replace(Text1.Text, "'", "''") & "'")

您可能遇到的另一个问题是,如果找不到匹配项。您没有检查记录集对象中是否有任何数据。

Combo1.Clear
Set rs4 = cn.Execute("select fname, serial from water where fname = '" & Replace(Text1.Text, "'", "''") & "'")
If not rs4.Eof Then
  rs4.MoveFirst
  Do While Not rs4.EOF
      Combo1.AddItem rs4("serial")
      rs4.MoveNext
  Loop
End If

答案 1 :(得分:0)

我不确定问题是什么,但你的循环应该看起来像这样:

rs4.MoveFirst
Do While Not rs4.EOF
    Combo1.AddItem rs4("holding")
    rs4.MoveNext
Loop

答案 2 :(得分:0)

您是否考虑过更明确地告诉编译器您想要什么,更像是:

Set rs4 = cn.Execute("select fname, serial from water where fname = '" & Text1.Text & "'")
With rs4
    Do Until .EOF
        Combo1.AddItem CStr(!serial.Value)
        .MoveNext
    Loop
End With