学会用ItemData这个属性:)Option ExplicitPublic Conn As New ADODB.Connection Public Rs As New ADODB.RecordsetPrivate Sub cmdOK_Click() MsgBox Me.Combo1.Tag End SubPrivate Sub Combo1_Click() Me.Combo1.Tag = Me.Combo1.ItemData(Me.Combo1.ListIndex) End SubPrivate Sub Form_Load() Dim strConn As String strConn = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=pubs;Data Source=LocalHost" Conn.CursorLocation = adUseClient Conn.Open strConn If Rs.State <> adStateClosed Then Rs.Close Rs.Open "select * from jobs", Conn, adOpenStatic, adLockOptimistic Me.Combo1.Clear Do While Not Rs.EOF Me.Combo1.AddItem Trim(Rs(1) & "") Me.Combo1.ItemData(Me.Combo1.NewIndex) = Trim(Rs(0) & "") Rs.MoveNext Loop End Sub
莫衣老师的不错,通过Combo1.ItemData,Combo1可以变为2维的了。我以前的方法是,将记录集读到数组,显示相对应的值。 一个Form1,Combo1,AdoDc1 ADODC1选择连接你的SQL数据库,ADODC1的记录源选择你的表idnameinfo,Dim x() '通用位置的声明Private Sub Combo1_Click() '下拉列表代码,选择NAME,显示输出ID i = Combo1.ListIndex MsgBox x(1, i) End SubPrivate Sub Form_Load() Adodc1.Refresh n = Adodc1.Recordset.RecordCount Combo1.Clear If n > 0 Then ReDim x(1, n - 1) For i = 0 To n - 1 x(0, i) = Adodc1.Recordset("name") x(1, i) = Adodc1.Recordset("id") Adodc1.Recordset.MoveNext Combo1.AddItem x(0, i) Next End IfEnd Sub
Public Rs As New ADODB.RecordsetPrivate Sub cmdOK_Click()
MsgBox Me.Combo1.Tag
End SubPrivate Sub Combo1_Click()
Me.Combo1.Tag = Me.Combo1.ItemData(Me.Combo1.ListIndex)
End SubPrivate Sub Form_Load()
Dim strConn As String
strConn = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=pubs;Data Source=LocalHost"
Conn.CursorLocation = adUseClient
Conn.Open strConn If Rs.State <> adStateClosed Then Rs.Close
Rs.Open "select * from jobs", Conn, adOpenStatic, adLockOptimistic Me.Combo1.Clear Do While Not Rs.EOF
Me.Combo1.AddItem Trim(Rs(1) & "")
Me.Combo1.ItemData(Me.Combo1.NewIndex) = Trim(Rs(0) & "")
Rs.MoveNext
Loop
End Sub
一个Form1,Combo1,AdoDc1
ADODC1选择连接你的SQL数据库,ADODC1的记录源选择你的表idnameinfo,Dim x() '通用位置的声明Private Sub Combo1_Click() '下拉列表代码,选择NAME,显示输出ID
i = Combo1.ListIndex
MsgBox x(1, i)
End SubPrivate Sub Form_Load()
Adodc1.Refresh
n = Adodc1.Recordset.RecordCount
Combo1.Clear
If n > 0 Then
ReDim x(1, n - 1)
For i = 0 To n - 1
x(0, i) = Adodc1.Recordset("name")
x(1, i) = Adodc1.Recordset("id")
Adodc1.Recordset.MoveNext
Combo1.AddItem x(0, i)
Next
End IfEnd Sub