如何从 ComboBox ItemData 中检索 ID

How to retrieve ID from ComboBox ItemData

我有 table 个客户。每个客户都有一个 ID。我正在从 SQL 服务器加载一个组合框,并且只显示名字和姓氏。我创建了这个简单的 select 语句。

sql= Select ID, FirstName, LastName 
sql =From dbo.tblClients order by LastName
g_rs.open, sql, g_Database
cboNames.AddItem vbNullString
cboNames.ItemData(cboNames.NewIndex) = 0
While Not g_RS.EOF
    cboNames.AddItem g_RS("LastName") & ", " & g_RS("FirstName") & 
    g_RS.MoveNext
Wend

我的问题是关于何时从组合框中实际选择名称。我如何知道分配给该客户的 ID。

您没有在循环中分配 ItemData。您的代码应如下所示:

While Not g_RS.EOF
    cboNames.AddItem g_RS("LastName") & ", " & g_RS("FirstName")
    cboNames.ItemData(cboNames.NewIndex) = g_RS("ID")
    g_RS.MoveNext
Wend

然后,在其他代码中,您可以从所选项目的 ItemData:

中检索 ID
Private Sub cboNames_Click()
   Dim selectedID as Integer
   If cboNames.ListIndex > 0 Then
      selectedID = cboNames.ItemData(cboNames.ListIndex)
   End If
End Sub