2015-11-03 67 views
0

我遇到了调整后的代码位循环遍历记录在我的子窗体中的问题。当子窗体加载时,它遍历当前过滤的记录,根据其状态在另一个表(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 

回答

0

显示它应该阅读:

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 
+0

这只会更新所选记录在运行子表单时 –

+0

我也注意到它没有到达代码的调试部分,因为没有任何内容被打印到即时窗口中 –

+0

如果它更新了一条记录,将会打印一条调试线。 – Gustav

相关问题