Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Brusellise am Januar 17, 2017, 08:39:28

Titel: Hilfe bei VBA
Beitrag von: Brusellise am Januar 17, 2017, 08:39:28
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!
Titel: Re: Hilfe bei VBA
Beitrag von: MzKlMu am Januar 17, 2017, 09:06:50
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.
Titel: Re: Hilfe bei VBA
Beitrag von: Brusellise am Januar 17, 2017, 10:21:08
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?

Titel: Re: Hilfe bei VBA
Beitrag von: Lachtaube am Januar 17, 2017, 10:37:30
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.
Titel: Re: Hilfe bei VBA
Beitrag von: DF6GL am Januar 17, 2017, 10:53:22
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.
Titel: Re: Hilfe bei VBA
Beitrag von: Joss am Januar 17, 2017, 11:28:11
Hier die Datenbank als A2000-mdb (ungetestet)

Gruß
Josef
Titel: Re: Hilfe bei VBA
Beitrag von: Lachtaube am Januar 17, 2017, 11:38:34
Ich kann die Formulare leider nicht öffnen - wüßte auch nicht, welches Formular zur Debatte steht.
Titel: Re: Hilfe bei VBA
Beitrag von: DF6GL am Januar 17, 2017, 13:30:09
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
Titel: Re: Hilfe bei VBA
Beitrag von: Brusellise am Januar 17, 2017, 15:33:46
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ß
Titel: Re: Hilfe bei VBA
Beitrag von: DF6GL am Januar 17, 2017, 16:34:31
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?
Titel: Re: Hilfe bei VBA
Beitrag von: Brusellise am Januar 17, 2017, 17:44:06
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.
Titel: Re: Hilfe bei VBA
Beitrag von: Lachtaube am Januar 17, 2017, 19:08:52
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
Titel: Re: Hilfe bei VBA
Beitrag von: DF6GL am Januar 17, 2017, 21:33:20
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

Titel: Re: Hilfe bei VBA
Beitrag von: Brusellise am Januar 19, 2017, 08:10:07
Hi,

du bist mein "Held des Tages".

Vielen Dank.
Titel: Re: Hilfe bei VBA
Beitrag von: Brusellise am Januar 19, 2017, 17:17:36
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.
Titel: Re: Hilfe bei VBA
Beitrag von: DF6GL am Januar 19, 2017, 19:51:07
Hallo,

anbei

Titel: Re: Hilfe bei VBA
Beitrag von: Brusellise am Januar 20, 2017, 07:56:10
Danke, Danke, Danke.

Einfach tauschend Dank.