2017-01-03 2 views
0

Ich habe derzeit ein Formular mit zwei Unterformularen, In einem Unterformular namens Kundenadressen habe ich ein Textfeld, das den Primärschlüssel der Adressentabelle enthält. Ich setze Knöpfe auf dieses Formular, um zum nächsten oder vorherigen Datensatz zu wechseln, und wenn ich durch diese Datensätze blättern kann, sehe ich meine verschiedenen Adress-IDs, die in dem Textfeld zirkulieren.Änderung Ereignis in Zugriff funktioniert nicht beim Durchlaufen von Datensätzen

Jetzt, wenn meine addressIDs zyklisch sind, möchte ich, dass dieser Wert automatisch eine andere Textbox in einem anderen Unterformular namens CustomerContacts aktualisiert. Ich habe Code zu den Änderungen und den Update-Ereignissen hinzugefügt, hatte aber keinen Erfolg.

Private Sub Text0_Change() 
     Me.Parent!ContactInformation.Form!ContactInformation_Address.Value = Text0.Value 

End Sub 

Die Referenzen im obigen Code sind korrekt. Ich habe diesen Code mit einer Combobox getestet, in der ich tatsächlich auf den Dropdown-Pfeil geklickt habe und einen Wert ausgewählt habe, der das andere Textfeld des anderen Unterformulars erfolgreich aktualisiert hat.

So etwas fehlt mir hier, wenn ich durch die Datensätze fahre wird es nicht die Änderung oder die Update-Ereignisse auslösen, also frage ich mich, wie ich all das umgehen kann.

+0

ist der Code im Modul des Benutzerformulars? –

+0

Ja ist es, es ist in der Kundenadresse Formular, das ein Unterformular ist. Der obige Code funktioniert, wenn ich die Werte von Hand manuell ändere, aber nicht funktioniert, wenn ich nur durch die Datensätze fahre. – ZacAttack

+0

was genau meinst du mit "durchfahren"? Änderst du einen Wert programmatisch? Wenn dies der Fall ist, müssen wir den Code sehen, der die "Änderung" ausführt. –

Antwort

0

Konvertierte Forms Makros zu Visual Basic. Jetzt sind meine Befehlsschaltflächen, die den nächsten und vorherigen Datensatz auswählten, in VBA-Code. Weiter Nehmen Sie den Code für das Textfeld, das Sie aktualisieren möchten, und legen Sie es unter die Zeile, die die Datensätze auswählt.

'------------------------------------------------------------ 
' Command24_Click 
' 
'------------------------------------------------------------ 
Private Sub Command24_Click() 
On Error GoTo Command24_Click_Err 

    On Error Resume Next 
    DoCmd.GoToRecord , "", acPrevious 
    Me.Parent!ContactInformation.Form!ContactInformation_Address.Value = Text0.Value 
    If (MacroError <> 0) Then 
     Beep 
     MsgBox MacroError.Description, vbOKOnly, "" 
    End If 


Command24_Click_Exit: 
    Exit Sub 

Command24_Click_Err: 
    MsgBox Error$ 
    Resume Command24_Click_Exit 

End Sub 


'------------------------------------------------------------ 
' Command25_Click 
' 
'------------------------------------------------------------ 
Private Sub Command25_Click() 
On Error GoTo Command25_Click_Err 

    ' _AXL:<?xml version="1.0" encoding="UTF-16" standalone="no"?> 
    ' <UserInterfaceMacro For="Command24" xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><Statements><Action Name="OnError"/><Action Name="GoToRecord"><Argument Name 
    ' _AXL:="Record">Previous</Argument></Action><ConditionalBlock><If><Condition>[MacroError]&lt;&gt;0</Condition><Statements><Action Name="MessageBox"><Argument Name="Message">=[MacroError].[Description]</Argument></Action></Statements></If></ConditionalBlo 
    ' _AXL:ck></Statements></UserInterfaceMacro> 
    On Error Resume Next 
    DoCmd.GoToRecord , "", acNext 
    Me.Parent!ContactInformation.Form!ContactInformation_Address.Value = Text0.Value 
    If (MacroError <> 0) Then 
     Beep 
     MsgBox MacroError.Description, vbOKOnly, "" 
    End If 


Command25_Click_Exit: 
    Exit Sub 

Command25_Click_Err: 
    MsgBox Error$ 
    Resume Command25_Click_Exit 

End Sub 
Verwandte Themen