使用vba多次运行基于表单的代码

时间:2013-08-06 16:20:56

标签: vba ms-access ms-access-2007

目前有一个包含设备位置的数据库,以及一个用于更新设备位置并保存其先前位置副本的表单。理想情况下,希望能够输入“BoxNo”值列表(ID字段)并多次运行表单,并在每条记录上使用相同的更新。这可能与VBA / SQL一起使用吗?非常低水平的编程知识,非常感谢任何帮助。

编辑:根据Gord Thompson的要求,澄清表格程序。 在表单上有一个boxnumber文本框,只有使用页面底部的搜索栏,即导航窗格部分,而不是表单本身,以及一些文本和组合框,它们对应于与盒子号码。用户更改相关字段,然后单击运行以下代码的“更新”按钮(与问题相关的部分位于else语句之后)。

Private Sub Update_Click()

'checks whether date updated
If DateUpdated = False Then
    MsgBox "Please enter a date", vbOKOnly, "Enter Date"


    'saves copy to "changes" table
Else
    DoCmd.SetWarnings False
        DoCmd.RunSQL "INSERT INTO Change_In_Location_tbl (Sm_ID,Given_To,On_Date, Comments)           VALUES ( " & Sm_ID.OldValue & ",'" & Currently_Held_by.OldValue & "','" &       Date_Given.OldValue & "','" & Comments.OldValue & "');"
    DoCmd.SetWarnings True
    MsgBox "Update Complete", vbOKOnly

结束如果

End Sub

1 个答案:

答案 0 :(得分:0)

听起来你想要使用Do While循环。假设您有一个表中的值列表,请打开记录集并循环遍历每个值。

Dim db as Database
Dim rec as Recordset

set db = CurrentDB
set rec = db.OpenRecordSet ("Select * from MyTableWithBoxNoValues")

Do while rec.EOF = False

  ... process the BoxNo and save it
     (i.e., whatever your form is currently doing...)

  rec.MoveNext
Loop