我有一個由文本框的值填充的串列框。當我單擊多個專案并運行查詢時,我得到一個空白結果。欄位資料型別均為 ShortText。
如果我只選擇一項,查詢就可以正常作業。這是我的示例代碼。
Private Sub txt_testexport_Click()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim varItem As Variant
Dim StrSQz As String
Dim strx As String
Dim lst As ListBox
Set db = CurrentDb()
Set qdf = db.QueryDefs("qry_export")
Set lst = [Forms]![frm_search]![lst_rec]
For Each varItem In Me!lst_rec.ItemsSelected
strx = strx & "," & Me!lst_rec.ItemData(varItem) & ""
Next varItem
If Len(strx) = 0 Then
MsgBox "Nothing Selected from List" _
, vbExclamation, "Nothing to find"
Exit Sub
End If
strx = Right(strx, Len(strx) - 1)
StrSQz = "SELECT TargetCDRs.OtherParty, TargetCDRs.TargetNumber, TargetCDRs.Description,
TargetCDRs.Duration, TargetCDRs.StartDateTimeLocal, " & _
"TargetCDRs.EndDateTimeLocal, TargetCDRs.Direction, TargetCDRs.SubType " & _
"FROM TargetCDRs " & _
"WHERE ((TargetCDRs.OtherParty)=[Forms]![frm_search]![txt_rec]) AND
(TargetCDRs.TargetNumber IN('" & strx & "'));"
qdf.SQL = StrSQz
DoCmd.OpenQuery "qry_export"
Set lst = Nothing
Set db = Nothing
Set qdf = Nothing
End Sub
表格樣本

uj5u.com熱心網友回復:
需要單引號:
strx = strx & ",'" & Me!lst_rec.ItemData(varItem) & "'"
' <snip>
"WHERE (TargetCDRs.OtherParty=[Forms]![frm_search]![txt_rec]) AND
(TargetCDRs.TargetNumber IN(" & strx & "));"
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/459703.html
