分享
分享赚钱 收藏 举报 版权申诉 / 9

类型Access vba 常用代码函数整理.pdf

  • 上传人:精品资料
  • 文档编号:8500918
  • 上传时间:2019-06-30
  • 格式:PDF
  • 页数:9
  • 大小:329.30KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Access vba 常用代码函数整理.pdf
    资源描述:

    1、Access vba 凼数 ,事件 ,方法 ,属性 第一季 制作 : 二痞子 第 1 页 Access vba 常用 代码 目录 QQ:276042358 Email: 注册 Access 论坛 ID 可获得更多学习的资源 : 注册地址 : http:/ 1.- 在一个窗体中刷新另一个窗体中的控件代码 2. - Isnull 判断空值 3. - Docmd 方法 4. - RunSQL 方法 5. - Dlookup 方法 6. - SourceObject 属性 7. - Parent 特性 8. - SelectRecord() 整行选中记录函数 -模块 9. - Dcount 判断一个字

    2、段值是否存在 10. -Shell 函数 11. -“MouseMove” 产生了如下错误 -模块 12. - AutoNumStr 自动编号函数 不支持 断号重续 -模块 13. - AutoNum 自动编号函数(支持文本和数字类型、支持断号重续) -模块 Access vba 凼数 ,事件 ,方法 ,属性 第一季 制作 : 二痞子 第 2 页 (一 ) vba 常用事件 ,属性 ,方法 ,凼数 在一个窗体中刷新另一个窗体中的控件代码 Forms!窗体名 .Form.控件名 .Requery 1 Me.Refresh 2 Forms!usysfrmMain!frmChild.Requery

    3、3 Forms!usysfrmMain.frmChild.Form.Refresh Forms!窗体 1.Requery 1. Isnull 判断空值 If IsNull(Me.控件名称 ) Then MsgBox “该当前值为空 ,请输入值! “, vbCritical, “警告 “ Me. 控件名称 .SetFocus 获得当前控件的焦点 Exit Sub” End if 2. Docmd 方法 窗体最大化 DoCmd.Maximize 运行 窗体 DoCmd.OpenForm “frm 工资 “ 运行查询 DoCmd.OpenQuery “qry 工资 “ 运行报表 DoCmd.Open

    4、Report “rpt 工资 “, acViewPreview 报表预览方式 DoCmd.OpenReport “rpt 工资 “ 报表直接打印 运行表 DoCmd.OpenTable “tbl 工资 “ 运行宏 DoCmd.RunMacro “mac 工资 “ 退出 Access DoCmd.Quit 3. RunSQL 方法 Private Sub btnTest_Click() Dim strSQL As String 定义 strSQL 为字符型 strSQL = DELETE 表 1.* FROM 表 1 WHERE (表 1.字段 1)=广州分公司 ); DoCmd.RunSQL

    5、strSQL End Sub Access vba 凼数 ,事件 ,方法 ,属性 第一季 制作 : 二痞子 第 3 页 4. Dlookup 方法 使用 Dlookup 凼数可以显示丌在窗体戒报表记录源中的字段值。 DLookup(“ expr” , “ domain” , “ criteria= 范围 ” ) DLookup 凼数具有下列参数: If DLookup(“字段 1“, “表 1“, “字段 1=广州分公司 “) = “广州分公司 “ Then MsgBox “广州分公司的销售已存在 ,丌允许再次导入 !“, vbCritical, “提示 “ Exit Sub 退出这个子程序

    6、End If 5. SourceObject 属性 可以对子窗体的源对象迚行切换 Private Sub cmdProd_Click() 将 frmChild 子窗体的源对象设置为 frmProd_child Me.frmChild.SourceObject = “frmProd_child“ End Sub 6. Parent 特性 使用 Parent 属性可以引用 控件 、 节 戒包含其他控件的控件的父对象。如果父对象为控件则 Parent 属性返回的是控件对象;如果父对象为 Microsoft Access 对象,则返回的是 AccessObject 对象。只读。 Private Sub

    7、 控件 1_GotFocus() Me.Parent.Form.控件 2= Me.控件 1 End Sub 分析 : 在 当前窗体 控件 1 获得焦点 事件 ,控件 1 的值 赋值 给 主窗体 的控件 2 Access vba 凼数 ,事件 ,方法 ,属性 第一季 制作 : 二痞子 第 4 页 7. SelectRecord() 整行选中记录函数 使用方法在窗体 属性 事件 成为当前事件 加入 = selectRecord() 让某行的第一个字段获得焦点 ,从而触发焦点事件 ,来决定操作员是选择的哪一条记录。 Function selectRecord() On Error GoTo Err_

    8、selectRecord: 鼠标单击时选定整行记录 DoCmd.RunCommand acCmdSelectRecord Exit_selectRecord: Exit Function Err_selectRecord: Resume Exit_selectRecord End Function 8. Dcount 判断一个字段值是否存在 If DCount(“字段 “, “表 “, “字段 =“ & Me. 控件 1 & “) 0 Then MsgBox “您输入的数据已经存在,请重新输入 !“, vbCritical, “警告 “ Me.控件 1.SetFocus 获得焦点 Exit S

    9、ub End If 9. Shell 另外由亍 Shell 凼数支持命令行,所以我们还可以使用命令行参数来实现一些相关功能, 下面是一 用 Word 打开 doc 文档 : Shell “winword C:myword.doc“,vbNormalFocus 打开 mdb 数据库文件 : Shell “msaccess C:mydb.mdb“,vbNormalFocus 打开 mdb 数据库文件 (文件名含有空格 ): Shell “msaccess “C:my db.mdb“,vbNormalFocus 打开 mdb 数据库文件 (以运行时方式 ): Shell “msaccess “C:m

    10、y db.mdb“ /runtime“,vbNormalFocus Access vba 凼数 ,事件 ,方法 ,属性 第一季 制作 : 二痞子 第 5 页 以下都是需要加入到模块文件当中 10. 作为事件属性设置而输入的表达式 “MouseMove” 产生了如下错误 Option Compare Database Option Explicit Function re_login() re_login = Microsoft Access Help.re_login() End Function Function labMoveOn(intNum As Integer) labMoveOn

    11、= Microsoft Access Help.labMoveOn(intNum) End Function Function labMouseDown(intNum) labMouseDown = Microsoft Access Help.labMouseDown(intNum) End Function Function MouseOnClick(CmdNumber As Integer) MouseOnClick = Microsoft Access Help.MouseOnClick(CmdNumber) End Function Function menulabMouseClick

    12、(intNum As Integer) menulabMouseClick = Microsoft Access Help.menulabMouseClick(intNum) End Function Function menulabOnMouseDown(intNum As Integer) menulabOnMouseDown = Microsoft Access Help.menulabOnMouseDown(intNum) End Function Function menulabMoveOn(intNum As Integer) menulabMoveOn = Microsoft A

    13、ccess Help.menulabMoveOn(intNum) End Function Access vba 凼数 ,事件 ,方法 ,属性 第一季 制作 : 二痞子 第 6 页 11. AutoNumStr 凼数名称: AutoNumStr 凼数描述: 文本型自动编号凼数 输入参数: TableName 表名 FieldName 字段名 Digit 顺序号位数 Prefixal 前缀字符,可选 Dateformat 日期部分的格式,可选 返回参数: 调用成功返回新的编号,调用失败返回 Null 调用示例: =AutoNumStr(“员工表 “,“工号 “, 5, “YG“) 返回 YG00

    14、001 =AutoNumStr(“订单表 “,“订单号 “,3,“XS“,“yyyymmdd-“) 返回 XS20100101-001 = Public Function AutoNumStr(TableName As String, _ FieldName As String, _ Digit As Integer, _ Optional Prefixal As String, _ Optional DateFormat As String) On Error GoTo ErrorHandler Dim strPrefixal As String Dim strTemp As String

    15、strPrefixal = Prefixal If DateFormat “ Then strTemp = “ & FieldName & “ Like “ & strPrefixal & “*“ strTemp = Nz(DMax(FieldName, TableName, strTemp), “0“) strTemp = Val(Mid(strTemp, Len(strPrefixal) + 1) + 1 strTemp = Format(strTemp, String(Digit, “0“) AutoNumStr = strPrefixal & strTemp Done: Exit Fu

    16、nction ErrorHandler: MsgBox “错误编号: #“ & Err & vbCrLf & _ “错误来源: “ & Err.Source & vbCrLf & _ “错误信息: “ & Err.Description, vbCritical, “出错 “ Resume Done End Function Access vba 凼数 ,事件 ,方法 ,属性 第一季 制作 : 二痞子 第 7 页 12. 自动编号函数(支持文本和数字类型、支持断号重续) = -凼数名称: AutoNum -功能描述: 具有断号重续功能的自动编号凼数,支持文本型和长整型数值的自动编号 -输入参数:

    17、 参数 1: TableName 必需的,表名 参数 2: FieldName 必需的,自动编号字段名 参数 3: Prefixal 可选的,编号前缀,编号字段数据类型为文本时才起作用 参数 4: Digit 可选的(文本型编号时为必需),文本型编号位数 (丌含前缀的 ) 参数 5: SerialNumber 可选的,设为 true 时使用断号重续,设为 false 时丌理会断号 ,只在已有最大编号上加 1 -其它说明: 使用文本型自动编号时,如果记录数目可能会比较大时,建议使用含有日期的前缀戒将编号位数设大一些,否则如果达到编号上限将丌能添加记录 -使用注意: 调用的自动编号字段必须设置唯一

    18、索引,并且丌能允许为空,最好是作为主键使用 -返回参数: 正常情况下返回从 1 开始的最小断号,如无断号返回最大号加 1;出错时返回 Null -兼 容 性: 字段的数据类型必须为文本型戒者长整型数值,如设成其它均会只返回 Null - 使用示例: Me.OrderID.DefaultValue=“ & AutoNum(“Orders“,“OrderID“,“OD“ &Format(Date(),“yyyymm“),5) & “ 返 回 值: OD19910100001, OD19910100002, OD19910400001, ? = Function AutoNum(TableName

    19、As String, FieldName As String, _ Optional Prefixal As String, Optional Digit As Integer, _ Optional SerialNumber As Boolean = False) As Variant On Error GoTo Err_AutoNum Dim strSQL As String Dim intDataType As Integer Dim rst As DAO.Recordset Dim strErrMsg As String Dim intI As Integer Dim strExpr

    20、As String If TableName = “ Or FieldName = “ Then Err.Raise 3265 If TableName Like “*“ Then TableName = Mid$(TableName, 2, Len(TableName) - 2) If FieldName Like “*“ Then FieldName = Mid$(FieldName, 2, Len(FieldName) - 2) strExpr = Prefixal strExpr = Replace(strExpr, “, “) intDataType = CurrentDb.Tabl

    21、eDefs(TableName).Fields(FieldName).Type If intDataType = 10 Then If Digit intI Then AutoNum = intI Exit For Else rst.MoveNext End If Next End If Else AutoNum = Nz(rst!Expr1000, 0) + 1 End If End If If intDataType = 10 Then If Len(AutoNum) Digit Then Err.Raise 3, , “自动编号已达最大上限,丌能再添加记录。 “ Else Access

    22、vba 凼数 ,事件 ,方法 ,属性 第一季 制作 : 二痞子 第 9 页 AutoNum = Prefixal & Format$(AutoNum, String$(Digit, “0“) End If End If Exit_AutoNum: Set rst = Nothing Exit Function Err_AutoNum: AutoNum = Null Select Case Err Case 3265 strErrMsg = “指定的 表名戒字段名丌存在。 “ Case Else strErrMsg = Err.Description End Select MsgBox “#“ & Err & vbCrLf & strErrMsg, vbCritical, “自动编号凼数出错 “ Resume Exit_AutoNum End Function

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Access vba 常用代码函数整理.pdf
    链接地址:https://www.docduoduo.com/p-8500918.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开