Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Refresh eines anderen Formulares über Variable möglich?

Begonnen von datekk, November 16, 2015, 09:27:30

⏪ vorheriges - nächstes ⏩

datekk

Hallo mal wieder... Ich nutze für verschiedene Kontaktarten unterschiedliche Formulare. Alle Formulare beinhalten ein UFO in dem ein HistorienBERICHT angezeigt wird. Mit klick auf eine Schaltfläche im HaFo öffnet sich ein Fenster im Dialogmodus, mit dem ich einen Historieneintrag hinzufügen kann. Mit einer dortigen Schaltfläche "Speichern" wird das Fenster geschlossen. Nun soll das HaFo aktualisiert werden.

Das Historien-Eingabeformular öffne ich wie folgt:

DoCmd.OpenForm "frm_Historie", acNormal, , , acFormAdd, acDialog
DoCmd.RefreshRecord

Bei einer Neueingabe/Hinzufügen eines Historienvorfalls wird im Anschluss das HaFo aktualisiert und der neue Eintrag sichtbar... Alles gut soweit.

Nur bei Änderungen gelingt es mir nicht, das Formular wie oben zu aktualisieren. Änderungen werden so vorgenommen, dass ich direkt auf einen Vorfall im Bericht im UFO klicke. Darauf hin öffnet sich wieder das Historien-Eingabefenster im Dialogmodus mit dem entsprechenden Datensatz. Klicke ich nach Änderungen auf Speichern wird das Eingabefenster geschlossen, aber das HaFo nicht aktualisiert weil ich nicht weis, wie ich dies anstellen soll. Bisher konnte ich dies bewerkstelligen indem ich beim klicken auf Speichern den Befehl Forms!Formularname.Refresh angewendet habe.

Nach einer Umstellung meiner Datenbank werden nun aber diese Historienvorfälle in verschiedenen Formularen eingebunden. Das heißt dass der Pfad zum HaFo ja jedes mal anders ist weil die Formulare unterschiedliche Namen haben.

Gibt es eine Möglichkeit beim Klick in den Bericht den Namen des Parent Formulars in einer Variable zu speichern und dann den Refresh Befehl damit auszulösen? Also beispielsweise Forms!v_Formularname.Refresh?

Freue mich auf Hilfe.
LG
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MaggieMay

Hi,

du kannst den Formularnamen beim Öffnen des Dialogformulars als OpenArgs-Parameter übergeben.

Der Refresh- (oder Requery-?!) Befehl sähe dann so aus
Forms(Me.OpenArgs).Refresh
Freundliche Grüße
MaggieMay

DF6GL

Hallo,

warum?

schreib doch gleich im Berichts-Klick-Ereignis:
.
DoCmd.OpenForm "frm_Historie", acNormal, , , , acDialog
Me.Parent.Refresh
.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

datekk

@MaggiMay: wie übergebe ich das in die OpenArgs? Wie gesagt befindet sich im HaFo ein UFO. In diesem wird ein Bericht angezeigt. Klickt man auf eine Datenzeile im Bericht, so öffnet sich das Fenster wo ich die Änderungen vornehmen kann. Mit Klick auf die Zeile im Bericht muss irgendwie der Name des HaFo übergeben werden.. aber wie?

@DF6GL: Dies brachte keine Änderung. Auch me.requery führte zu null Ergebnis.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,

ok, dann wirkt sich refresh vermutlich nicht auf das UFO/UBR aus..

Versuch:

Me.Parent!NamedesUFoSteuerelementes.Refresh

könnte sein, dass das aber nicht auf einen Bericht anwendbar ist...

Es muss dann das HFO mit Requery neu eingelesen  und auf den vorherigen (aktuellen) positioniert werden (oder  gleich auf den Bericht angewendet werden)
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

datekk

Was mich wundert ist, dass die Aktualisierung des Berichts im UFO hervorragend klappt wenn ein neuer Datensatz eingegeben worden ist..

Wenn ich aber einen bestehenden ändere, wird der Bericht nicht aktualisiert... Könnte es daran liegen, dass ich bei Klick auf die Schaltfläche im Änderungsformular einfach nur docmd.close ausführe? Ich habe davor noch docmd.save gesetzt, aber auch hier keine Änderung.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,
nein, daran liegt es nicht....


Beim Schließen eines Forms wird der aktuelle DS im Änderungsfall gespeichert.
Docmd.Save allerdings hat keine DS-Speicherung zur Folge, sondern speichert nur vorgenommene Änderungen am Formular selber.

Besser ist:

Me.Dirty=False
oder
Runcommand acCmdSaverecord

Hast Du den letzten Vorschlag mal probiert?
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

datekk

Ja habe ich. Ich erhalte die Fehlermeldung dass das Objekt die Eigenschaft nicht unterstützt.

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,

ja, hatte ich schon vermutet.

Kannst Du mal eine Beispiel-DB hier hochladen?

PS: Warum benutzt Du einen Bericht als UFO/UBR?
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaggieMay

#9
Hi,
Zitatwie übergebe ich das in die OpenArgs?
schau dir die Syntax des OpenForm-Befehls in der Access-Hilfe an.

Das Aktualisieren könntest du noch hiermit versuchen:
Me.Requery
und zwar direkt im Anschluss an das Öffnen des Dialogformulars aus dem Unterformular heraus.

Und was das betrifft:
Me.Parent!NamedesUFoSteuerelementes.[color=red]Refresh[/color]
so ist die Refresh-Methode nicht auf Steuerelemente sondern nur auf Formulare anwendbar.
Freundliche Grüße
MaggieMay

datekk

@ MaggieMay: Mit ist schon klar wie die OpenArgs geschichten laufen.. aber wie gebe ich den Formularnamen weiter? Wie lese ich den aus? Es muss ja der Name des HaFo vom UFO/UBR ausgelesen werden. Ich weiß nicht wie das geht.

me.requery hab ich auch schon probiert.. geht nicht..

Warum aktualisiert der Bericht bei neuen Datensätzen aber nicht bei Änderungen bestehender?
Grrrrr......

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MaggieMay

Mit "Me.Parent.Name" kommst du an den Namen des Hauptformulars.

Aber ich denke auch es wäre das beste, wenn du mal eine Demo-DB (nur mit den notwendigen Objekten und ein paar Testdaten!) hochladen könntest, damit man sich das mal mit eigenen Augen anschauen kann.

Zitatgeht nicht..
...heißt was genau?
Hat das HF eine Datenquelle und ist es mit dem UF verknüpft?
Worauf bezieht sich die Änderung, sind Verknüpfungsfelder davon betroffen?
Freundliche Grüße
MaggieMay

datekk

Nein... das wars.. Danke MaggieMay... Das hat geholfen. Ich habe Deine erste Idee weiterverfolgt und gegoogelt und soeben selbst auf me.parent.name gekommen. Damit funzt es :)

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,


hatte ich ja angemerkt...


und eine Requery-Lösung:
Me.Parent!NamedesUFoSteuerelementes.Requery

Die meisten Methoden eines Forms/Berichtes werden auch dem UFO-Steuerelement "vererbt".
Insofern funktioniert
Me.Parent!NamedesUFoSteuerelementes.Requery
genauso wie
Me.Parent!NamedesUFoSteuerelementes.Report.Requery
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

datekk

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps