EXCEL VBA操作ACCESS数据库,获取表头字段,SQL查询语句自定义函数【提高篇】

文摘   教育   2024-11-02 00:00   江苏  

关于本公众号】了解一下,欢迎关注谢谢!

快速浏览

实用案例

|日期控件||简单的收发存||收费管理系(Access改进版)|

|电子发票管理助手||电子发票登记系统(Access版)|

|文件合并||表格拆分||审计凭证抽查底稿|

|中医诊所收费系统(Excel版)||中医诊所收费系统(Access版)||银行对账单自动勾对|

|印章使用登记系统|

收费使用项目

|财务管理系统||工资薪金和年终奖个税筹划||新税法下工资表模版|

内容提要

  • SQL查询语句自定义函数
  • 获取表头字段
大家好,我是冷水泡茶,前段时间,我们分享了:

EXCEL VBA操作ACCESS数据库,实现增删改查【基础篇】(免费)!

今天我们继续分享余下内容,可能不成体系,想到什么写什么,大家见谅。
我们在“基础篇”中曾提到过,建立连接字符串,打开数据库连接基本上属于固定套路,如果我们在一个应用中需要多次执行增、删、改、查等操作,每次都要写一遍基本相同的代码,虽然复制粘贴也比较方便,还是有点重复劳动的感觉。我们可以把相应的过程写成自定义函数,参数可以是数据库dbs、表tbl、查询语句sql等,这样比较方便。
我们前面也分享过类似自定义函数:

我常用的自定义函数代码集合

以前的自定义函数,设置连接字符串是一个单独的函数,仅为取得连接字符串,今天我们把它与打开数据库连接一起,建立一个打开数据库连接的自定义函数OpenConnection
Dim strCnn As StringPublic conn As ObjectPublic rs As ObjectPublic dbs As StringSub OpenConnection(ByVal dbs As String, Optional ByVal psw As String = "")
'//获取数据库连接字符串 strCnn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbs Set conn = CreateObject("ADODB.Connection") '// 打开数据库链接 conn.Open strCnnEnd Sub
我们前面查询的都是明细记录,很多时候,我们都需要取得表的字段名称,我们定义一个函数getFields,其中,我们调用了OpenConnection函数:
Function getFields(sql As String)    '//取得一个SQL查询语句的所有表头字段    Dim arr()    Dim i As Integer    Dim fieldsCount As Integer    Set rs = CreateObject("ADODB.Recordset")        '//数据库    dbs = ThisWorkbook.Path & "\DataBase1101.accdb"        '//打开数据库连接    Call OpenConnection(dbs)        '//执行查询    Set rs = conn.Execute(sql)        '//把字段写入数组    fieldsCount = rs.Fields.Count    ReDim arr(fieldsCount - 1)    For i = 0 To fieldsCount - 1        arr(i) = rs.Fields(i).Name    Next    getFields = arr        rs.Close    Set rs = Nothing    conn.Close    Set conn = NothingEnd Function
我们在很多情况下,都会用到conn.Execute(SQL),我们也自定义一个函数ExecuteSQL
有时候,我们在执行查询操作的时候,需要在表有记录的情况下进行,我们可以通过Count函数来取得表的所有记录数,如果记录数为0,则表明没有记录,我们也定义一个自定义函数IsTableEmpty;
有时候,我们在操作数据库的时候,需要知道某个字段是否存在某个值,以便进行下一步操作,我们定义一个IsValueExists自定义函数(目前我们仅考虑字段是字符串的情况,还有日期、数值、布尔值等没有考虑,可能不适用),比如,我们要添加一个姓名为“王五”的记录,我们先判断姓名字段是否存在王五的记录,如果存在,则不添加。

完整代码详见当天另一条推文!

后记

1、时间关系,今天就说这么多吧,通过自定义函数,可以减少写代码的工作量,而且,以后碰到类似问题,可以直接复制使用。

2、如果我们操作的数据库相对固定,我们可以把数据库完整路径设置为Public常量,或者Public变量,这样就不需要每次都给它赋值了。

好,今天就到这里,我们下期再会!


~~~~~~End~~~~~~

安利小店
安利的牙膏非常不错,用了以后就不想再用其他的了;洗洁精洗衣液也是日常必备,用过都说好!

合谷医疗
合谷医疗专攻各种疑难杂症,尤其擅长抑郁症焦虑失眠儿童神经发育异常多动症自闭孤独症腰颈椎疾病治疗,可谓神乎其技!体验过的直呼早点来就好了

喜欢就点个、点在看留言评论、分享一下呗!感谢支持!

案例文件分享说明

  • 案例文件可免费分享,但需符合以下要求:

  • 关注点赞点在看点...留言,方便的话分享一下就完美啦!如果不便走上面的“流程”,请打赏,万分感谢!

  • 请添加上方我的合谷医疗企业微信,案例文件通过微信发送。如有定制需求,亦可通过微信联系。

  • Excel问题,请在文章下面留言讨论!或者加入我的付费交流群提问

VBA编程实战
Excel应用案例、Excel VBA、公式函数使用技巧分享,思路解读...... 这里有鲜活案例、实用的技巧......
 最新文章