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

时间:2009-09-28 07:10:55

标签: vb6

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

ComboBox代码。

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

在comboBox中显示ID列表,当我选择特定的人ID时,Name应显示在与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代码帮助

2 个答案:

答案 0 :(得分:1)

您需要组合框的click事件中的第二个代码块。

修改

在此行中您的代码中似乎还有另外几个问题:

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 & "'"
    

    答案 1 :(得分:1)

    为什么不让组合框显示名称并将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)。