一组实用的VBA常用编程代码语句分享
分享成果,随喜真能量。大家好,今天继续和大家分享VBA编程中常用的过程代码。简单的过程组合起来就是一个复杂的过程,越简单的事物往往越容易理解,我们要认真掌握这些简单的过程,为我们复杂的工程服务。这也是我\”搭积木\”编程的思想。
VBA过程代码51:存所有打开的工作簿后退出Excel.
Sub MyNZ()
Dim wb As Workbook
MsgBox \”保存所有打开的工作簿后退出Excel.\”
For Each wb In Application.Workbooks
wb.Save
Next wb
Application.Quit
End Sub
代码的解析说明:上述过程保存当前的所有打开的工作薄,然后退出Application.Quit,在保存的时候用了一个for each 遍历循环,对于Application.Workbooks集合中的每一个元素
Wb 都要执行一次保存的操作。
——————————————————————————————————————-
VBA过程代码52:保存原来已存在且已打开的工作簿
Sub MyNZ()
Dim wb As Workbook
For Each wb In Workbooks
If wb.Path <> \”\” Then wb.Save
Next wb
End Sub
代码的解析说明:本示例过程保存原来已存在且已打开的工作簿。其中用到了一个For Each的循环。在判断是否是已经存在的文件时用到了If wb.Path <> \”\”, wb.Path会返回工作薄的路径。
VBA过程代码53:将工作簿以指定名保存在默认文件夹中
Sub MyNZ()
MsgBox \”将工作簿以指定名保存在默认文件夹中.\”
ActiveWorkbook.SaveAs \”<工作簿名>.xls\”
End Sub
代码的解析说明:SaveAs方法相当于\”另存为……\”命令,以指定名称保存工作簿。该方法有12个参数,均为可选参数。如果未指定保存的路径,那么将在默认文件夹中保存该工作簿。如果文件夹中该工作簿名已存在,则提示是否替换原工作簿。
VBA过程代码54:将工作簿以指定名保存在默认文件夹中
Sub MyNZ()
Dim oldName As String, newName As String
Dim folderName As String, fname As String
oldName = ActiveWorkbook.Name
newName = \”new\” & oldName
MsgBox \”将<\” & oldName & \”>以<\” & newName & \”>的名称保存\”
folderName = Application.DefaultFilePath
fname = folderName & \”/\” & newName
ActiveWorkbook.SaveAs fname
End Sub
代码的解析说明:本示例将当前工作簿以一个新名(即new加原名)保存在默认文件夹中。
VBA过程代码55:保存工作簿并建立备份工作簿
Sub MyNZ()
MsgBox \”保存工作簿并建立备份工作簿\”
ActiveWorkbook.SaveAs CreateBackup:=True
End Sub
代码的解析说明:本示例将在当前文件夹中建立工作簿的备份,注意备份的位置是工作薄的默认位置。
看板:
下面是我根据我自己20多年的VBA实际利用经验,编写的几部经验教程,全是满满的\”干货\”,对于应用来讲,足矣,欢迎有需要的朋友联络(WeChat:NZ9668)分享;其中视频教程的优惠活动正在进行中。
1 《VBA代码解决方案》是VBA中各个知识点的讲解,覆盖了绝大多数的知识点。
2 《VBA数据库解决方案》是数据处理的利器;
3 《VBA数组与字典解决方案》中讲解VBA的精华—-字典。
4 面向初学及中级以下学员的视频《VBA代码解决方案》正在录制。看视频,\”每天20分钟,半年精进VBA\”活动正在火热进行中,越早报名,回馈越多。现在第一册48讲内容已经录制完成,第一阶段的优惠活动也即将结束。
VBA数据库解决方案第十一讲:利用VBA代码,动态建立数据库
《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。
这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA数据库解决方案第十一讲:利用VBA代码,动态建立数据库
【分享成果,随喜正能量】 以时寝息,当愿众生,身得安隐,心无动乱 。愿我们都能,梦见幸福!。
大家好,今日继续讲解VBA数据库解决方案的第11讲内容,如何动态的建立数据库。
VBA代码数据库解决方案一书写到这里,已经讲了很多,相信大家对于数据库的概念应该了然于胸了。我们也开始逐步讲解数据库的实际操作,有的朋友说你示例中数据库是事先建立的,是否可以用VBA代码动态建立数据库呢?今日的这讲我们就解决这个问题。在程序中动态的建立数据库是完全可以实现的,今日的内容需要用到的知识点为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的对象主要用下面的内容
2.1 Catalog 包含描述数据源模式目录的集合。
2.2 Column 表示表、索引或关键字的列。
2.3 Group 表示在安全数据库内有访问权限的组帐号。
2.4 Index 表示数据库表中的索引。
2.5 Key 表示数据库表中的主关键字、外部关键字或唯一关键字。
2.6 Procedure 表示存储的过程。
2.7 Table 表示数据库表,包括列、索引和关键字。
3.1 Append(Columns) 将新的 Column 对象添加到 Columns 集合。
3.2 Append(Groups) 将新的 Group 对象添加到 Groups 集合。
3.3 Append(Indexes) 将新的 Index 对象添加到 Indexes 集合。
3.4 Append(Keys) 将新的 Key 对象添加到 Keys 集合。
3.5 Append(Procedures) 将新的 Procedure 对象添加到 Procedures 集合。
3.6 Append(Tables) 将新的 Table 对象添加到 Tables 集合。
3.7 ChangePassword 更改用户帐号的密码。
3.8 Create 创建新的目录。
3.9 Delete 删除集合中的对象。
3.10 Refresh 更新集合中的对象,以反映针对提供者可用的和指定的对象。
4 ADOX对象的属性
4.1 Count 指示集合中的对象数量。
4.2 DefinedSize 指示列的规定最大大小。
4.3 DeleteRule 指示主关键字被删除时将执行的操作。
4.4 IndexNulls 指示在索引字段中有 Null 值的记录是否有索引项。
4.5 Name 指示对象的名称。
4.6 NumericScale 指示列中数值的范围。
4.7 Precision 指示列中数据值的最高精度。
4.8 PrimaryKey 指示索引是否代表表的主关键字。
4.9 RelatedColumn 指示相关表中相关列的名称(仅关键字列)。
4.10 SortOrder 指示列的排序顺序(仅索引列)。
4.11 Type(关键字) 指示关键字的数据类型。
我们看下面的代码:
Sub mynz_11\’创建数据库及表
Dim catADO As Object
Dim strPath As String, strTable As String, 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.Execute strSQL
这句的解释在上一讲中已经详细的讲过了,没有记录集的返回
运行结果:
打开数据库和表:
今日内容回向:
1 如何创建一个数据库?
2 如何创建数据库中的表?
本讲内容参考程序文件:VBA与数据库操作(第一册).xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。