VBA数据库解决方案第十三讲:如何获取数据库中表的相关信息

news2025/1/16 21:09:54

《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA数据库解决方案第十三讲:如何获取数据库中表的相关信息8ef63695cbf971cbb0d78856e03933ad.jpeg

【分享成果,随喜正能量】 不要在乎他人的评论,不必理论与他人有关的是非,你只要做好自己就够了。苔花如米小,也学牡丹开。无论什么时候,都要有忠于自己的勇气,去做喜欢的事,去认识喜欢的人,去过期待的日子,去圆满自己的心。有理想,有热爱,然后全力以赴。。

第十三讲 如何获取数据库中表的相关信息

大家好,今天给继续讲解VBA数据库解决方案的第13讲:如何获取数据库中的表的信息。在处理表,特别是查询的时候,我们需要一些表的信息,如表的名字,表的属性,那么有没有办法在程序中获得,并显示出来呢?

今天的内容就是讲解如何把数据库中的所有表的名称,性质列出来,并放到一个工作表文件中。数据库的讲解有时候是枯燥的,很多的知识点如果不弄懂很难再进行下一步的操作,我的这套教程只能按大概的先后顺序让读者慢慢的了解,掌握。有的朋友和我反馈说:都懂,就是代码写不出来,怎么办?其实这时你缺少的就是实践,一是要多实际练习,一是要紧扣自己的需求,比如工作遇到什么问题,马上以问题为切入点,细致的研究分析。我在初学VBA的时候为了弄懂一个知识点需要反复的测试,还要去问别人,但人家不告诉你啊,为了一个“With”的语句我问了好几遍,可没人真正的告诉你,那时真的很难,没有资料,求人难。现在好了,进入了知识爆炸的年代,只要你想学,只要你肯学,肯于去专研,学会变得很容易。在我的教程中,尽可能让讲解浅显些。今日的问题如何解决呢?

1 提取数据库中表信息的代码及代码解读

我们还是直接看代码,然后我再一步步的讲解吧。

Sub mynz_13() '获取所有表的名称 第13讲:如何获取数据库中的表的信息

Dim catADO As Object

Dim myTable As Object

Dim strPath As String

Dim i As Integer

Set catADO = CreateObject("ADOX.Catalog")

strPath = ThisWorkbook.Path & "\mydata2.accdb"

catADO.ActiveConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath

Sheets("13").Select

Cells.ClearContents

Cells(1, 1) = "数据表名"

Cells(1, 2) = "类型"

i = 1

For Each myTable In catADO.Tables

i = i + 1

Cells(i, 1) = myTable.Name

Cells(i, 2) = myTable.Type

Next myTable

Set myTable = Nothing

Set catADO = Nothing

End Sub

代码截图:

d53241d52e4cf84407abe909a37e7ccc.jpeg

代码解读:

① Set catADO = CreateObject("ADOX.Catalog")

strPath = ThisWorkbook.Path & "\mydata2.accdb"

catADO.ActiveConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath

创建一个ADOX对象,并连接到数据库,数据库含地址为:strPath = ThisWorkbook.Path & "\mydata2.accdb"

② Cells.ClearContents

Cells(1, 1) = "数据表名"

Cells(1, 2) = "类型"

清空工作表,并在A1 和B1 单元格写入表头

③ For Each myTable In catADO.Tables

i = i + 1

Cells(i, 1) = myTable.Name

Cells(i, 2) = myTable.Type

Next myTable

这里用了一个FOR EACH循环,对对象中的每一个表进行名称和属性的提取,并记录。同时写道工作表中。这里用的是循环语句,详细大家通过VBA的学习应该不陌生吧?

2 提取数据库表信息的实现效果

下面我们先看看ACCESS中的表,要点击显示系统表,看下面的截图:

09f4a90551bfe9d7e7d07ade40e15169.jpeg

上面用红色框框起来的是系统表。一般情况下这些系统表是隐藏的,读者如果想查看,可以选择显示即可,关于ACCESS的设置不做详细的解释了。

看我们的代码运行结果:

5f31c7d93d7c7477004923300840cfe0.jpeg

17d626f7407bf9fc5e6308e9437c5238.jpeg

今日内容回向:

1 如何能够把数据库中表的名称和属性全部显示出来呢?

2 是否清楚哪些是系统表和自己建立的表了吗?

本讲内容参考程序文件:VBA与数据库操作(第一册).xlsm

f4f126ac1e7d172721534adf17e2c02f.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

570075ecf031c06c6ba46cb2688c66e2.jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1967972.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python lambda 表达式用法

1. lambda 表达式基础知识 python 含有 lambda 关键字,可使用 lambda 表达式创建匿名函数。 (注:匿名函数可理解为没有函数名、函数体只包含一行代码的函数) lambda 表达式的一般形式为:lambda arg_1, arg_2, …: ex…

2024年8月1日(前端服务器的配置以及tomcat环境的配置)

[rootstatic ~]# cd eleme_web/ [rootstatic eleme_web]# cd src/ [rootstatic src]# ls views/ AboutView.vue HomeView.vue [rootstatic src]# vim views/HomeView.vue [rootstatic src]# nohup npm run serve nohup: 忽略输入并把输出追加到"nohup.out" 构建项目…

定义和使用自己的子程序——函数的介绍

定义和使用自己的子程序——函数的介绍 1.函数基础语法1.1.基础语法1.2.例题1——距离函数题目描述输入格式输出格式输入输出样例输入 #1输出 #1 提示 2.void类型3.变量作用域和参数传递3.1.局部变量和全局变量3.2.形式参数和实际参数3.3.例题2——歌唱比赛题目描述输入格式输出…

ADSL常见故障及维护

ADSL常见故障及维护 ADSL的最简单故障判断方法? 解答:可根据ADSL Modem面板上的信号灯的显示情况进行问题的初步判断,如下: “ADSL”等:用于显示Modem的同步情况,常亮绿灯表示Modem与局端能够正常同步&…

JVM常见面试题(二):JVM是什么、由哪些部分组成、运行流程,JDK、JRE、JVM关系;程序计数器,堆,虚拟机栈,堆栈的区别是什么,方法区,直接内存

文章目录 一、JVM基本介绍——概念、组成、重点1.1 JVM是什么1.2 JVM由哪些部分组成,运行流程是什么?1.3 JDK、JRE、JVM 关系1.4 学习什么 二、JVM组成2.1 什么是程序计数器2.2 你能详细地介绍堆吗2.3 什么是虚拟机栈2.4 垃圾回收是否涉及栈内存2.5 栈内…

2024.8.1(前端服务器的配置以及tomcat环境的配置)

回顾 [roottomcat ~]# cd eleme_web/public/img/ [roottomcat img]# ls 1.jpg [roottomcat public]# cd [roottomcat ~]# cd eleme_web/ [roottomcat eleme_web]# cd src [roottomcat src]# vim views/HomeView.vue [roottomcat src]# nohup npm run serve ctrlc后网页不出…

guitar pro为什么没声音 guitar pro8播放不了 Guitar Pro播放无声音或无光标解决办法

吉他是一种非常有魅力的乐器,用途也非常广泛,在吉他学习和训练过程中,我们会用到吉他打谱软件Guitar Pro。但有用户发现在使用Guitar Pro没有声音或无法播放的情况。下面我们看看Guitar Pro为什么没声音以及解决办法。 一、Guitar Pro为什么没…

8.1IO进程线程

笔记 进程 一.多进程引入 1.1引入目的 程序员写程序时,一个程序可能由多个任务组成,如果使用的是单进程,或单任务,那么该任务执行阻塞时,其他任务就无法执行,必须等到该任务解除阻塞后,才能…

【Linux】(26) 详解磁盘与文件系统:从物理结构到inode机制

目录 1.认识磁盘、 1.1 理论 1.2 磁盘的物理结构 CHS 寻址 1.3 磁盘的逻辑抽象结构 2. inode 结构 1.Boot Block 启动块 2.Super Block(超级块) 3.Group Descriptor Block(块组描述符) 4.Data Blocks (数据块) 5.Inode…

spring boot 实现 Stream 钉钉事件订阅

1: 参考链接 https://open.dingtalk.com/document/orgapp/develop-stream-mode-push-server 2:钉钉开放平台订阅配置 配置之后运行一下上面提供的链接 里面的main方法,验证通道 3:订阅启动方式 EventListenerThread eventListenerThrea…

玩转ComfyUI】基于函数计算一键部署AI生图平台 ComfyUI

登录阿里云 1.前往函数计算控制台。 在推荐您创建 AliyunFcDefaultRole默认角色对话框中,单击创建。 3.在角色快捷创建页面,单击同意授权。 4.在实验操作面板顶部,单击 图标打开新的标签页,然后在地址栏中输入如下地址并回车&…

会展信息服务预约小程序开展品牌管理

如舞台、漫展、商业展会等场景都需要会展服务,场地建设、方案提供、人员配备,尤其是高线城市,服务开展度比较高,客商双方为多次互需关系,服务方需要拓展品牌获得更多客源加以转化,而客户则需要找到靠谱且具…

LogonTracer图形化事件分析工具

LogonTracer这款工具是基于Python编写的,并使用Neo4j作为其数据库(Neo4j多用于图形数据库),是一款用于分析Windows安全事件登录日志的可视化工具。它会将登录相关事件中的主机名(或IP地址)和帐户名称关联起…

vscode中运行不同语言的文件出现报错?

vscode是一个不错的语言编辑软件,可以利用插件运行不同的语言,从而大大减少了软件的下载数量。 今天在学习的时候出现了一个令人匪夷所思的报错问题:早些时候一直在运行Python语言的文件,后来想对比一下c语言与Python的不同。于是…

阿里云、华为云、腾讯云、亚马逊云与谷歌云全景推荐

探索未来,选择领先云服务 —— 阿里云、华为云、腾讯云、亚马逊云与谷歌云全景推荐 在这个数字化飞速发展的时代,云计算已成为企业和个人日常运营不可或缺的一部分。无论是小型初创公司还是全球性大企业,选择合适的云服务可以大幅提升业务效…

Redis——集合 SET

目录 1. 添加元素 SADD 2. 查看元素 SMEMBERS 3. 判断元素是否存在该集合 SISMEMBER 4. 删除元素 SREM 集合 SET 是一种无序集合;因此其与列表有以下区别: (1)列表是有序的,集合是无序的; &#xff0…

基于SpringBoot宠物店寄养管理系统 毕业设计-附源码94084

摘 要 宠物店寄养管理系统是一个基于计算机技术的应用系统,旨在为宠物店提供一种便捷、高效的方式来管理宠物店寄养服务。本研究通过使用现代化的软件开发技术和数据库管理方法,设计和实现了一个全面的宠物店寄养管理系统。该系统具有以下主要功能:宠物资…

ONLYOFFICE文档:为企业和开发者带来强大的文档编辑功能

本文给大家介绍一个开源项目:ONLYOFFICE文档,它能够为文档编辑、多人协作提供强大支持。无论你是个人使用,还是企业、商业开发,都能找到适合你的版本。 关于 ONLYOFFICE 文档 ONLYOFFICE 文档是一套功能强大的文档编辑器&#x…

DockerCompose部署示例

目录 前言 1. 初识DockerCompose 2. 安装DockerCompose 3. 部署微服务项目 1)找一个目录,创建一个新的cloud-demo文件夹。 2)在cloud-demo文件夹创建一个docker-compose.yml文件,然后编写下面内容: 3&#xff09…

手把手构建Netty

1.Netty基础 Netty是一个提供了易于使用的API的客户端、服务器框架; 并发高-NIO(非阻塞IO) 传输快-零拷贝: 分析: 使用了NIO的零拷贝;java中内存是分为堆和栈,还有字符串常量池等等; 如果有一些数据需要从IO中读取&am…