Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

VBA Navigationsformular

Begonnen von Brusellise, Februar 10, 2017, 14:48:04

⏪ vorheriges - nächstes ⏩

Brusellise

Hallo,

ich arbeiten in einen Navigationsformular (_frmnavstart).
Dort befinden sich in der Leiste oben der Link (Ladungsträger).
Nun öffnet sich das Formular Ladungsträger.

Hier werden Datensätze eingegeben und dann mit einem Button gespeichert.
Nun möchte ich das Formular nach eine Messagebox schließen und wieder neu öffnen.

Mein Code sieht so aus:MsgBox "Der Behälter wurde gebucht.", vbInformation + vbOKOnly, "Buchung abgeschlossen!"
DoCmd.Close
DoCmd.OpenForm "_frmNavstart"
With Forms![_frmNavstart]![frmHal_Ladungsträgerausgang].Form


Leider erhalte ich eine Fehlermeldung, dass das Formular frmHal_Ladungsträgerausgang nicht gefunden werden kann. Kann mir jemand helfen. Ich denke es hängt an dem Navigationsformular, da mitDoCmd.OpenForm "_frmNavstart" mein VBA Code funktioniert.

Danke für eure Hilfe

MzKlMu

Hallo,
was willst Du mit dem einsamen With erreichen ?
Und warum willst Du das Formular schließen und dann gleich wieder öffnen ?
Da kannst Du es doch gleich offen lassen.
Gruß Klaus

Beaker s.a.

Hallo,
Wenn
With Forms![_frmNavstart]![frmHal_Ladungsträgerausgang].Form
wirklich die letzte Zeile in der Prozedur ist, fragt sich, warum der Compiler
da nicht schon meckert; - "End With erwartet".
Ansonsten, wenn du das Naviform schliesst und wieder öffnest, musst du dem
Form zusätzl. noch sagen welches Form es anzeigen soll.
Schau dir dazu die .BrowseTo-Methode des Naviforms in der OH an.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Brusellise

Hi,
danke erst mal für eure Hilfe.

ich habe "end with" im VBA drin. Dies ist also nicht der Fehler.

Bei der Box geht es um einen Abbruch. Es taucht eine Messagebox auf und dann möchte ich, dass mit "ok" der obige Link geöffnet wird.

Wer kann mir helfen?

DF6GL

Hallo,

das Navigationsformular hat immer nur ein UFO_Steuerelement mit dem (Standard-)Namen "Navigationsunterformular".

In dieses UFO-St. El. kann jeweils ein (normales) Formular geladen (hier heißt das jedoch "navigieren") und angezeigt werden.

Insofern sollte die Referenz auf das UFo so lauten:

Forms![_frmNavstart]![Navigationsformular].Form


wobei mir unerklärlich ist, warum das Navi-Form ("_frmNavstart")  neu geladen werden soll, wenn in seinem Unterformular (worin das Form "Ladungsträger" angezeigt wird) irgendwelche Datenmanipulationen erfolgt sind.
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

Brusellise

Sorry, aber leider klappt es nicht.

Ich nutze, das ganze eigentlich nur, damit der Datensatz über einen Button nicht doppelt gespeichert wird. Hast du da eine Idee wie ich dies verhindern kann.


DF6GL

Hallo,

das ist keine Erklärung, warum das UFO neu angezeigt , bzw. das Naviform neu geladen werden sollte...


Versuch das mal so (wenn ich den ganzen Formularismus richtig interpretiere)

Im Form "frmHal_Ladungsträgerausgang"


Sub btnSpeichern_Click()
If Me.Dirty Then Me.Dirty =False
End Sub
.
.
Sub Form_AfterUpdate()
MsgBox "Der Behälter wurde gebucht.", vbInformation + vbOKOnly, "Buchung abgeschlossen!"
End Sub
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

Beaker s.a.

Hallo,
Zitatich habe "end with" im VBA drin. Dies ist also nicht der Fehler.
Dann fragt, was dazwischen an Code steht.
DoCmd.OpenForm "_frmNavstart"
With Forms![_frmNavstart]![frmHal_Ladungsträgerausgang].Form

An dieser Stelle kennt IMO das HFO (_frmNavstart) das Formular "frmHal_Ladungsträgerausgang"
noch gar nicht. Eigentlich müsste hier eine entsprechende Fehlermeldung kommen.
Mit

DoCmd.OpenForm "_frmNavstart"
DoCmd.BrowseTo _
        ObjectType:=acBrowseToForm, _
        ObjectName:="frmHal_Ladungsträgerausgang", _
        PathToSubformControl:="_frmNavstart.NameDesNaviUFoControls"
With Forms![_frmNavstart]![frmHal_Ladungsträgerausgang].Form

sollte es eigentlich funzen. Namen musst du evtl. anpassen.
Allerdings halte ich das Schliessen des (Navi-)hauptformulars auch für
überflüssig.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)