2011-05-26 83 views
-1

表名是水,它有兩個字段fname和序列號。ms訪問數據庫搜索不按預期工作

在字段fname中假設一個值'bill'有3個序列1,2和3.現在我需要當我在文本框1中鍵入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 
+0

請解釋什麼錯誤! – Dabblernl 2011-05-26 07:46:13

+0

它不工作的方式?你是否收到任何錯誤訊息? – mdm 2011-05-26 11:14:32

+0

重新提出相同的問題在這裏是不可接受的行爲。如果你想引起人們對你的問題的關注,那麼兩天後你將被允許[放置賞金](http://stackoverflow.com/faq#bounty)。您也可以[編輯您的問題](http://stackoverflow.com/posts/6136258/edit)添加其他信息,這可能會使您的問題更易於理解和回答。 – Will 2011-05-26 12:53:46

回答

0

我真的不知道是什麼問題,但你的循環應該看起來更像是這樣的:

rs4.MoveFirst 
Do While Not rs4.EOF 
    Combo1.AddItem rs4("holding") 
    rs4.MoveNext 
Loop 
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 
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