平時我們在使用組合框時,當選擇的數據沒有我們需要的,那我們該怎么去添加數據源的呢?
組合框的數據行來源類型有“表/查詢”,“值列表”,“字段列表”我們只講前兩個類型,今天我們先來講一下“表/查詢”類型的方法。
01、建表
第一步,我們先添加一張表,這張表我們做為組合框的數據源。
02、新建窗體
這里我們需要添加兩個窗體,一個是放組合框的窗體易語言網頁填表組合框,一個是用于添加數據的窗體。
首先,第一個窗體易語言網頁填表組合框,我們只需要放一個組合框與一個按鈕。
第二個窗體,是用于添加的客戶信息窗體
03、添加代碼
第一個窗體的按鈕的單擊事件。
Private Sub cmdAdd_Click()

selectcomb = Nz(Me.客戶, "")
DoCmd.OpenForm "frm客戶_edit", , , , , acDialog, "客戶新增"
Me.客戶.Requery
Me.客戶 = selectcomb
End Sub
其中有一個全局變量名:,這個需要定義在通用模塊中。這個變量主要是用于在添加新數據后,組合框能默認顯示新添加的數據。
第二個編輯窗體的代碼
Private Sub Form_Load()
On Error Resume Next
If Me.OpenArgs = "客戶新增" Then
Me.客戶名稱 = selectcomb
Exit Sub

End If
End Sub
Private Sub btnSave_Click()
Dim strWhere As String
Dim strSQL As String
Dim cnn As Object 'ADODB.Connection
Dim rst As Object 'ADODB.Recordset
If IsNull(Me.客戶名稱) Then

MsgBox "請輸入客戶名稱", vbCritical, "提示"
Me.客戶名稱.SetFocus
Exit Sub
End If
Set cnn = CurrentProject.Connection
strSQL = "SELECT * FROM [tbl客戶表] WHERE [客戶編號]=" & Nz(Me![客戶編號], 0)
Set rst = New ADODB.Recordset
rst.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
If rst.EOF Then
rst.AddNew
End If

rst![客戶名稱] = Me![客戶名稱]
rst![電話] = Me![電話]
rst![地址] = Me![地址]
rst.Update
rst.Close
MsgBox "保存成功!", vbInformation
If Me.OpenArgs = "客戶新增" Then
selectcomb = Me.客戶名稱
End If
DoCmd.Close acForm, Me.Name, acSaveNo
Set rst = Nothing

Set cnn = Nothing
End Sub
Private Sub btnCancel_Click()
On Error Resume Next
DoCmd.Close acForm, Me.Name, acSaveNo
End Sub
03、運行
最后就是運行測試了。
好的,大家快去測試一下吧。