• 由于许多工作原因,没有更多的时间监控网站文件上传这块,网站现在停止论坛功能,给网友和会员带来不便敬请谅解!

  • 网站域名备案成功!

  • 直到现在网站所有数据恢复正常!

  • 网站域名已经更换成现在的,原来的yxlz8.com将停止使用!

  • 网站备案中.....

  • 本站入住阿里云服务器,催动于阿里云oss云储存,打开本站任何一个页面可以感觉到打开的速度!

  • 微信终于可以扫码登陆了点击这里体验

  • 最近有小伙伴说付费音乐无法下载,希望弄一个免费下载付费音乐的工具,经过这段时间的辛苦终于个大家见面了,可以输入歌曲名称或者地址即可在线播放或者下载!直达飞机票

  • 白狐播放器上线酷狗mv,几万部MV在线赏析!我要去看看

  • 微信公众号终于和wordpress打通文章链接关系,可以直接把公众号的文章移植到博客上来!太棒了

EXCEL VBA 链接数据库

文章 海峰博客 3周前 (03-13) 25次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

最近上班不是很忙,一直折腾EXCEL vba程序,本次折腾的是用一张excel的原始表做数据库,在新建一张表做程序来取出数据库中的数字放在新表里面,听起来好像很简单,做起来就有点麻烦,但我还是把记录给写下来,图片就不上了。

表格分清楚

数据表我将设置名称为数据库.xlsx,数据库中的原始数据表命名为hfblog,VBA程序我将设置为程序表.xlsx,这样两张表建立好了,现在我们要做的是需要在程序表中用数据库的方式链接到数据库表,取出我们需要的内容而且不会改变数据库中的内容。

使用方法

打开程序表,打开VBA程序后台,或者CTRL+F11,新建模块,粘贴如下代码,代码后面有注释。噢,刚才忘记数一点就是必须将两个表放在同一目录下,否则将会出错

'声明对象
    Dim con As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim i As Integer
'链接数据库
    con.Open "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & "\数据库.xlsx" & " ;extended properties= 'excel 12.0'"
'查询数据库中的内容
'下面的意思就是在hfblog的这张表中查询所有字段,所有字段用*表示,from是来自于hfblog的这张表, where 查找site的这个字段,=Braking也就是说在数据库中找字段为site等于Braking的数据,
Sql = "select * from [hfblog$] where site= 'Braking'"
'执行读取sql
Set rs = con.Execute(Sql)
'提取标题,
    For i = 0 To rs.Fields.Count - 1
    hang = Sheets("查询结果").Range("A" & Rows.Count).End(xlUp).Row + 2
    Cells(2, i + 1) = rs.Fields(i).Name
    Next
'将查询的内容放到查询结果的表中A列,行是上面函数自己获取的,
Sheets("查询结果").Range("A" & hang).CopyFromRecordset rs
'判断查询结果中A列的行数是否大于2行,设置的默认为2行,如果大于2行说明有数据,
If Sheets("查询结果").Range("A" & Rows.Count).End(xlUp).Row > 2 Then
        '说明大于2行,是有数据的,将提示我们查询完毕
        MsgBox "数据查询完毕", 0, "温馨提示您"
    Else
        '这里的意思就是没有找到数据,行数是等于2行的,也就是默认的2行
        MsgBox "未查询到数据", 0, "温馨提示您"
    End If
  '最后关闭数据库链接
    con.Close
   '释放变量,释放电脑内存
    Set con = Nothing
    Set rs = Nothing

注意事项

1.需要注意数据库con.Open 后面的链接数据库中的值都是固定的,除数据库名字其他都一样;
2.sql后面的语句非常重要,注意写法,一定记住键盘不要要在英文状态下输入,
3.aql可以多重条件查询

1.一个条件
Sql = "select * from [hfblog$] where site= 'Braking'"
意思就是select查询*就是所有字段 from 来自于那张表 hfblog  where 找什么site 等于 什么值
2.两个条件查询
Sql = "select * from [hfblog$] where site= 'Braking' and 运输信息='国外运输'"
上面就执行了两个条件,1是数据库中字段为site 必须要等于Braking,2是数据库中运输信息这个字段必须要等于国外运输,达到了两个条件后才能执行提取给我们的查询结果这张表,也就是我们的程序表

要源码的来

我的源码可以提供给不会的朋友,但是我还是建议自己去动手写,这样可以提高自己的技术,需要源码给我留言!


海峰博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:EXCEL VBA 链接数据库
喜欢 (1)
[]
分享 (0)

您必须 登录 才能发表评论!