wloe2gf 发表于 2024-7-10 17:10:28

VBA数据库处理办法第十一讲:利用VBA代码,动态创立数据库


    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">《VBA数据库<span style="color: black;">处理</span><span style="color: black;">方法</span>》教程(版权10090845)是我推出的第二套教程,<span style="color: black;">日前</span><span style="color: black;">已然</span>是第二版修订了。这套教程定<span style="color: black;">位置于</span>中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中<span style="color: black;">仔细</span>介绍了利用ADO连接ACCDB和EXCEL的<span style="color: black;">办法</span>和实例操作,教程<span style="color: black;">第1</span>版的修订内容<span style="color: black;">重点</span>是完成所有程序文件的32位和64位OFFICE系统测试。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">这套教程共两册,八十四讲,今后一段时间会给<span style="color: black;">大众</span><span style="color: black;">持续</span>推出修订后的教程内容。今日的内容是:VBA数据库<span style="color: black;">处理</span><span style="color: black;">方法</span>第十一讲:利用VBA代码,动态<span style="color: black;">创立</span>数据库<img src="//q5.itc.cn/images01/20240601/41a8e41111d64239b190ccb4d724a880.jpeg" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">【分享成果,随喜正能量】 以时寝息,当愿众生,身得安隐,心<span style="color: black;">没</span>动乱 。愿<span style="color: black;">咱们</span>都能,梦见幸福!。 </strong></p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">第十一讲 利用VBA代码,动态<span style="color: black;">创立</span>数据库</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">大众</span>好,今日继续讲解VBA数据库<span style="color: black;">处理</span><span style="color: black;">方法</span>的第11讲内容,<span style="color: black;">怎样</span>动态的<span style="color: black;">创立</span>数据库。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">VBA代码数据库<span style="color: black;">处理</span><span style="color: black;">方法</span>一书写到<span style="color: black;">这儿</span>,<span style="color: black;">已然</span>讲了<span style="color: black;">非常多</span>,相信<span style="color: black;">大众</span><span style="color: black;">针对</span>数据库的概念应该了然于胸了。<span style="color: black;">咱们</span><span style="color: black;">亦</span><span style="color: black;">起始</span>逐步讲解数据库的<span style="color: black;">实质</span>操作,有的<span style="color: black;">伴侣</span>说你示例中数据库是事先<span style="color: black;">创立</span>的,<span style="color: black;">是不是</span><span style="color: black;">能够</span>用VBA代码动态<span style="color: black;">创立</span>数据库呢?今日的这讲<span style="color: black;">咱们</span>就解决这个问题。在程序中动态的<span style="color: black;">创立</span>数据库是完全<span style="color: black;">能够</span>实现的,今日的内容<span style="color: black;">必须</span>用到的知识点为ADOX,<span style="color: black;">咱们</span>要先对这个知识点进行必要的讲解。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">1 什么是ADOX</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">ADOX是Microsoft ActiveX Data Objects Extensions for Data Definition Language and Security 的简写,是对ADO对象和编程模型的扩展。可用于创建、修改和删除模式对象,如表格的创建,安全对象的实施,可用于<span style="color: black;">守护</span>用户和组,以及授予和撤消对象的权限。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">要<span style="color: black;">经过</span><span style="color: black;">研发</span><span style="color: black;">工具</span><span style="color: black;">运用</span>ADOX,<span style="color: black;">首要</span><span style="color: black;">必须</span><span style="color: black;">创立</span>对 ADOX 的引用。引用对象为:“Microsoft ADO Ext. for DDL and Security.”当然<span style="color: black;">亦</span><span style="color: black;">能够</span>在过程中创建,我<span style="color: black;">此时</span>讲到引用和过程中创建,<span style="color: black;">伴侣</span>们不会陌生了。这和ADO的应用和创建是一个道理。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">2 ADOX的对象</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">ADOX的对象<span style="color: black;">重点</span>用下面的内容</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">2.1 Catalog <span style="color: black;">包括</span>描述数据源模式目录的集合。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">2.2 Column <span style="color: black;">暗示</span>表、索引或关键字的列。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">2.3 Group <span style="color: black;">暗示</span>在安全数据库内有<span style="color: black;">拜访</span>权限的组帐号。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">2.4 Index <span style="color: black;">暗示</span>数据库表中的索引。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">2.5 Key <span style="color: black;">暗示</span>数据库表中的主关键字、<span style="color: black;">外边</span>关键字或<span style="color: black;">独一</span>关键字。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">2.6 Procedure <span style="color: black;">暗示</span>存储的过程。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">2.7 Table <span style="color: black;">暗示</span>数据库表,<span style="color: black;">包含</span>列、索引和关键字。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">3 ADOX对象的<span style="color: black;">办法</span></h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">3.1 Append(Columns) 将新的 Column 对象添加到 Columns 集合。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">3.2 Append(Groups) 将新的 Group 对象添加到 Groups 集合。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">3.3 Append(Indexes) 将新的 Index 对象添加到 Indexes 集合。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">3.4 Append(Keys) 将新的 Key 对象添加到 Keys 集合。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">3.5 Append(Procedures) 将新的 Procedure 对象添加到 Procedures 集合。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">3.6 Append(Tables) 将新的 Table 对象添加到 Tables 集合。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">3.7 ChangePassword 更改用户帐号的<span style="color: black;">暗码</span>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">3.8 Create 创建新的目录。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">3.9 Delete 删除集合中的对象。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">3.10 Refresh 更新集合中的对象,以反映针对<span style="color: black;">供给</span>者可用的和指定的对象。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4 ADOX对象的属性</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4.1 Count 指示集合中的对象数量。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4.2 DefinedSize 指示列的规定最大<span style="color: black;">体积</span>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4.3 DeleteRule 指示主关键字被删除时将执行的操作。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4.4 IndexNulls 指示在索引字段中有 Null 值的记录<span style="color: black;">是不是</span>有索引项。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4.5 Name 指示对象的名<span style="color: black;">叫作</span>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4.6 NumericScale 指示列中数值的范围。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4.7 Precision 指示列中数据值的最高精度。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4.8 PrimaryKey 指示索引<span style="color: black;">是不是</span><span style="color: black;">表率</span>表的主关键字。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4.9 RelatedColumn 指示<span style="color: black;">关联</span>表中<span style="color: black;">关联</span>列的名<span style="color: black;">叫作</span>(仅关键字列)。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4.10 SortOrder 指示列的排序<span style="color: black;">次序</span>(仅索引列)。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4.11 Type(关键字) 指示关键字的数据类型。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;">5 利用ADOX创建一个数据库的实例</h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>看下面的代码:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Sub mynz_11创建数据库及表</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Dim catADO As Object</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Dim strPath As String, strTable As String, strSQL As String</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Set catADO = CreateObject("ADOX.Catalog")</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">strPath = ThisWorkbook.Path &amp; "\mydata2.accdb" 此处是一个完整的路径</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">strTable = "员工记录" 表名<span style="color: black;">叫作</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">If Dir(strPath) &lt;&gt; "" Then Kill strPath <span style="color: black;">倘若</span>有一个名<span style="color: black;">叫作</span>相同的表,<span style="color: black;">那样</span>删除</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">catADO.Create "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" &amp; strPath 打开数据库的连接</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">下面的代码将创建一个名为“员工记录”的表<span style="color: black;">包括</span>的字段有员工编号、姓名、性别、<span style="color: black;">分部</span>、职务、备注</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">strSQL = "CREATE TABLE " &amp; strTable _</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&amp; "(员工编号 long not null primary key," _</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&amp; "姓名 text(20) not null," _</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&amp; "性别 text(1) not null," _</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&amp; "<span style="color: black;">分部</span> text(20) not null," _</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&amp; "职务 text(20) ," _</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&amp; "备注 text(20))"</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">catADO.ActiveConnection.Execute strSQL</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">MsgBox "创建数据库成功!" &amp; vbCrLf _</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&amp; "数据库文件名为:" &amp; strPath &amp; vbCrLf _</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&amp; "数据表名<span style="color: black;">叫作</span>为:" &amp; strTable &amp; vbCrLf _</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&amp; "<span style="color: black;">保留</span>位置:" &amp; ThisWorkbook.Path, _</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">vbOKOnly + vbInformation, "创建数据库"</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Set catADO = Nothing</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">End Sub</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">代码截图:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="//q3.itc.cn/images01/20240601/3f8d978b45834113a381b0c5d204eb6b.jpeg" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">代码的<span style="color: black;">诠释</span>:<span style="color: black;">因为</span>大部分在代码有注释只<span style="color: black;">必须</span>再解释两个语句:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">1) strSQL = "CREATE TABLE " &amp; strTable</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">SQL 中的CREATE TABLE 语句用于创建数据库中的表。SQL CREATE TABLE 语法:</strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">CREATE TABLE 表名<span style="color: black;">叫作</span>(列名<span style="color: black;">叫作</span>1 数据类型,列名<span style="color: black;">叫作</span>2 数据类型,列名<span style="color: black;">叫作</span>3 数据类型,....)</strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">2) catADO.ActiveConnection.Execute strSQL</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">这句的解释在上一讲中<span style="color: black;">已然</span><span style="color: black;">仔细</span>的讲过了,<span style="color: black;">无</span>记录集的返回</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">运行结果:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="//q5.itc.cn/images01/20240601/51c22371a5c74c8ab796d883d1260168.jpeg" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">打开数据库和表:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="//q8.itc.cn/images01/20240601/ef57ddc724fb426ba31e5c48e85367d1.jpeg" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">今日内容回向:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">1 <span style="color: black;">怎样</span>创建一个数据库?</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">2 <span style="color: black;">怎样</span>创建数据库中的表?</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">本讲内容参考程序文件:VBA与数据库操作(<span style="color: black;">第1</span>册).xlsm</strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="//q0.itc.cn/images01/20240601/a91c4c7e88d5481caf130d067e119a3a.jpeg" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">我20<span style="color: black;">数年</span>的VBA实践经验,<span style="color: black;">所有</span>浓缩在下面的各个教程中:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="//q9.itc.cn/images01/20240601/971b05e96eba4c689b999086557503dd.jpeg" style="width: 50%; margin-bottom: 20px;"><a style="color: black;"><span style="color: black;">返回<span style="color: black;">外链论坛:www.fok120.com</span>,查看<span style="color: black;">更加多</span></span></a></p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">责任编辑:网友投稿</span></p>




星☆雨 发表于 2024-8-20 02:22:42

请问、你好、求解、谁知道等。

流星的美 发表于 2024-9-7 15:53:07

哈哈、笑死我了、太搞笑了吧等。

j8typz 发表于 2024-9-8 12:53:13

系统提示我验证码错误1500次 \~゛,

1fy07h 发表于 2024-9-25 22:20:19

外链论坛的成功举办,是与各位领导、同仁们的关怀和支持分不开的。在此,我谨代表公司向关心和支持论坛的各界人士表示最衷心的感谢!

4lqedz 发表于 2024-9-30 04:20:57

你的言辞如同繁星闪烁,点亮了我心中的夜空。

1fy07h 发表于 2024-10-12 20:09:35

我深受你的启发,你的话语是我前进的动力。

qzmjef 发表于 2024-10-23 00:55:20

你的话语真是温暖如春,让我心生感激。
页: [1]
查看完整版本: VBA数据库处理办法第十一讲:利用VBA代码,动态创立数据库