antd tree 动态添加_VBA数据库解决方案第11讲,如何动态建立数据库和数据库表

750d17c17d6d85db094af72f60399161.png

大家好,今日继续讲解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

代码截图:

7e810c0a5ef06a08bb1841c2c1cfa4e3.png

代码的解释说明:由于大部分在代码有注释只需要再解释两个语句:

1 strSQL = "CREATE TABLE " & strTable

SQL 中的CREATE TABLE 语句用于创建数据库中的表。

SQL CREATE TABLE 语法:

CREATE TABLE 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....)

2 catADO.ActiveConnection.Execute strSQL

这句的解释在上一讲中已经详细的讲过了,没有记录集的返回

运行结果:

376fcd140940ab32a2503f3056243172.png

打开数据库和表:

5407720620364f6b7db09180a095d2d6.png

今日内容回向:

1 如何创建一个数据库?

2 如何创建数据库中的表?

《VBA代码解决方案》系列电子书,是我将一些非常实用的VBA内容结集成册,PDF格式文件,朋友们可以从中查找到你想要解决问题的思路和方法,可以复制文中的VBA代码直接使用。有需要的朋友微信联络我NZ9668。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在React项目中使用Ant Design的Table组件动态生成头,需要完成以下步骤: 1. 定义数据源 首先需要定义格的数据源,可以使用一个数组来存储格的数据,例如: ```javascript const data = [ { key: '1', name: 'John Brown', age: 32, address: 'New York No. 1 Lake Park', }, { key: '2', name: 'Jim Green', age: 42, address: 'London No. 1 Lake Park', }, { key: '3', name: 'Joe Black', age: 32, address: 'Sidney No. 1 Lake Park', }, ]; ``` 2. 定义数据源 接下来需要定义头的数据源,可以使用一个数组来存储头的数据,例如: ```javascript const columns = [ { title: 'Name', dataIndex: 'name', key: 'name', }, { title: 'Age', dataIndex: 'age', key: 'age', }, { title: 'Address', dataIndex: 'address', key: 'address', }, ]; ``` 3. 动态生成头 在Ant Design的Table组件中,可以使用columns属性来指定数据源。为了动态生成头,需要在渲染组件时动态生成头的数据源,并将其传递给Table组件的columns属性,例如: ```javascript import React, { useState } from 'react'; import { Table } from 'antd'; const DynamicTable = () => { const [columns, setColumns] = useState([ { title: 'Name', dataIndex: 'name', key: 'name', }, { title: 'Age', dataIndex: 'age', key: 'age', }, { title: 'Address', dataIndex: 'address', key: 'address', }, ]); const handleAddColumn = () => { const newColumn = { title: `Column ${columns.length + 1}`, dataIndex: `column${columns.length + 1}`, key: `column${columns.length + 1}`, }; setColumns([...columns, newColumn]); }; return ( <> <button onClick={handleAddColumn}>Add Column</button> <Table dataSource={data} columns={columns} /> </> ); }; export default DynamicTable; ``` 在上面的代码中,我们使用useState钩子来定义头的数据源,并渲染一个添加列的按钮。当点击添加列按钮时,会动态生成一个新的列,并将其添加头的数据源中。这样就可以动态生成头了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值