Vb6 当我从组合框中选择值时,相关值应显示在文本框中

Vb6 当我从组合框中选择值时,相关值应显示在文本框中,vb6,Vb6,当我从组合框中选择值时,相关值应显示在文本框中 组合框代码 cmd.CommandText = "select distinct PERSONID from T_PERSON" Set rs = cmd.Execute While Not rs.EOF If Not IsNull(rs("PersonID")) Then txtno.AddItem rs("PersonID") End If rs.MoveN

当我从组合框中选择值时,相关值应显示在文本框中

组合框代码

cmd.CommandText = "select distinct PERSONID from T_PERSON"
    Set rs = cmd.Execute
    While Not rs.EOF
        If Not IsNull(rs("PersonID")) Then
            txtno.AddItem rs("PersonID")
        End If
        rs.MoveNext
    Wend
在显示的ID组合框列表中,当我选择特定的个人ID时,姓名应该显示在与personid相关的文本框中

文本框

cmd.CommandText = "select distinct Name from T_Person where personid = '" & txtno & " '"
    Set rs = cmd.Execute

    While Not rs.EOF
       If Not IsNull(rs("Name")) Then
    txtName.Text = rs("Name")
           rs.MoveNext
        End If
    Wend
我把上面的代码放在Form_Load事件中,文本框中没有显示任何内容

我的代码有什么问题


需要VB6代码帮助

您需要组合框单击事件中的第二块代码

编辑

这一行代码中似乎还有几个问题:

cmd.CommandText = "select distinct Name from T_Person where personid = '" & txtno & " '"
2个问题:

  • 您将控件本身作为人员ID传递,而不是所选值
  • 在查询中,在人员ID之后有一个额外的空格
  • 您应该将该行更改为:

    cmd.CommandText = "select distinct Name from T_Person where personid = '" & txtno.SelectedItem.Text & "'"
    

    为什么不让组合框显示名称并将personID作为项目数据保存

    cmd.CommandText = "select distinct PERSONID, Name from T_PERSON WHERE PersonID IS NOT NULL"
    Set rs = cmd.Execute
    While Not rs.EOF
         combo.AddItem rs("Name").value
         combo.ItemData(combo.NewIndex) = rs("PERSONID").value
         rs.MoveNext
    Wend
    

    然后,如果您需要所选名称的PersonID,您只需抓取combo.ItemData(combo.ListIndex)。

    此回复正确,代码需要在Click事件中,而不是表单加载事件中。