vb6 หรือป่าว อย่า bound control กับ field เลยนะ codeเอาจะดีกว่า
sub form load ... If frmMain.Customers.Recordset.RecordCount > 0 Then While Not Customers.Recordset.EOF frmMain.cmbCID.AddItem Customers.Recordset.Fields("CID").Value frmMain.Customers.Recordset.MoveNext Wend End If
' Set References to microsoft Activex Data Object 2.7
Dim conn As ADODB.Connection
Private Sub Combo1_Change() Dim rs As ADODB.Recordset Dim SQLCommand As String Dim str As String On Error GoTo ERR_MSG
str = Trim$(Combo1.Text) If str <> "" Then text1.Text = "" Set rs = New ADODB.Recordset SQLCommand = "SELECT ID,NAME FROM tbCustomers WHERE ID = '" & Trim$(Combo1.Text) & "'" rs.Open SQLCommand, conn rs.CursorLocation = adUseClient If rs.RecordCount > 0 Then text1.Text = rs.Fields("Name").Value End If rs.Close
ERR_MSG: End Sub
Private Sub Form_Load() Dim rs As ADODB.Recordset
Dim strConnect As String Dim SQLCommand As String Dim i ' Use ODBC Connect Database On Error GoTo ERR_MSG strConnect = "DSN= dbCustomers" Set conn = New ADODB.Connection If conn.State = adStateOpen Then conn.Close conn.Open strConnect SQLCommand = "SELECT ID FROM tbCustomers " Set rs = New ADODB.Recordset rs.Open SQLCommand, conn rs.CursorLocation = adUseClient If rs.RecordCount > 0 Then For Each i In rs.RecordCount Combo1.AddItem rs.Fields("ID").Value Next rs.Close ERR_MSG: End Sub Private Sub Form_Unload(Cancel As Integer) If conn.State = adStateOpen Then conn.Close