在程序中动态地建立数据库是完全可以实现的,这里需要用到ADOX知识点,我们先进行必要的讲解。 一 什么是ADOX:ADOX是Microsoft ActiveX Data ObjectsExtensions 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.ExecutestrSQL 这句的解释在上一讲中已经详细的讲过了,没有记录集的返回 运行结果: 打开数据库和表:
为了更好地理解掌握上面的内容,有2个问题供大家思考:1.如何创建一个数据库?2.如何创建数据库中的表?
|