2015-11-03 68 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

相關問題