前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA与数据库——写个操作数据库的加载宏

VBA与数据库——写个操作数据库的加载宏

作者头像
xyj
发布2022-01-18 15:23:27
7240
发布2022-01-18 15:23:27
举报
文章被收录于专栏:VBA 学习VBA 学习

工作中用多了VBA后,对数据处理自然会有很多心得。

个人目前的状态,基本上会把自己一些经常用到的数据进行结构化处理,用数据库来保存。

不知道大家最终是否都是这样,个人现在使用VBA更多的都是在操作数据库。

刚开始接触数据库的时候,惊叹于他的高效和简洁,但是使用也仅仅是调用ADO进行一些简单的操作,对于数据库的原理是不懂的。

随着使用的加深,也会上网查找一些数据库方面的知识,发现数据库太高深了!还好个人也不是要做什么专门的程序开发,仅仅是使用VBA来处理数据而已,学些皮毛也够用。

从开始写一些针对特定数据库的操作,到后面自己创建一些简单的数据库,发现使用VBA来操作数据库,用的多的还就是简单的查找、添加、删除、更新数据,所以就想到了写个简单的加载宏,用来对工作中用到的数据库进行一些常规的操作,目前实现的一些简单功能:

  • 选择DB、断开DB这个很好理解。
  • 历史DB:这个是用来记录打开过的数据库的,省得一些经常需要操作的数据库需要去找路径或者输入连接字符串。这个是使用sqlite数据库来存储的,2个表信息:
代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS dbpath (
  ID integer not null primary key autoincrement,
  描述 text not null unique,
  path text not null unique,
  时间 timestamp not null default (datetime(CURRENT_TIMESTAMP, 'localtime')),
  -- '0'sqlite  '1'oracle, vba里都使用ado操作,没什么用
  SType char(1) default '0' check(length(SType)=1)
);

-- 常用的sql语句
CREATE TABLE IF NOT EXISTS commonSQL (
  ID integer not null primary key autoincrement,
  描述 text not null unique,
  dbpathID integer not null check(typeof(dbpathID)='integer') references dbpath(ID) on update cascade on delete cascade,
  strsql text not null,
  时间 timestamp not null default (datetime(CURRENT_TIMESTAMP, 'localtime')),
  unique(dbpathID, strsql)
);
  • DB信息:就是手动记录历史DB用的按钮,开始是想打开一个新的数据库就自动记录,后来发现更多的都是临时操作一下,不值得记录,所以干脆做成一个按钮来记录。
  • 读取表名、读取字段名:这个功能很好理解。最开始也是想打开一个数据库自动去读取,但是发现有些数据库的表比较多,读取很费时间,没有必要自动去读取,等到确实需要的时候再手动去读取。
  • 读取、写入:对应的就是select和insert,只是做了一些通用化处理。
  • 执行SQL:执行写好的sql语句。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VBA 学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档