【分享成果,随喜正能量】人,有了物质才能生存;人,有了理想才谈得上生活,脚步不能达到的地方,眼光可以到达,眼光不能到达的地方,精神可以飞到。
《VBA数据库解决方案》教程是我推出的第二套教程,目前已经是第一版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。
这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是第29讲:数据库中记录的批量修改
第二十九讲 如何批量修改数据库中的数据
大家好,今日我们继续VBA数据库解决方案的第29讲:如何批量修改数据库中的记录。在数据库解决方案中,我在从实际应用的角度,把工作中可能遇到的各种情况都尽可能的给罗列上,我们先后讲了:
① 如何在数据库中动态删除和建立数据表(第14讲)
② 在已有的数据表中删除、添加、修改字段的方法(第21讲);
③ 根据工作表中的数据,生成数据库中新的数据表的方法(第22讲);
④ 向一个已有的数据表中添加数据记录的方法(第23讲);
⑤ 把工作表中提供的数据在数据表中逐一删除(可以是重复的记录)的通用方法(第24讲);
⑥ 把工作表中提供的特定数据在数据库中批量删除的方法(第25讲);
⑦ 把工作表中不存在的记录在数据表中批量删除的方法(第26讲);
⑧ 把数据表中特殊的记录删除的方法(第27讲);
⑨ 把数据表中对应工作表的数据首先删除,然后向数据表中导入工作表的数据(第28讲)
以上的各种方法都不是孤立的,有的可以组合利用,比如:第⑨的方法可以用⑤+④的方法解决,大家学习知识千万不可教条,很多朋友希望我能把所有的实际情况都写出来。但那是不可能的,工作中总会遇到实际的问题,要具体的问题具体的分析。
1 应用场景的具体分析
今日我们讲解的内容是如何批量的修改记录,这个问题也可以先删除,再添加记录来解决。当然,我们今日要讲的方法和上述的思路不一样:
实例:如下,数据库中有如下记录:
我们要把民族修正为下面的内容:
2 批量修改数据库中的数据 的代码及代码解读
如何处理呢,我们看代码:
Sub mynz_29() '第29讲 批量修改记录
【详细代码见教程】
End Sub
代码截图:
代码讲解:
1)i = 1
Do While Ac(1, i) <> ""
strField = strField & ",A." & Ac(1, i).Value & "=B." & Ac(1, i).Value
i = i + 1
Loop
上述代码首次要构建一个字符串然后用在SQL中:这个字符串的组成其实要说明的是两个表(工作表和数据表)中的字段相同。
2) strSQL = "UPDATE " & strTable & " A,[Excel 12.0;Imex=0;Database=" _
& T & ";].[" & Ac & "$" _
& Range("A1").Curren(0, 0) & "] B " _
& "SET " & strField & " WHERE A.员工编号=B.员工编号"
上述语句是一个SQL语句,关于SQL语句的写法,大家可以先不用过度的关注,实际遇到的语句大家可以理解,作为一种规范的写法即可。在本书的后半部分有各种连接的讲解。
这条SQL语句中"UPDATE "是编辑记录,修改的记录集的记录.然后用EXECUTE执行.
下面我们看程序的运行过程:我们先显示一下数据库中的记录:
然后我们修改一下,然后我们点击修改记录:
最后提示记录数:
我们再次查看数据表中的记录的情况:
今日内容回向:
1 如何批量的修改记录?
2 上述批量修改记录的方法还有什么?
本讲内容参考程序文件:VBA与数据库操作(第一册).xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】以细行律身,不可以细行取人。自律且努力,当你能控制好自己、把握好自己的时候,就会遇到一个更好的自己!