选择一些东西并更改TextBox的文本 - #name?错误

时间:2010-10-21 13:17:52

标签: .net vb.net ms-access ms-access-2003

由于某种原因,我似乎无法发现,这失败了,我得到一个#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语句返回的内容。

2 个答案:

答案 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的数据库引擎,但它让我感到不安。 : - )