加入收藏 | 设为首页 | 会员中心 | 我要投稿 天瑞地安资讯网_保定站长网 (https://www.52baoding.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

VBA数据库解决方案第11讲,如何动态建立数据库和数据库表

发布时间:2022-09-12 17:02:58 所属栏目:MySql教程 来源:
导读:  大家好,今日继续讲解VBA与数据库解决方案的第11讲内容,如何动态地建立数据库。

  VBA代码数据库解决方案一书写到这里,已经讲了很多,相信大家对于数据库的概念应该了然于胸了。我们也开始逐步讲解数据库
  大家好,今日继续讲解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
 
  代码截图:
 
  创建数据库表_mysql创建表存在创建_mysql库怎么创建用户
 
  代码的解释说明:由于大部分在代码有注释只需要再解释两个语句:
 
  1 strSQL = "CREATE TABLE " & strTable
 
  SQL 中的CREATE TABLE 语句用于创建数据库中的表。
 
  SQL CREATE TABLE 语法:
 
  CREATE TABLE 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....)
 
  2 catADO.ActiveConnection.Execute strSQL
 
  这句的解释在上一讲中已经详细的讲过了,没有记录集的返回
 
  运行结果:
 
  mysql创建表存在创建_创建数据库表_mysql库怎么创建用户
 
  打开数据库和表:
 
  mysql库怎么创建用户_创建数据库表_mysql创建表存在创建
 
  今日内容回向:
 
  1 如何创建一个数据库?
 
  2 如何创建数据库中的表?
 
  《VBA代码解决方案》系列电子书,是我将一些非常实用的VBA内容结集成册,PDF格式文件,朋友们可以从中查找到你想要解决问题的思路和方法,可以复制文中的VBA代码直接使用。
 

(编辑:天瑞地安资讯网_保定站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!