大家好,今天我们将继续讲解VBA数据库解决方案第11讲,如何动态构建数据库。只要VBA代码数据库解决方案写在这里,已经说了很多。相信你应该很清楚数据库的概念。我们也开始一步步
大家好,今天我们将继续讲解VBA数据库解决方案第11讲,如何动态构建数据库。只要VBA代码数据库解决方案写在这里,已经说了很多。相信你应该很清楚数据库的概念。我们也开始一步步解释数据库的实际操作。有朋友说你的例子通用数据库是提前建立的。你能使用VBA代码动态建立数据库吗?今天就来解决这个问题吧。完全可以在程序中动态建立数据库。今天的内容需要用到的知识点是ADOX。我们需要先解释一下这个知识点。
什么是ADOX:ADOX是微软ActiveX数据对象扩展数据定义语言和安全的缩写,是ADO对象和编程模型的扩展。它可用于创建、修改和删除模式对象,例如创建表、实现安全对象、维护用户和组,以及授予和撤销对象权限。
要通过开发工具使用ADOX,首先需要建立对ADOX的引用。参考是:”Microsoft ADO Ext。为了DDL和安全。”当然也可以在过程中创造。估计我说到过程中的引用和创作,朋友们就耳熟能详了。这和ADO的应用和创建是一个道理。
2.ADOX的目标是什么?ADOX的对象主要使用以下内容
1目录包含描述数据源模式的目录集合。
列2表示表、索引或关键字的列。
3组是指在安全数据库中具有访问权限的组帐户。
4 Index表示数据库表中的索引。
5 Key表示数据库表中的主键、外键或唯一键。
6过程是指存储过程。
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创建创建一个新目录。
9 Delete删除集合中的对象。
1Refresh更新集合中的对象,以反映为提供程序指定的可用对象。
ADOX的四个属性
1 Count表示集合中对象的数量。
2 DefinedSize指示列的指定最大大小。
3 DeleteRule指示删除主键时要执行的操作。
4 IndexNulls指示索引字段中值为空的记录是否有索引条目。
5名称表示对象的名称。
6 NumericScale指示列中值的范围。
7精度表示列中数据值的最高精度。
8 PrimaryKey指示索引是否表示表的主键。
9 RelatedColumn表示相关表中相关列的名称(仅限键列)。
1SortOrder指示列的排序顺序(仅索引列)。
1type (keyword)表示关键字的数据类型。
让我们来看一个如何用ADOX创建数据库的例子。
让我们看看下面的代码:
sub mynzSetData()‘创建数据库和表
Dim catADO作为对象
Dim strPath,strTable,strSQL作为字符串
set catADO = CreateObject(“ADOX。目录”)
strPath = ThisWorkbook。路径与路径。“my data 2 . accdb ”‘这是一个完整的路径。
strTable = & # 8220员工记录”‘表名
if Dir(strPath)<& gt“”然后杀掉strPath & # 8216如果有同名的表,请将其删除。
卡塔多。创造“提供商=微软。ACE . OLEDB.12.0数据源= ”& ampstrPath & # 8216打开到数据库的连接。
‘下面的代码将创建一个名为”员工记录”该表包含雇员编号、姓名、性别、部门、职务和备注等字段。
strSQL = & # 8220创建表格”& amp可启动_
& amp“(员工号是长非空主键,”_
& amp“Text(20)不为空,”_
& amp“性别文本(1)不为空,”_
& amp“Text(20)不为空,”_
& amp“正文(20),”_
& amp“正文(20))”
卡塔多。ActiveConnection .执行strSQL
MsgBox & # 8220数据库创建成功!”& ampvbCrLf _
& amp“数据库的文件名是:”& ampstrPath & ampvbCrLf _
& amp“数据表的名称是:”& amp史泰博& ampvbCrLf _
& amp“保存位置:”& amp此工作簿。路径,_
vbOKOnly + vbInformation,“创建数据库”
设置catADO =无
末端接头
代码截图:
代码的解释:因为大部分代码都有注释,所以只需要再解释两个语句:
1 strSQL = & # 8220创建表格”& amp可启动的
SQL中的CREATE TABLE语句用于在数据库中创建表。
SQL创建表语法:
创建表名(列名1数据类型,列名2数据类型,列名3数据类型,…。)
2卡塔多。ActiveConnection .执行strSQL
这句话的解释在上一讲已经详细描述过了,没有记录集的回归。
运行结果:
打开数据库和表格: