组合框行来源数据快速输入(一)

 

致敬每一位奋斗者

手机边亲爱的大家,好久不见!

今天还是五一假期,大家都去哪里玩耍了?今天给大家分享一下组合框示例。

平时我们在使用组合框时,当选择的数据没有我们需要的,那我们该怎么去添加数据源的呢?

组合框的数据行来源类型有“表/查询”,“值列表”,“字段列表”我们只讲前两个类型,今天我们先来讲一下“表/查询”类型的方法。

 

组合框行来源数据快速输入(一)_第1张图片

01、建表

第一步,我们先添加一张表,这张表我们做为组合框的数据源。

组合框行来源数据快速输入(一)_第2张图片

 

组合框行来源数据快速输入(一)_第3张图片

02、新建窗体

这里我们需要添加两个窗体,一个是放组合框的窗体,一个是用于添加数据的窗体。

首先,第一个窗体,我们只需要放一个组合框与一个按钮。

组合框行来源数据快速输入(一)_第4张图片

第二个窗体,是用于添加的客户信息窗体

组合框行来源数据快速输入(一)_第5张图片

 

组合框行来源数据快速输入(一)_第6张图片

03、添加代码

第一个窗体的按钮的单击事件。

Private Sub cmdAdd_Click()
    selectcomb = Nz(Me.客户, "")
    DoCmd.OpenForm "frm客户_edit", , , , , acDialog, "客户新增"
    Me.客户.Requery
    Me.客户 = selectcomb
End Sub

其中有一个全局变量名:selectcomb,这个需要定义在通用模块中。这个变量主要是用于在添加新数据后,组合框能默认显示新添加的数据。

组合框行来源数据快速输入(一)_第7张图片

第二个编辑窗体的代码

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

 

组合框行来源数据快速输入(一)_第8张图片

03、运行

最后就是运行测试了。

组合框行来源数据快速输入(一)_第9张图片

好的,大家快去测试一下吧。

组合框行来源数据快速输入(一)_第10张图片

 

 

你可能感兴趣的:(vba,Access开发,组合框,access,vba)