Neuigkeiten:

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

Mobiles Hauptmenü

Hilfe bei VBA

Begonnen von Brusellise, Januar 17, 2017, 08:39:28

⏪ vorheriges - nächstes ⏩

Brusellise

Hallo,

da ich keine Ahnung von VBA habe brauche ich mal Hilfe.
Anbei mein Datenbankbeispiel.

"_frmnavstart" ist mein Hauptformular. Hier wird die Datenbank geöffnet.
Mit dem Reiter "Warenausgang" wird mein Problem-Formular geöffnet.

Auf der linken Seite des Formulars ist eine Vorgangsübersicht.
Ich möchte nun, dass per Doppelklick auf dem Feld "ID" auf der rechten Seite der jeweilige Datensatz geöffnet wird.
Dies funktioniert aktuell auch, jedoch öffnet sich oben ein neuer Reiter und dies befindet sich nicht mehr in Hauptformular.

Folgenden Code habe ich für die Funktion benutzt, welcher im Unterformular "frmHal_Vorgangerfassung_1" ausgeführt wird:

Private Sub ID_Click()
' damit öffnest du das entsprechende Formular
     DoCmd.OpenForm "frmHal_Vorgangerfassung"
     ' und hiermit stellst du das Formular auf deinen kunden ein ->
     Forms!frmHal_Vorgangerfassung.Form.RecordSource = "SELECT * FROM tblVorgänge " & _
                                             "WHERE ID =" & Me!ID
     '(in dem Datensatz des kunden ist bestimmt die kundenid hinterlegt
End Sub



Ich habe nun alles mögliche probiert den Link zu ermitteln, damit sich das Formular ohne Reiter öffnet.
Kann mich jemand bei dem VBA Code unterstützen?

Vielen Dank für eure Hilfe!

MzKlMu

Hallo,
warum so aufwendig, so reicht es:
Private Sub ID_Click()
     DoCmd.OpenForm "frmHal_Vorgangerfassung", , , "ID =" & Me!ID
End Sub

Was Du jetzt allerdings mit dem Reiter meinst, habe ich nicht verstanden.
Da ich nur Access2003 habe, kann ich mir die DB nicht ansehen.
Gruß Klaus

Brusellise

Erst mal danke für deine Hilfe.

Stimmt, das geht auch, aber leider löst dies nicht mein Problem.

Der Reiter öffnet sich immer noch.
Wie kommen wir jetzt weiter?


Lachtaube

Ich kann mir nur das Backend mit Access 2007 ansehen. Am besten erstellst Du eine 2003er-Datenbank und lädst diese dann hoch oder Du beschreibst das Szenario verständlich.
Grüße von der (⌒▽⌒)

DF6GL

Hallo,

der "neue" Reiter ist die Darstellung der Fenster mit Access-Option "Dokumente im Registerkartenformat".. Entweder wird dies auf "Überlappende Fenster" umgestellt oder das Form wird modal geöffnet:

DoCmd.OpenForm "frmHal_Vorgangerfassung", , , , , acDialog

Alternativ dazu führt auch die Einstellung der Form-Eigenschaft "Popup" auf Ja zum Ziel.
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

Joss

Hier die Datenbank als A2000-mdb (ungetestet)

Gruß
Josef

Lachtaube

Ich kann die Formulare leider nicht öffnen - wüßte auch nicht, welches Formular zur Debatte steht.
Grüße von der (⌒▽⌒)

DF6GL

Hallo,

die Formulare.accdb benutzt ein Navigationsformular mit zwei Navigationcontrols, was aber hier für das Problem keine Rolle spielt. Wenn in einem Navi-Ufo ein Feld (ID) angeklickt wird, wird ein weiteres Form direkt im Access-Fenster geöffnet (siehe u. st. Code) . Die Access -Optionen der akt. DB sind so eingestellt, dass Objekte im Access-Fenster in Registerkartenformat (Tabs) dargestellt werden, ergo öffnet sich das besagte Form als Vollbild mit einem "neuen Reiter" (Tab), was unerwünscht ist.

Ich kann jetzt nicht sagen, ob sich die Formulare (das Naviform) nach A2007 konvertieren lassen.






Die Access-Optionen
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

Hi,

wenn ich aber das Formular "frmHal_Vorgangerfassung" öffne ohne dass ich das Navigatonsformular nutze, erkennt Access dass das Formular bereits geöffnet wurde und öffnet keine weitere Registerkarte. Der Datensatz ist auch der richtige.

Deshalb meine Frage, ob ich direkt irgendwie beim Öffnen den direkten Link öffnen kann (so ungefähr..  =_frmnavstart!frmHal_Vorgangerfassung!frmHal_Vorgangerfassung1) ?? Vielleicht erkennt Access dies dann auch.

Ein POPUp Fenster finde ich keine gute Lösung. Auch die Registerlösung ist nicht schön. Ich würde gerne in meinem Formular bleiben und dort den Datensatz auswählen können.

Hat jemand eine Idee?

Danke


Ich hoffe ihr wisst was ich meine.

Gruß

DF6GL

#9
Hallo,

unklar (jetzt), was Du meinst und überhaupt erreichen willst...


Und WO willst Du das neu geladene Form anzeigen?  Soll das dann im Navigationsform angezeigt werden, wenn Du kein Popup willst?.  Was hat das dann mit den (Access-)Reitern (Tabs)zu tun?
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

Hi,

erstmal wieder Danke.

ich möchte nur erreichen, dass wenn ich im linken Feld auf "ID" klicke, auf der rechten Seite der Datensatz, welche ich ausgewählt habe angezeigt wird.

Deshalb diese Lösung. Wenn du aber eine andere Idee hast, dann nehme ich auch gerne diese, Hauptsache ich kann den Datensatz irgendwie auswählen.

Lachtaube

Datensätze kann man im Recordset des Formulars suchen. Wenn also beispielsweise in einem ungebundenen Kombi- oder Listenfeld IDs der Datensätze der Datenherkunft des Formulars aufgeführt werden, kann man im Nach Aktualisierung Ereignis des Steuerelements die ID im Recordset des Formulars suchen (und in diesem Fall auch sicher finden).Private Sub ListenfeldGebundenAnID_AfterUpdate()
   Me.Recordset.FindFirst BuildCriteria("ID", dbLong, Me.ListenfeldGebundenAnID)
End Sub
Grüße von der (⌒▽⌒)

DF6GL

Hallo,





warum sagst Du das denn nicht gleich?


Ändere die vorher gezeigte Prozedur so ab:

Private Sub ID_Click()
     Me.Parent.Form.RecordSource = "SELECT * FROM tblVorgänge WHERE ID =" & Me!ID
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

Brusellise

Hi,

du bist mein "Held des Tages".

Vielen Dank.

Brusellise

Hi,

kannst du mir bei noch einem Problem helfen? Im Anhang findet du das Beispiel.

Auch hier ist der Link:

_frmnavstart starten. Dann Warenausgang, und dort dann links unten auf die Such-Lupe linken.

In der folgenden Maske möchte ich, dass wenn ich auf eine ID Nummer klicken, dass Suchfenster geschlossen wird und dann der ausgewählte Vorgang in der Hauptmaske angezeigt wird.

Kannst du mir hier beim VBA helfen? Tausend Dank.