我一直有这个问题的问题,说没有reocrds,但我知道有,因为我正在看表。我想循环遍历一个表,根据点击按钮的几个参数找到某些列信息。
因此,当我点击我的按钮时,它将循环通过表一,根据ID找到我需要的字段,并用这些字段更新另一个表。
Private Sub GetResults_Click()
Dim strSQL As String
Dim SQL As String
Dim dba As Database
Dim tbl As Recordset
Dim rst1 As Recordset
Dim tstdt As Date
tstdt = Me.Date.Value
Set dba = CurrentDb
Set tbl = dba.OpenRecordset("tbl_Results", dbOpenDynaset, dbSeeChanges)
strSQL = "SELECT * FROM tbl_Results"
Set tbl = dba.OpenRecordset(strSQL, dbOpenDynaset, dbSeeChanges)
If Not tbl.EOF Then
With tbl
.MoveFirst
Do Until tbl.EOF
Call getDataRecords(tbl!SystemAssignedPersonID, tstdt)
.MoveNext
Loop
End With
End If
Set rst1 = Nothing
Set tbl = Nothing
Set dba = Nothing
End Sub
Function getDataRecords(PersonID As Variant, TestDate As Date)
Dim dba As Database
Dim rst As Recordset
Dim rst1 As Recordset
Dim SQL As String
Set dba = CurrentDb
Set rst = dba.OpenRecordset("tbl_Results", dbOpenDynaset, dbSeeChanges)
Set rst1 = dba.OpenRecordset("dbo_tbl_Random", dbOpenDynaset, dbSeeChanges)
SQL = "SELECT * FROM dbo_tbl_Random WHERE SystemAssignedPersonID = " & PersonID & " AND Date = " & Date & " AND MenuUsed = 'RandomResult'"
Set rst1 = dba.OpenRecordset(SQL, dbOpenDynaset, dbSeeChanges)
rst.AddNew
rst.Fields("FileSent") = rst1!FileSent
rst.Fields("Result") = rst1!Result
rst.Update
End Function
在我疯了之前帮忙!谢谢!
答案 0 :(得分:0)
你这里的事情过于复杂。所有这些都可以在1个SQL语句中完成
Update tbl_Results as Res
Inner join dbo_tbl_Random as rand
on Res.PersonID = Rand.SystemAssignedPersonID and Res.[Date] = Rand.[Date]
set Res.FileSent = Rand.FileSent ,
Res.Result = Rand.Result
Where Rand.MenuUsed = 'RandomResult'
你可以像这样执行
dim sql as string
sql = "Update tbl_Results as Res " & _
"Inner join dbo_tbl_Random as rand " & _
" on Res.PersonID = Rand.SystemAssignedPersonID and Res.[Date] = Rand.[Date] " & _
"set Res.FileSent = Rand.FileSent , " & _
" Res.Result = Rand.Result " & _
" Where Rand.MenuUsed = 'RandomResult' "
CurrentDb.Execute(sql)
<强>更新强>
这就是我期待您的表格设置的方式
<强> tbl_results 强>
<强> dbo_tbl_Random 强>
我如何在设计器中设置查询以确认它正在运行