Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

【access小品】组合框新增数据--对猫版实例的改造

时 间:2010-08-11 15:52:40
作 者:todaynew   ID:10802  城市:武汉
摘 要:组合框新增数据--对猫版实例的改造
正 文:

  今日见猫版发一组合框自动添加数据的实例,觉得有点意思。说起来,文本框、组合框、列表框三个控件功能有很大的不同,文本框可以输入新数据,列表框是完全不能输入数据,组合框可以输入数据但是很折腾人。从综合性能来说,组合框相对较优。组合框的新数据的增加不像文本框那么简单,需要利用其独有的【不在列表中】事件。由于数据源的复杂性,也不是所有组合框都能实现新增数据的,或者说有些新增可能复杂到不如采取其他更为简单的方式处理,比如说组合框的数据源是一个分组查询或者联合查询什么的。


  猫版所发的实例,为一个特定的实例,缺乏通用性。想了想可以在此基础上,做一个相对通用的自定义函数,来一般性的解决组合框新增数据问题。于是写此例,供版友们参考。

点击下载此附件

 

 

Public Function newVal(ctl As Control, NewData As String, Response As Integer)
'功能:组合框添加数据
'适用:1、值列表
'      2、表或查询---仅适用一种情况:表中的ID字段为自动编号数据类型。
'示例:在出仓类别的【不在列表中】事件中写入代码:
'   Private Sub 出仓类别_NotInList(NewData As String, Response As Integer)
'      newVal Me.出仓类别, NewData, Response
'   End Sub
Select Case ctl.RowSourceType
    Case "Table/Query"
        Dim rs As New ADODB.Recordset
        Dim ssql As String
        Dim A, i As Long
        If MsgBox("所输数据不在选择列表中,确认存储数据吗?", vbOKCancel, "确认存储数据") = vbOK Then
            Response = acDataErrAdded
            ssql = ctl.RowSource
            rs.Open ssql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            rs.AddNew
            A = Split(ctl.ColumnWidths, ";")
            For i = 0 To UBound(A, 1)
                If Val(A(i)) > 0 Then
                    Exit For
                End If
            Next
            rs.Fields(i).Value = NewData
            rs.Update
            rs.Close
            ctl.RowSource = ssql
        Else
            Response = acDataErrContinue
            ctl.Undo
        End If
    Case "Value List"
        If MsgBox("所输数据不在选择列表中,确认存储数据吗?", vbOKCancel, "确认存储数据") = vbOK Then
            Response = acDataErrAdded
            ctl.RowSource = ctl.RowSource & ";" & NewData
        Else
            Response = acDataErrContinue
            ctl.Undo
        End If
End Select
End Function




Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助