Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Geöffnetes Formular aktualisieren

2,155 views
Skip to first unread message

Michael Alexander

unread,
May 11, 2012, 2:56:12 AM5/11/12
to
Hallo!

Wie kann man die Datenherkunft eines bereits geöffnetes frm aktualisieren,
wenn man durch einen Klick in einem anderen frm auf das geöffnete frm
springt?

Private Sub Form_GotFocus()
Me.Requery
End Sub

...scheint nicht zu funktionieren.

Danke
Michael

A2010, SP1

Peter Doering

unread,
May 11, 2012, 5:23:24 AM5/11/12
to
Hallo,

Michael Alexander wrote:

> Wie kann man die Datenherkunft eines bereits geöffnetes frm aktualisieren,
> wenn man durch einen Klick in einem anderen frm auf das geöffnete frm
> springt?
>
> Private Sub Form_GotFocus()
> Me.Requery
> End Sub
>
> ...scheint nicht zu funktionieren.

Doch, eigentlich schon. Was haerteres als Requery gibt es eigentlich nicht,
abgesehen davon, die RecordSource nochmal zu setzen. Woran erkennst du
denn, dass die Aktualisierung nicht stattfindet? Wurde die potentielle
Aenderung schon geschrieben?

Gruss - Peter

--
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Jörg Ackermann

unread,
May 11, 2012, 6:49:56 AM5/11/12
to
Hallo,

Peter Doering schrieb am 11.05.2012 11:23:

> Doch, eigentlich schon. Was haerteres als Requery gibt es eigentlich nicht,
> abgesehen davon, die RecordSource nochmal zu setzen. Woran erkennst du
> denn, dass die Aktualisierung nicht stattfindet? Wurde die potentielle
> Aenderung schon geschrieben?

Genau.

Die Aktualisierung kann im Netz schon mal ein
paar Sekunden dauern.
(bis zu 8 Sek. schon erlebt)

Gruß

Michael Alexander

unread,
May 11, 2012, 7:30:46 AM5/11/12
to
Hallo!

Eigentlich bezieht sich mein Thread auf meinen vom 7.5. "Formular
aktualisiert sich nicht", wo ich eben versuche,
beim Klicken auf einen Wert in einem Ufo (den Wert habe ich eben erst
eingegeben), nach Ausertung des Wertes, ein bestimmtes frm zu öffnen und auf
den entsprechenden DS zu springen.

Zwischenzeitlich habe ich es auch geschafft, wenn ich in dem bereits
geöffneten frm ein
Private Sub Form_Activate()
Me.Requery
End Sub

dazugeben, dann funktiniert es wie ich will.

Hat aber wieder den unschönen Nebeneffekt, dass ich bei einem Wechsel zu
einem anderen frm, beim RÜCKWECHSELN wieder beim 1. DS bin.

Konkret:
Ich befinde mich auf dem "frmAllePax". Dieses hat ein Ufo mit "Funktionen".
Ich gebe eine neue Funktion der Person ein, z.B. "Kunde" und klicke nach
Update des UFO auf den Wert "Kunde".
Dann springt der Focus zu "frmKunde" und zur entsprechenden Person, die
durch die Eingabe der Funktion ""Kunde" nunmehr im "frmKunde" zu finden ist.

Sofern das "frmKunde" noch geschlossen war, ist es ja kein Problem, weil
beim Öffnen die Recordsource erst erstellt wird. Sobald das frm aber bereits
offen war mußte ich mit dem o.a. Form_Activate das ganze frm
aktualisieren um den neuen Kunden darin zu finden. Wechsle ich aber nunmehr
von der Bestellung des entsprechenden Kunden in das "frmBestellung" um seine
Bestellung zu sehen und wechsle ich wieder zurück zu "frmKunde" dann stehe
ich nicht bei meinem Kunden sondern beim 1. DS des "frmKunde".

You see the problem?
Daher ist Form_Activate gut, aber nicht die perfekte Lösung.

Danke
Michael




"Michael Alexander" <MirKe...@DontSpamMe.invalid> schrieb im Newsbeitrag
news:joid6d$fp6$1...@news.albasani.net...

Peter Doering

unread,
May 11, 2012, 1:02:14 PM5/11/12
to
Hallo,

Michael Alexander wrote:

> [...]
> Hat aber wieder den unschönen Nebeneffekt, dass ich bei einem Wechsel zu
> einem anderen frm, beim RÜCKWECHSELN wieder beim 1. DS bin.

Dann ist http://www.donkarl.com?FAQ4.5 dein Freund.

Karl Donaubauer

unread,
May 11, 2012, 3:53:40 PM5/11/12
to
Michael Alexander wrote:
> Eigentlich bezieht sich mein Thread auf meinen vom 7.5. "Formular
> aktualisiert sich nicht", wo ich eben versuche,
> beim Klicken auf einen Wert in einem Ufo (den Wert habe ich eben erst
> eingegeben), nach Ausertung des Wertes, ein bestimmtes frm zu öffnen
> und auf den entsprechenden DS zu springen.
>
> Zwischenzeitlich habe ich es auch geschafft, wenn ich in dem bereits
> geöffneten frm ein
> Private Sub Form_Activate()
> Me.Requery
> End Sub
>
> dazugeben, dann funktiniert es wie ich will.
>
> Hat aber wieder den unschönen Nebeneffekt, dass ich bei einem Wechsel
> zu einem anderen frm, beim RÜCKWECHSELN wieder beim 1. DS bin.
> ...

Du solltest das Requery von dort aus veranstalten, wo du den neuen
Datensatz hinzufügst, also anscheinend in dem UFo.
Wenn das nicht funktioniert, dann erläutere genauer, mit welcher
Methode, in welchem Ereignis etc. du den DS hinzufügst und
poste den relevanten Code.

--
Servus
Karl
*********
Access-FAQ: http://www.donkarl.com


Michael Alexander

unread,
May 13, 2012, 5:30:57 AM5/13/12
to
Hallo Karl!

"Karl Donaubauer" <NoS...@donkarl.com> schrieb im Newsbeitrag
news:a1592j...@mid.individual.net...
Im meinem Thread vom 18.4. ""Kombifeld löst Ereignis nicht aus" mußte ich
letztendlich bei einem MouseDown bleiben, um dasgewünschte Ereignis
durchführen zu kommen. Warum konnte bis jetzt nicht geklärt werden.
*******************
Private Sub Funktionsfeld_MouseDown(Button As Integer, Shift As Integer, X
As Single, Y As Single)
Dim strfrm As String
Dim frm As Form
On Error Resume Next
strfrm = DLookup("frmFormular", "Funktion", "[FuID]= " & Me.Funktionsfeld)
'hier suche ich den entsprechenden frm-Namen, abhängig vom Inhalt des Kombis

Set frm = Screen.ActiveForm

If frm.Name = strfrm Then
Exit Sub
ElseIf intBerechtigung > 1 And strfrm = "frmKunden" Then
MsgBox "Sorry, Sie sind nicht berechtigt, diese Daten anzusehen!", vbOKOnly
+ vbInformation, "Kein Zugriff"
Exit Sub
End If

'DoCmd.RepaintObject acForm, strfrm 'bringt nicht das gewünschte Ergebnis
DoCmd.OpenForm strfrm, acNormal, , , , , "[MiID]= " & Me.MiID

If strfrm = "frmEltern" Then
Form!frmEltern.SetFocus
Form!frmEltern.Requery 'bringt auch nicht das gewünschte Ergebnis
DoCmd.GoToControl "ParID"
Else
DoCmd.GoToControl "MiID"
End If
DoCmd.FindRecord Me.MiID, acEntire, False, , False, acCurrent, True

End Sub
*******************

Daher kam ich auf
Private Sub Form_Activate()
Me.Requery
End Sub

im geöffneten frm, mit den beschriebenen Schönheitsfehlern.
Aber Peter's Tip mit FAQ 4.5 (habs noch nicht probiert) scheint eine Lösung
zu sein.

Warum man aber wie du vorschlägst, ein frm, welches geöffnet ist, aber NICHT
den Focus hat, nicht mit Requery aktualisieren kann, ist mir nicht klar.

Danke
Michael

Michael Alexander

unread,
May 13, 2012, 12:24:55 PM5/13/12
to
Danke, hat perfekt funktioniert!

Gruß
Michael

"Peter Doering" <nos...@doering.org> schrieb im Newsbeitrag
news:a14v25...@mid.individual.net...

Wolfgang Badura

unread,
May 13, 2012, 2:10:37 PM5/13/12
to
Hallo Michael!
>
> Warum man aber wie du vorschlägst, ein frm, welches geöffnet ist, aber
> NICHT den Focus hat, nicht mit Requery aktualisieren kann, ist mir nicht
> klar.
>
Ich verwende zB.
Forms!SD!lstRef.Requery
wenn in einem Unterformular eines Forms namens BVH ein Datensatz neu
angelegt wird,
um im Form SD (soferne geöffnet), die angezeigten Zeilen um den eben
gespeicherte zu ergänzen.
Die zuletzt angewählte Zeile geht zwar verloren, aber dafür ist die Anzeige
komplett.
Das funktioniert wie es soll.

Aber es muß einen Grund geben, daß Karl diesen Einwand formulierte.

Wolfgang


0 new messages