设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 4881|回复: 19
打印 上一主题 下一主题

[模块/函数] 组合框自动添加新条目例子

[复制链接]
跳转到指定楼层
1#
发表于 2010-7-27 09:24:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很久以前做的例子,一直以为曾上传过,今天为了给网友找例子而搜过,竟无果,于是重新上传.





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1经验 +4 收起 理由
todaynew + 4 我很赞同

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2010-7-27 09:47:52 | 只看该作者
收藏并下载。谢谢分享。
3#
发表于 2010-7-27 10:25:52 | 只看该作者
收藏!
4#
发表于 2010-7-27 12:07:43 | 只看该作者
收藏并下载。谢谢分享。
5#
发表于 2010-7-27 12:17:35 | 只看该作者
收下,谢谢分享!
6#
发表于 2010-7-27 13:46:52 | 只看该作者
收藏学习了。
7#
发表于 2010-7-27 19:35:17 | 只看该作者
收藏并下载。谢谢分享。
8#
发表于 2010-8-10 15:08:36 | 只看该作者
找死我了

点击这里给我发消息

9#
发表于 2010-8-10 16:37:45 | 只看该作者
学习学习!
10#
发表于 2010-8-11 11:12:17 | 只看该作者
本帖最后由 todaynew 于 2010-8-11 15:17 编辑

可进一步写成通用性的函数。以适应类型为数据列表/表和查询,以及为数据源为sql语句等情况。
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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-15 14:08 , Processed in 0.119841 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表