VBA记录集:如何轻松处理记录集
Visual Basic for Applications或VBA是一个重要的事件驱动编程语言。它用于创建增强Microsoft Office套件应用程序的程序。Visual Basic for Applications非常适合开发特定应用程序,无论这些是办公资源,图形程序,文件排序程序还是任何其他基于Windows的软件程序。今天,我们在这个中间级教程中查看有用和常用的Recordset函数。您需要基本熟悉Microsoft Access的熟悉程度。如果你是新的,你应该首先为Microsoft Access进行此介绍性课程。对于熟悉VBA的人,你可以用这个VBA教程快速刷新。
记录集是什么
Recordset是存储数据库中的一组记录的结构。这些记录可能是查询的结果或单个表的内容。修改存储在记录集中的信息不会影响实际数据库表中包含的相应信息。RecordSets广泛采用数据库编程的组成部分,包括Visual Basic for Applications。
请注意,Recordset是一个空白表,它是完全自定义的无限行和列。这些包括计算机数据库返回的任何信息,无论多么小或大。良好的数据库具有生成和显示记录集的能力。你可以了解有关Excel中管理数据库的更多信息在本课程中。
Microsoft Office Access,一个数据库,允许您使用VBA在访问中创建应用程序。VBA通常用于自动化MS Office应用程序中的重复任务。MS访问是一个通常用于较小数据库的关系数据库系统。SELECT查询从数据库表中检索数据。Recordset读取查询返回的内容。在这里,我们查看一个程序创建表并使用SELECT查询查看其内容。你可以从Udemy乘坐这门课程来学习有关使用VBA的更多信息使用MS访问。
例1:如何在查询中使用记录集
子useRecordset()暗strSQL1字符串昏暗dbs1如数据库记录集昏暗tmpStr昏暗rst1字符串设置dbs = CurrentDb tmpStr =“公司| |姓”tmpStr = tmpStr&”名字|“tmpStr = tmpStr&”职位|“tmpStr = tmpStr&“业务电话”调试。PrinttmpStr strSQL1 = "SELECT clients . "公司的客户。[姓氏]," strSQL1 = strSQL1& "客户。[Name], " strSQL1 = strSQL1& "(职称),客户。[Business Phone]" strSQL1 = strSQL1& "FROM Customers;"设置rst1 = dbs1.OpenRecordset(strSQL)。MoveLast rst1。MoveFirst Do While Not rst1。EOF tmpStr = rst1.Fields(0)。值tmpStr = tmpStr& " | " & rst1.Fields(1)。值tmpStr = tmpStr& " | " & rst1.Fields(2)。Value tmpStr = tmpStr& " | " & rst1.Fields(3)。值tmpStr = tmpStr& " | " & rst1.Fields(4)。值调试。PrinttmpStr Rst1。MoveNext循环rst1。dbs1关闭。关闭
在此程序中,将变量DBS1视为数据库对象,RST1作为Recordset对象。使用SQL SELECT命令查询客户的表。使用查询打开Recordset。循环通过Recordset并显示记录到记录集的末尾。在最后,关闭数据库和记录集对象。
例2:VBA记录集运行一个选择查询
Private Sub runSelectQuery() Dim db1 As Database Dim rcrdSe1t As Recordset Dim strSQL1 As String Dim Xcntr1As Integer Set db1 = CurrentDb strSQL1 = "CREATE TABLE selectQueryData (NumField NUMBER, Tenant TEXT, Apt TEXT);"DoCmd。strSQL1 = "INSERT INTO selectQueryData (NumField, Tenant, Apt) " strSQL1 = strSQL1& "VALUES (1, 'John', 'A');"DoCmd。SetWarnings假DoCmd。RunSQL (strSQL1) strSQL1 = "INSERT INTO selectQueryData (NumField, Tenant, Apt) "" strSQL1 = strSQL1& "VALUES (2, 'Susie', 'B');"DoCmd。SetWarnings假DoCmd。RunSQL (strSQL1) strSQL1 = "INSERT INTO selectQueryData (NumField, Tenant, Apt) " " strSQL1 = strSQL1& "VALUES (3, 'Luis', 'C');" DoCmd.SetWarnings False DoCmd.RunSQL (strSQL1) strSQL1 = "Select selectQueryData.* from selectQueryData " strSQL1 = strSQL1& "WHERE selectQueryData.Tenant = 'Luis';" Set rcrdSet1 = db.OpenRecordset(strSQL1) rcrdSet1.MoveLast rcrdSet1.MoveFirst For Xcntr = 0 To rcrdSet1.RecordCount - 1 MsgBox "Tenant: " &rcrdSet.Fields("Tenant").Value & ", Lives in apt: " & _ rcrdSet1.Fields("Apt").Value rcrdSet1.MoveNext Next Xcntr rcrdSet1.Close db.Close End Sub
在此程序中,我们将变量DB1作为数据库对象,RCRDSet1作为Recordset对象,strsql1作为String对象和Xcntr作为整数。字符串对象被分配一个查询字符串。docmd.runsql是运行字符串以创建表的命令。创建了一个新表。插入SQL命令用于在表中插入记录。打开RecordSet,我们将转移到记录集中的第一个记录。在记录集中显示每个记录,直到我们达到记录集的最后一记录。最后,我们关闭Recordset对象和数据库对象。
示例3:设置特定记录值的程序
Dim sqlstr1作为Recordset dim rst1作为记录集dim dbs1作为数据库集dbs1 = currentdb sqlstring =“create table eDitrecord(f_name text,l_name text)”docmd.setwarnings false docmd.runsql(sqlstring)strsql1 =“插入到editrocordvalues('John'),'smith')“docmd.runsql(strsql1)strsql =”插入到editrocord值('george','bailey')“docmd.runsql(strsql1)strsql =”插入到editrocord值('glen','maxwell'))“docmd.runsql(strsql1)设置rst1 = dbs.openrecordset(”选择editrocord. * from editecord“)设置rst1 = dbs.openrecordset(”选择editrocord。来自editrocord“)rst1.move(2)rst1.edit rst1.fields(“f_name”)。value =“paul”rst1.update rst1.close set dbs =没有
在此程序中,我们将SQLSTR1声明为String变量,RST1为Recordset对象和DBS1作为数据库对象。使用docmd.runsql命令创建一个新表。将三个记录插入表中。通过查询表以获取Allits记录来创建Recordset.we将记录设置为记录编号3并将“f_name”字段更新为“paul”。然后关闭记录集。按“F5”功能键运行子程序。你可能想要了解更多关于Microsoft Access的信息通过本课程更好地了解这些例子。
示例4:搜索表中的记录
Sub SearchRecords()Dim RST1作为记录集DIM DBS1作为数据库DIM StringTOSearch1作为String Set DBS1 = CurrentDB StringTOSearch1 =“Dyna”设置RST1 = DBS1.OpenRecordset(“选择客户”。“来自客户”)SET RST1 = DBS1.OpenRecordset(“选择<表名>。*来自