美文网首页
Access vba 快速开发项目

Access vba 快速开发项目

作者: KariusJandrick | 来源:发表于2021-07-05 08:45 被阅读0次

 
工作中常用方法的总结,欢迎指点或者提问题,希望能对大家有帮助

不显示警告框

DoCmd.SetWarnings False  ` 关闭默认警告框
    ` 此处写不需要显示警告框的操作
DoCmd.SetWarnings True   ` 开启默认警告框

Try-catch

实际上 vba 没有专门的 try-catch 语句,一般这么写:

On Error GoTo Err_close      `关闭默认的异常处理,开启自定义异常处理
    ` 需要 try 的语句,发生异常执行异常处理过程
On Error GoTo 0              ` 关闭自定义异常处理,开启默认的异常处理
Exit Sub                     ` 或者end sub,不写会继续执行后面的异常处理过程
Err_close:
    ` 异常处理过程

非引用方式执行SQL 语句(非DAO,ADO)

优势:不用连接数据库
缺点:DoCmd.RunSQL 只用于 INSERT、DELETE、UPDATE 语句,没有返回值

SQL = "DELETE * FROM 表名 WHERE [字段名] = '" & staff_id & "'"
DoCmd.RunSQL SQL

数据表窗体(已绑定数据源)筛选数据

strWhere = "[字段名] like '" & 值 & "'"
Me.table.Form.Filter = strWhere
Me.table.Form.FilterOn = True

将窗体(已绑定数据源)输入框、下拉框中编辑后的数据撤销

DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

将窗体(已绑定数据源)输入框、下拉框中编辑后的数据更新到表中

因为默认窗体关闭的时候才会把数据更新到表中,可以直接刷新解决

Forms("窗体名").Refresh    ` 其实就是执行了一个刷新

焦点定位到数据表窗体 / 窗体(已绑定数据源)的某一条数据

Forms("窗体名").SetFocus
DoCmd.GoToControl "字段名"
DoCmd.FindRecord "字段值"

刷新数据表窗体 / 窗体(已绑定数据源),显示已添加和修改的数据

Forms("窗体名").Requery

跳转到数据表窗体 / 窗体(已绑定数据源)的某一条数据

用 DoCmd.GoToRecord,例子是跳转到添加新数据页。

Me.table.SetFocus
DoCmd.GoToRecord acActiveDataObject, , acNewRec

[详见官网](Access (DoCmd.GoToRecord) | Microsoft Docs)

判断窗体是否已经打开

CurrentProject.AllForms("窗体名").IsLoaded = True

打开窗体,传参并定位到某条数据

DoCmd.OpenForm "窗体名"
DoCmd.OpenForm "窗体名", , , "[字段名]='" & Id & "'"
DoCmd.OpenForm "窗体名", , , "[字段名]='" & Id & "'",,,"参数(可以是各种类型对象)"

[详见官网](DoCmd.OpenForm 方法 (Access) | Microsoft Docs)
窗体接收参数方式(不仅仅限于窗体的 load 等事件中):

Me.OpenArgs

Access 文件过大

例子:我数据已经清除但文件有没有变小,是因为删除数据后没有真正的释放空间,需要做下图操作

压缩和修复数据库工具

关闭当前 Access

两种:

Application.Quit acQuitPrompt
DoCmd.Quit acQuitPrompt

计算表中有多少条符合条件的数据

num = DLookup("COUNT([字段名])", "表名", "[字段名] = '" & 条件 & "'")

修改表中数据

添加DAO引用

CurrentDb.Execute ("Update 表名 set 字段名='值' where 字段名='Karius'")

定位到表中某条数据(表中无主键)

Set rst = CurrentDb.OpenRecordset("SELECT * FROM 表名 WHERE 字段名='" & 值 & "'")
Do While Not rst.EOF
        If rst![字段名] = “111” Then
              (执行语句)
        End If
        Exit Do
        rst.MoveNext
Loop

定位到表中某条数据并修改(表中有主键)

Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("表名")
rst.Index = "PrimaryKey"
rst.Seek "=", 值
rst.Edit
rst![字段名] = 值
rst.Close

相关文章

  • Access vba 快速开发项目

    工作中常用方法的总结,欢迎指点或者提问题,希望能对大家有帮助 不显示警告框 Try-catch 实际上 vba 没...

  • NOTE VBA ACCESS

    ADO教程 ADO 较DAO更为先进w3school 教程 增删改查 向ACCESS表中增加记录 读取ACCESS...

  • VBA 导入Access

    Sub 将工作表数据自动导入ACCESS数据库()Dim cnn As Object, SQL" & Range(...

  • VBA创建ACCESS

  • 学习的快乐

    今天学习access窗体设计,越学习越发现access的好用,至从学了python,发现VBA也不是很难了,熊家问...

  • axios中实现无感刷新token

    现状 项目采用前后端分离开发,前后端使用access_token(即token)进行交互认证,但access_to...

  • [V版]Access VBA活用范例大辞典 何先军 中国铁道 2

    下载地址:[V版]Access VBA活用范例大辞典 何先军 中国铁道 2014.6[www.rejoiceblo...

  • 6 函数

    ALT+F11可以快速打开VBA的书写面板 Vba的函数可以直接书写,如果不是vba的函数要写applicatio...

  • 精选国内优秀的 CMS 建站系统

    1. 项目名称:Java快速开发平台 MCMS 项目简介:完整开源,Java快速开发平台。基于Spring、Sp...

  • 项目管理总结

    [TOC] 管理流程 快速迭代项目开发计划项目时间表待开发项目池开发中项目列表 每个迭代开发过程跟踪测试准备开发提...

网友评论

      本文标题:Access vba 快速开发项目

      本文链接:https://www.haomeiwen.com/subject/ekoeultx.html