Recordsetclone不能在子窗体上工作
问题描述:
我遇到了调整后的代码位循环遍历记录在我的子窗体中的问题。当子窗体加载时,它遍历当前过滤的记录,根据其状态在另一个表(tDPARSHEET)中的状态调整字段6。然而IM无法得到它,当我把它的工作从我的刷新按钮在主窗体上Recordsetclone不能在子窗体上工作
With Me.RecordsetClone
If Not (.BOF And .EOF) Then
.MoveFirst
While Not .EOF
Debug.Print .Fields(6).Name, .Fields(6).Value
If .Fields(6).Value <> DLookup("OverallStatus", "tDPARSHEET", "[LocalPartNumber]='" & .Fields(3).Value & "' AND [LocalRevision]='" & .Fields(4).Value & "'") Then
'Debug.Print "No Match"
.Edit
.Fields(6).Value = DLookup("OverallStatus", "tDPARSHEET", "[LocalPartNumber]='" & .Fields(3).Value & "' AND [LocalRevision]='" & .Fields(4).Value & "'")
.Update
Else
'Debug.Print "!!Match Found!!"
End If
.MoveNext
Wend
.Requery
End If
End With
我相信这个工作负载由于Me.Recordsetclone被称为子窗体的负载,如果我想从mainform中调用它,特别是从我用来刷新主窗体的按钮,然后我需要直接调用它。
Forms!frmMain.frmsub.Form.recordsetclone是我所看到的语法。除了我在网络上看到的任何其他语法[me.frmsub.form.recorsetclone // frmMain.subfrmctrlname.form.recordsetclone // me.frmMain.frmsub.forms.subfrmctrlname.recorsetclone]其中一些似乎是错误的,但我试过他们。我已经包含某种形式的信息,向下跌破用在语法
的MainForm:frmDPARTOP
子窗体窗体名称:frmDPARPARTSSubform
子窗体CTL名称:subDPARTOP
我在做什么错是不是让我得到此记录集工作,目前我有Me.subDPARTOP.Form.RecordsetClone中,我没有收到错误,它只是不起作用
下面是当前的代码后按照这里的说明。目前代码不5号线到达Debug.Print,据我所知,如无在即时窗口
Private Sub Command31_Click()
'Loops through Subform and updates DPAR Status from tDPARSHEET
'Main Form Name is frmDPARTOP
'Sub Form Name is frmDPARPARTSSubform
'Sub Form Control is subDPARTOP
Dim Field6 As Variant
With Me!subDPARTOP.Form.RecordsetClone
While Not .EOF
Field6 = DLookup("OverallStatus", "tDPARSHEET", "[LocalCustomer]='" & .Fields(2).Value & "' AND [LocalPartNumber]='" & .Fields(3).Value & "' AND [LocalRevision]='" & .Fields(4).Value & "'")
Debug.Print .Fields(6).Name, .Fields(6).Value, Field6
If .Fields(6).Value <> Field6 Then
Debug.Print "No Match"
.Edit
.Fields(6).Value = Field6
.Update
Else
Debug.Print "!!Match Found!!"
End If
.MoveNext
Wend
.Requery
End With
'Refreshes DPAR Counter
Me.Customer.SetFocus
Me.Dirty = True
Me.Refresh
End Sub
答
显示它应该阅读:
Dim Field6 As Variant
With Me!SubformCONTROLName.Form.RecordsetClone
If .RecordCount > 0 Then
.MoveFirst
End If
While Not .EOF
Field6 = DLookup("OverallStatus", "tDPARSHEET", "[LocalPartNumber]='" & .Fields(3).Value & "' AND [LocalRevision]='" & .Fields(4).Value & "'") The
Debug.Print .Fields(6).Name, .Fields(6).Value, Field6
If .Fields(6).Value <> Field6 Then
Debug.Print "No Match"
.Edit
.Fields(6).Value = Field6
.Update
Else
Debug.Print "!!Match Found!!"
End If
.MoveNext
Wend
.Requery
End With
这只会更新所选记录在运行子表单时 –
我也注意到它没有到达代码的调试部分,因为没有任何内容被打印到即时窗口中 –
如果它更新了一条记录,将会打印一条调试线。 – Gustav