由于某种原因,我似乎无法发现,这失败了,我得到一个#Name?错误。当我尝试这样做时,我在我的表单中的另一个地方使用了几乎相同的代码;唯一的区别是“cbo”和我的txt等名称。
Private Sub cboVarenummer_AfterUpdate()
Dim LSQLVareNavn As String
LSQLVareNavn = "select Varenavn from VARENUMMER where VARENUMMER.Varenummer = '" & cboVarenummer & "'"
txtVarenavn.ControlSource = LSQLVareNavn
End Sub
有人可以发现我的错误吗?
我希望代码能做的是当我在cboVarenummer中Select
时,TextBox txtVarenavn将其文本更改为sql语句返回的内容。
答案 0 :(得分:0)
您是否不想在SQL查询中使用cboVarenummer.SelectedValue.Tostring(或cboVarenummer.SelectedItem.Tostring,具体取决于您如何填充组合框)?
答案 1 :(得分:0)
我希望代码能做的就是当我在cboVarenummer中选择一些内容时,我的txtbox txtVarenavn将其文本更改为sql语句返回的内容
在这种情况下,我认为你应该改变txtVarenavn的.Value属性而不是它的.ControlSource属性。
还可以使用DLookup()函数检索要存储在txtVarenavn.Value中的值
Private Sub cboVarenummer_AfterUpdate()
'Dim LSQLVareNavn As String '
Dim strWhere As String
'LSQLVareNavn = "select Varenavn from VARENUMMER where VARENUMMER.Varenummer = '" & cboVarenummer & "'" '
'txtVarenavn.ControlSource = LSQLVareNavn '
strWhere = "Varenummer = '" & Me!cboVarenummer & "'"
Me!txtVarenavn = DLookup("Varenummer", "Varenummerf", strWhere)
End Sub
将DLookup表达式与先前的SELECT语句进行比较。您可以看到字段名称,表名称和WHERE子句如何在两者之间对应。可以把DLookup想象成一个简单的SELECT ...它只返回一个值而不是一个记录集......但这正是你在这里需要的。
我还将表名更改为Varenummerf,正如您在@Ben评论中所列。作为表的VARENUMMER和作为字段名称的Varenummer可能不会混淆Access的数据库引擎,但它让我感到不安。 : - )