Je rencontre des problèmes pour faire ajuster ce bit de code pour faire défiler les enregistrements de mon sous-formulaire. lorsque le sous-formulaire est chargé, il parcourt les enregistrements actuellement filtrés, en ajustant le champ 6 en fonction de son statut respectif dans une autre table (tDPARSHEET). Cependant im incapable de le faire travailler quand je l'appelle de mon bouton d'actualisation sur le formulaire principalRecordsetclone Ne fonctionne pas sur le sous-formulaire
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
Je crois que cela fonctionne sur la charge en raison de la Me.Recordsetclone étant appelé les charges de sous-formulaires, si je voulais Appelez cela à partir de la mainform, spécifiquement à partir d'un bouton que j'utilise pour actualiser le formulaire principal, alors je devrais l'appeler directement
Forms! frmMain.frmsub.Form.recordsetclone est la syntaxe que j'ai vu. Avec toute autre syntaxe que j'ai vu sur le web [me.frmsub.form.recorsetclone // frmMain.subfrmctrlname.form.recordsetclone // me.frmMain.frmsub.forms.subfrmctrlname.recorsetclone] Certains d'entre eux semblaient faux, mais je les ai essayé tout de même. J'ai inclus quelques informations de formulaire ci-dessous pour une utilisation dans la syntaxe
Mainform: frmDPARTOP
SubForm Nom du formulaire: frmDPARPARTSSubform
SubForm Ctl Nom: subDPARTOP
Qu'est-ce que je fais mal qui ne me permettant d'obtenir ce jeu d'enregistrements à travailler, actuellement j'ai Me.subDPARTOP.Form.RecordsetClone dans, je ne reçois pas d'erreurs, il ne fonctionne tout simplement pas
Ci-dessous le code actuel je travaille avec après les instructions sur ici. Code actuel ne parvient pas Debug.Print à la ligne 5, pour autant que je peux dire, que rien n'est montré dans la fenêtre immédiate
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
Cela ne met à jour l'enregistrement sélectionné dans le sous-formulaire lors de l'exécution –
J'ai également remarqué qu'il n'atteint pas la section de débogage du code, car rien n'est imprimé dans la fenêtre immédiate –
S'il met à jour un enregistrement, une ligne de débogage sera imprimée. – Gustav