2016-09-07 106 views
1

我试图在Access中创建一个表单,在那里我将有一个“搜索键入”功能来查找客户,然后双击列表框中的正确匹配以更新客户信息文本框。我成功了“搜索输入”部分,但不是列表框双击更新表单部分。为什么我在此VBA中为Access代码获取错误代码?

我不断收到以下错误RunSQL:“A RunSQL语句需要由SQL语句的参数”

的事情是,在SQL语句中的查询工作得很好。

下面的代码:

Private Sub lstClient_DblClick(Cancel As Integer) 
    Dim selectedItem, strSQL, strSQL1 As String 
    Dim i As Integer 

    i = lstClient.ListIndex 
    selectedItem = lstClient.ItemData(i) 
    txtCustName.Value = selectedItem 

    strSQL = "SELECT tblClient.[Addresse] FROM tblClient WHERE tblClient.[Nom] ='" & selectedItem & "';" 

    strSQL1 = "SELECT tblClient.[Addresse] FROM tblClient WHERE tblClient.[Nom] ='Bernache Funeral home';" 

    DoCmd.RunSQL (strSQL1) 
    Text191.Value = strSQL1 
End Sub 

第二条语句(strSQL1)是一个我在查询试图以确保它的工作,它做到了。

提前致谢!

+0

'RunSQL'是更新,插入和删除。您想要打开一个记录集或使用其他一些机制来选择数据。 –

+0

通过使用其他人的代码并删除RunSQL语句,我现在就开始工作了,谢谢! –

回答

1

试着这么做

Dim db As Database 
Dim rs As DAO.Recordset 

Set db = CurrentDb 
Set rs = db.OpenRecordset(strSQL1) 
Text191.Value = rs.Fields("Addresse").Value 

Set rs = Nothing 
Set db = Nothing 
+0

我收到一个新的错误消息:“Ms Access数据库引擎找不到输入表或查询,请确保它存在并且其名称拼写正确” –

+0

我必须删除RunSQL行并进行一些修改,但现在它正在工作。非常感谢!这个解决方案在Google上很难找到......我尝试了许多资源“MS在VBA中访问SQL”以及类似的东西。 谢谢! –

+0

是不是把值放在“Text191.Value = rs.Fields(”Addresse“)结尾的值。 它现在没有工作 –