大家好,今日继续讲解vba数据库解决方案的第11讲内容,如何动态的建立数据库。vba代码数据库解决方案一书写到这里,已经讲了很多,相信大家对于数据库的概念应该了然于胸了。我们也开始逐步讲解数据库的实际操作了,有的朋友说你示例总数据库是事先建立的,是否可以用vba代码动态建立数据库呢?今日的这讲我们就解决这个问题。在程序中动态的建立数据库是完全可以实现的,今日的内容需要用到的知识点为adox,我们要先对这个知识点进行必要的讲解。
一 什么是adox:adox是microsoft activex data objects extensions for data definition language and security 的简写,是对ado对象和编程模型的扩展。可用于创建、修改和删除模式对象,如表格的创建,安全对象的实施,可用于维护用户和组,以及授予和撤销对象的权限。
要通过开发工具使用adox,首先需要建立对 adox 的引用。引用对象为:”microsoft ado ext. for ddl and security.”当然也可以在过程中创建,估计我这时讲到引用和过程中创建,朋友们不会陌生了。这和ado的应用和创建是一个道理。
二 adox的对象有哪些,adox的对象主要用下面的内容
1 catalog 包含描述数据源模式目录的集合。
2 column 表示表、索引或关键字的列。
3 group 表示在安全数据库内有访问权限的组账号。
4 index 表示数据库表中的索引。
5 key 表示数据库表中的主关键字、外部关键字或唯一关键字。
6 procedure 表示存储的过程。
7 table 表示数据库表,包括列、索引和关键字。
三 adox的方法有哪些
1 append(columns) 将新的 column 对象添加到 columns 集合。
2 append(groups) 将新的 group 对象添加到 groups 集合。
3 append(indexes) 将新的 index 对象添加到 indexes 集合。
4 append(keys) 将新的 key 对象添加到 keys 集合。
5 append(procedures) 将新的 procedure 对象添加到 procedures 集合。
6 append(tables) 将新的 table 对象添加到 tables 集合。
7 changepassword 更改用户账号的密码。
8 create 创建新的目录。
9 delete 删除集合中的对象。
10 refresh 更新集合中的对象,以反映针对提供者可用的和指定的对象。
四 adox 属性
1 count 指示集合中的对象数量。
2 definedsize 指示列的规定最大大小。
3 deleterule 指示主关键字被删除时将执行的操作。
4 indexnulls 指示在索引字段中有 null 值的记录是否有索引项。
5 name 指示对象的名称。
6 numericscale 指示列中数值的范围。
7 precision 指示列中数据值的最高精度。
8 primarykey 指示索引是否代表表的主关键字。
9 relatedcolumn 指示相关表中相关列的名称(仅关键字列)。
10 sortorder 指示列的排序顺序(仅索引列)。
11 type(关键字) 指示关键字的数据类型。
五 我们下面看看一个实例如何利用adox创建一个数据库
我们看下面的代码:
sub mynzsetdata() ‘创建数据库及表
dim catado as object
dim strpath, strtable, strsql as string
set catado = createobject(“adox.catalog”)
strpath = thisworkbook.path & “mydata2.accdb” ‘此处是一个完整的路径
strtable = “员工记录” ‘表名称
if dir(strpath) <> “” then kill strpath ‘如果有一个名称相同的表,那么删除
catado.create “provider=microsoft.ace.oledb.12.0;data source=” & strpath ‘打开数据库的连接
‘下面的代码将创建一个名为”员工记录”的表包含的字段有员工编号、姓名、性别、部门、职务、备注
strsql = “create table ” & strtable _
& “(员工编号 long not null primary key,” _
& “姓名 text(20) not null,” _
& “性别 text(1) not null,” _
& “部门 text(20) not null,” _
& “职务 text(20) ,” _
& “备注 text(20))”
catado.activeconnection.execute strsql
msgbox “创建数据库成功!” & vbcrlf _
& “数据库文件名为:” & strpath & vbcrlf _
& “数据表名称为:” & strtable & vbcrlf _
& “保存位置:” & thisworkbook.path, _
vbokonly + vbinformation, “创建数据库”
set catado = nothing
end sub
代码截图:

代码的解释说明:由于大部分在代码有注释只需要再解释两个语句:
1 strsql = “create table ” & strtable
sql 中的create table 语句用于创建数据库中的表。
sql create table 语法:
create table 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,….)
2 catado.activeconnection.execute strsql
这句的解释在上一讲中已经详细的讲过了,没有记录集的返回
运行结果:

打开数据库和表:
需要了解更多数据库技术:数据库的建立过程,这个方法小白也适合,都可以关注数据库技术分享栏目—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。
如若转载,请注明出处:https://www.ssfiction.com/sqljc/1204841.html