我的标志

数据库Visual Basic应用程序或VBA是驱动编程语言的一个重要事件。它是用于创建,其增强的Microsoft Office套件的应用程序。Visual Basic应用程序非常适合开发特定的应用程序,这些是否办公资源,图形程序,文件整理程序,或任何其他类型的基于Windows的软件程序。今天,我们就来看看有用和经常使用的记录功能,在这个中间层次的教程。您需要使用Microsoft Access的熟悉的基本水平。如果你是新的给他们,你应该第一个做到这一点的入门课程到Microsoft Access. 对于熟悉VBA的人,您可以使用本VBA教程进行快速复习.

什么是记录集

记录集是在数据库中存储一组记录的结构。这些记录可能是查询的结果,也可能是单个表的内容。修改记录集中存储的信息不会影响实际数据库表中包含的相应信息。记录集被广泛用作数据库编程(包括Visual Basic for Applications)的一个组成部分。

请注意,记录集是一个空白表,可以使用无限的行和列进行完全自定义。这些信息包括计算机数据库返回的任何信息,无论大小。好的数据库能够生成和显示记录集。你可以了解有关在Excel中管理数据库的详细信息在这门课上。

数据库Microsoft Office Access允许您使用VBA在Access中创建应用程序。VBA通常用于自动化MS Office应用程序中的重复任务。MS Access是一种关系数据库系统,通常用于较小的数据库。select查询从数据库表检索数据。记录集读取查询返回的内容。这里我们看一个程序,它使用select查询创建一个表并查看其内容。你可以参加这个课程从Udemy了解更多关于使用VBA与MS访问。

示例1:如何在查询中使用记录集

Sub useRecordset()Dim strSQL1作为字符串Dim dbs1作为数据库Dim rst1作为记录集Dim tmpStr作为字符串集dbs=CurrentDb tmpStr=“Company | Last Name |”tmpStr=tmpStr&“First Name |”tmpStr=tmpStr&“Job Title |”tmpStr=tmpStr&“Business Phone”Debug.printmpstr str stql1=“SELECT Customers.Company,Customers.[姓氏],”strSQL1=strSQL1&“客户。[名字],“strSQL1=strSQL1&”客户。[职务],客户。[商务电话]“strSQL1=strSQL1&”来自客户;“Set rst1=dbs1.OpenRecordset(strSQL)rst1.MoveLast rst1.MoveFirst Do而不是rst1.EOF tmpStr=rst1.Fields(0)。值tmpStr=tmpStr&“|”&rst1.Fields(1)。值tmpStr=tmpStr&”&rst1.Fields(2).值tmpStr=tmpStr&“|”&rst1.Fields(3).值tmpStr=tmpStr&“|”&rst1.Fields(4).值Debug.PrinttmpStr rst1.MoveNext循环rst1.Close dbs1.Close

在这个程序中,将变量dbs1声明为数据库对象,rst1声明为记录集对象。使用SQL select命令查询客户的表。使用查询打开记录集。循环浏览记录集并显示记录,直到记录集结束。最后,关闭数据库和记录集对象。

示例2:运行select查询的VBA记录集

私有子runSelectQuery()Dim db1作为数据库Dim rcrdSe1t作为记录集Dim strSQL1作为字符串Dim XCTR1AS Integer Set db1=CurrentDb strSQL1=“创建表selectQueryData(NumField NUMBER,Tenant TEXT,Apt TEXT);“DoCmd.RunSQL(strSQL1)strSQL1=”插入selectQueryData(NumField,Tenant,Apt)“strSQL1=strSQL1&”值(1,'John','A');“DoCmd.SetWarnings False DoCmd.RunSQL(strSQL1)strSQL1=”插入selectQueryData(NumField,Tenant,Apt)“strSQL1=strSQL1&”值(2,'Susie','B');“DoCmd.SetWarnings False DoCmd.RunSQL(strSQL1)strSQL1=”插入selectQueryData(NumField,Tenant,Apt)“strSQL1=strSQL1&”值(3,'Luis','C');“DoCmd.SetWarnings False DoCmd.RunSQL(strSQL1)strSQL1=”selectQueryData.*从selectQueryData“strSQL1=strSQL1&”其中selectQueryData.Tenant='Luis';“Set rcrdSet1=db.OpenRecordset(strSQL1)rcrdSet1.MoveLast rcrdSet1.MoveFirst For xctr=0到rcrdSet1.RecordCount-1 MsgBox”Tenant:“&rcrdSet.Fields”(“Tenant”).Value&”,位于apt:“&rcrdSet1.Fields(“apt”).Value rcrdSet1.MoveNext下一个xcnr rcrdSet1.Close db.Close End Sub

在这个程序中,我们声明变量DB1数据库对象,如rcrdSet1 Recordset对象,strSQL1作为字符串对象和Xcntr作为Integer.The字符串对象被分配了一个查询字符串。DoCmd.RunSQL是它运行的字符串,创建表的命令。创建一个新表。插入SQL命令,可以插入表中的记录。该记录被打开,我们转移到记录集中的第一条记录。显示每个记录在记录直到我们到达记录集的最后一条记录。最后,我们关闭Recordset对象和数据库对象两者。

例3:程序来设置特定记录的值

Dim sqlStr1作为字符串Dim rst1作为记录集Dim dbs1作为数据库集dbs1=CurrentDb sQLString=“创建表editRecord(F_Name TEXT,L_Name TEXT)”DoCmd.SetWarnings False DoCmd.RunSQL(sQLString)Strsql1=“插入editRecordVALUES('JOhn','Smith')”DoCmd.RunSQL(Strsql1)strsql=“插入editRecordVALUES('George','Bailey')”DoCmd.RunSQL(strsql1)strsql=“插入editRecord值('Glen','Maxwell')”DoCmd.RunSQL(strsql1)Set rst1=dbs.OpenRecordset(“从editRecord中选择editRecord.*”)Set rst1=dbs.OpenRecordset(“从editRecord中选择editRecord.*”)rst1.Move(2)rst1.Edit rst1.Fields(“F_Name”).Value=“PAUL”rst1.Update rst1.Close Set dbs=Nothing

在这个程序中,我们声明sqlStr1为字符串变量,rst1为记录集对象,dbs1为数据库对象。使用DoCmd.RunSQL命令创建一个新表。表中插入了三条记录。通过查询表中的所有记录来创建记录集。我们将记录集移动到记录编号3,并将“F_name”字段更新为“Paul”。然后关闭记录集。按“F5”功能键运行子程序。你可能想了解有关Microsoft Access的详细信息这个当然更好地理解这些例子。

实施例4:在一个表搜寻记录

子searchRecords()昏暗RST1作为记录昏暗DBS1数据库昏暗stringToSearch1 As String设置DBS1 = CurrentDb stringToSearch1 = “的Dyna” 设置RST1 = dbs1.OpenRecordset( “选择的顾客。* FROM顾客”)设置RST1 = dbs1.OpenRecordset(“SELECT<表名> * FROM <表名> “)Rst1.MoveFirst待办事项尽管不rst1.EOF如果rst1.Fields(” 名“)值= stringToSearch1然后MSGBOX。 ”找到 “&stringToSearch&” 中记录号:“ &RST1.AbsolutePosition rst1.MoveLast Else Rst1.MoveNext End If Loop stringToSearch1 = "" If rst1.Fields("").Value = stringToSearch Then rst1.Close dbs1.Close

在节目中,我们声明变量作为RST1 Recordset对象和DBS1数据库对象。通过查询客户的表创建一个记录。移动到记录集的第一条记录。循环通过第一名称列递增记录位置和搜索“力扬”的记录。该记录被发现后,关闭记录和数据库对象。这个关于在Microsoft Access中使用VBA的课程有很多你可能想尝试的例子。

示例5:如何将记录集复制到表中

Sub-RecordsetExample()Dim dbTest1作为数据库Dim rsRecordset1作为记录集Dim sqlStatement1作为字符串集dbTest1=OpenDatabase(“MyDatabase.mbd”)Set rsRecordset1=.OpenRecordset(“Table1”,dbOpenTable)以sqlStatement1=“INSERT INTO Table2 VALUES”结尾,以rsRecordset1 rsRecordset1.MoveFirst Do rsRecordset1.RunSQL结尾(sqlStatement1)rsRecordset1.MoveNext循环,而不是rsRecordset1.EOF End With End Sub

将变量dbTest1、rsRecordset1、sqlStatement1分别声明为类型数据库、记录集和字符串对象。打开记录集对象读取记录并将值插入数据库表。此操作在到达记录集末尾时终止。最后关闭数据库和记录集对象。

例6:如何使用VBA的进口数据从Excel中导入Access

子importExcelData()昏暗xlApp作为Excel.Application昏暗xlBk作为Excel.Workbook昏暗xlSht作为Excel.Worksheet昏暗dbRst1作为记录昏暗DBS1数据库昏暗SQLStrAs String设置DBS1 = CurrentDb集xlApp = Excel.Application集xlBk = xlApp.Workbooks。打开( “C:\ TEMP \ dataToImport.xlsx”)设置xlSht = xlBk.Sheets(1)SQLStr = “CREATE TABLE excelData(columnOne TEXT,columnTwo TEXT)” DoCmd.SetWarnings假DoCmd.RunSQL(SQLStr)设置dbRst1 = DBS.OpenRecordset( “excelData”)dbRst1.AddNew xlSht.Range( “A2”)。选择dbRst1.Fields(0)。价值= xlSht.Range( “A2”)。值xlSht.Range( “B2”)。选择dbRst1点域(1)。价值= xlSht.Range( “B2”)。值dbRst1.Update dbRst1.Close dbs1.Close xlBk.Close结束子

在开始的时候,我们声明xlApp,xlBk和xlSht你会用它来读取Excel变量。此外,我们声明变量dbrst1作为Recordset对象和DBS1数据库对象。使用DoCmd.RunSQL执行SQL命令。我们得到的值从Excel工作簿,将它们保存到你的表和更新的记录。最终永远记住关闭数据库和Recordset对象。如果您想对方法更实用,可以检查出MS访问此课程.

希望您在学习记录集功能时玩得开心。最好通过创建自己的程序来学习编程。浏览上面的示例并使用代码。一旦你准备好将它提升到下一个级别,你就可以采取这种先进的VBA课程由超强火力的Microsoft Access.它有很多更多的果汁和技巧,以使与MS访问您的工作,以便更容易!

最后更新的网页:2020年2月

在Excel VBA热门课程

解锁Excel的VBA和Excel宏
莱拉·格拉尼
4.7 (29,086)
畅销书
掌握Microsoft Excel宏和Excel VBA
凯尔·皮尤
4.6 (13,467)
畅销书
终极Excel的VBA
马克·塔尔伯特
4.6 (3,361)
Excel与Microsoft Excel VBA用户表单
凯尔·皮尤
4.8 (1,270)
终极Excel的VBA用户窗体与Access数据库
M.穆斯塔法·努尔加利
5. (152)
收视率最高
Microsoft Excel中VBA - 解决在使用基础复杂问题
希勒·姆兰加
4.7 (33)
收视率最高
Excel VBA编程-完整指南
鲍里斯·帕斯卡弗
4.7 (3,913)
用excelvba实现Web自动化
丹尼尔强
4.5 (795)
畅销书
microsoftexcelvba简介
凯尔·皮尤
4.7 (1,239)

更多Excel VBA课程

Excel中VBA的学生还学

赋予你的团队。引领行业。

使用Udemy for Business订阅您所在组织的在线课程和数字学习工具库。

请求演示