Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: joepaul am Februar 23, 2011, 23:51:53

Titel: Parallel-Formular aktualisieren
Beitrag von: joepaul am Februar 23, 2011, 23:51:53
Hallo,

ich habe (Access 97) zwei Formulare mit identischen Feldern und auf derselben Abfrage basierend. Formular A dient nur zur Ansicht der Datensätze; in Formular B können Daten eingegeben werden. Beide Formulare sind geöffnet. Ich möchte nun gerne erreichen, dass, wenn ich in Formular B einen neuen Datensatz anlege und dann das Formular schließe, dieser neue Datensatz auch von Formular A angezeigt wird. Dies wird er aber derzeit nur, wenn ich A schließe und neu öffne. Gibt es eine Methode, ohne A schließen zu müssen? ,,Anzeige aktualisieren" bzw. ,,Refresh" bringen nichts.

Danke für einen Tipp!
Titel: Re: Parallel-Formular aktualisieren
Beitrag von: bahasu am Februar 24, 2011, 05:32:20
Moin,

anbei ein Beispiel.

"Formular1" zeigt die Daten als Tabelle an.
"Formular2" dient zur Dateneingabe in der Formularansicht.
Dort ist beim Ereignis "Nach Aktualisierung" die folgende Zeile eingebaut:
Forms!Formular1.Requery

Vielleicht hilft das

Harald

PS
Kann sein, dass Du in der angehängten 97-Version einen Verweis neu setzen mußt

[Anhang gelöscht durch Administrator]
Titel: Re: Parallel-Formular aktualisieren
Beitrag von: joepaul am Februar 24, 2011, 10:31:21
Super, funktioniert! Vielen Dank
Joachim
Titel: Re: Parallel-Formular aktualisieren
Beitrag von: bahasu am Februar 24, 2011, 10:42:54
Hi Joachim,

freut mich.
Setz bitte in Deinem ersten Beitrag den Haken auf "erledigt".

Harald
Titel: Re: Parallel-Formular aktualisieren
Beitrag von: joepaul am Februar 26, 2011, 00:39:58
P.S.: habe noch eine Zusatzfrage: kann man in der Prozedur noch die Bedingung setzen, dass sie nur dann ausgeführt wird, wenn Formular1 geöffnet ist, und wie müsste sie lauten? Problem ist, dass die Prozedur eine Fehlermeldung verursacht, wenn das Formular, auf das sie verweist, geschlossen ist.

grüsse Joachim
Titel: Re: Parallel-Formular aktualisieren
Beitrag von: bahasu am Februar 26, 2011, 07:50:58
Moin

auf die Schnelle zum Vermeiden des Fehlers:

Variante 1: siehe mein Beispiel, bei dem im Makro Autoexec beide Formulare geöffnet werden.

Variante 2: Mach ein neues Formular, in dem beide Formulare (tabellarische Anzeige + Eingabe) als Unterformulare aufgeführt sind.

Variante 3: Füge im 2.ten Formular (das für die Dateneingabe) beim Ereignis "Beim Öffnen" die folgende Procedure hinzu:

Private Sub Form_Open(Cancel As Integer)
   DoCmd.OpenForm "Formular1", acFormDS
End Sub


Statt "Formular1" bitte den Namen von Deinem Formular mit der tabellarischen Anzeige (d.h. das ohne die Bearbeitungsmöglichkeit) eintragen.

Variante 4: (Quick and dirty)
Private Sub Form_AfterUpdate()
    On Error Resume Next
    Forms!Formular1.Requery
End Sub


Das steht im 2. Formular beim Ereignis "nach Aktualisierung"

Harald
Titel: Re: Parallel-Formular aktualisieren
Beitrag von: database am Februar 26, 2011, 08:54:54
Hallo,

du kannst den Status eines Formulars auch mit VBA erfragen und entsprechend reagieren.

Zur Antwort #1 wäre dein Code folgend zu ändern:



If SysCmd(acSysCmdGetObjectState, acForm, "Formular1") > 0 Then
     Forms!Formular1.Requery
Else
    'mach was anderes
End If


Statt 'mach was anderes' steht dann halt die Aktion, die auszuführen ist wenn Formular1 nicht geöffnet ist.

Ist keine Aktion gewünscht wenn das Formular 1 NICHT geöffnet ist dann:


If SysCmd(acSysCmdGetObjectState, acForm, "Formular1") = 1 Then
     Forms!Formular1.Requery
End If


HTH
Titel: Re: Parallel-Formular aktualisieren
Beitrag von: joepaul am Februar 27, 2011, 20:10:22
Vielen Dank, Peter, das funktioniert!!

Danke auch an Harald für die Antwort. Habe deine Varianten aber nicht ausprobiert, da a) die beiden Formulare sich nur in der Eingabemöglichkeit unterscheiden und ansonsten in Layout und Inhalt identisch sind (sein müssen) und b) es aus verschiedenen Gründen auch vorkommen darf bzw. muss, dass Formular 1 geschlossen ist, wenn 2 aktualisiert wird. Die Möglichkeit "tabellarische Anzeige" bzw. Unterformulare wären also für meinen Zweck nicht relevant.

Grüsse Joachim
Titel: Re: Parallel-Formular aktualisieren
Beitrag von: database am Februar 27, 2011, 20:21:18
Hallo,

:D :D ;D

ich heiße nicht HTH - das ist ein Akronym für 'Hope That Helps'  ;)

Freut mich aber dennoch, dass ich dir helfen konnte!