Neuigkeiten:

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

Mobiles Hauptmenü

Ein Formular öffnen und Kombofeld auswählen

Begonnen von Micharius, Oktober 20, 2017, 08:41:25

⏪ vorheriges - nächstes ⏩

Micharius

Hallo zusammen

Aus einem Formular möchte ich per Button ein weiteres Formular frmParDos öffnen.

In erfolgt die Datenauswahl über das Kombofeld LstParDropdown , weshalb es schön wäre, wenn darin beim Öffnen des Formulars gleich der richtige Datensatz ausgewählt wurde.

Das Ausgangsformular benutzt als Referenz das Steuerelement KunParIDRef und sollte im neuen Formular auf ParID verweisen.

Den folgenden Code habe ich ausprobiert. Er öffnet zwar ohne Error das Formular frmParDos, wählt aber keinen Datensatz im Kombofeld LstParDropdown[/i aus.

DoCmd.OpenForm "frmParDos", , , "LstParDropdown =" & Me!KunParIDRef

Vielleicht kann mir jemand helfen, den Code zu verbessern, damit es funktioniert?

Beste Grüsse

Micharius

MzKlMu

Hallo,
genau habe ich die Zusammenhänge nicht verstanden.
Im Kriterium kann nur ein Tabellenfeld verwendet werden, das es in der Datenherkunft des zu öffnenden Formulars auch gibt. Versuche es daher mal so:
DoCmd.OpenForm "frmParDos", , , "ParID = " & Me.LstParDropdown
Gruß Klaus

Micharius

#2
Hallo Klaus & andere

Auszuschreiben ist es schwierig, ich versuche es mal inkl. Screenshots und habe diese angefügt. Beim ersten Post habe ich noch Kombinationfeld geschrieben, das war falsch - es handelt sich um ein Listenfeld.

In einem anderen Fall habe ich mit diesem Code erfolgt gehabt, aber da ging es eben nicht darum, einen Eintrag in einem Listenfeld auszuwählen:

DoCmd.OpenForm "frmParDos", , , "[ParID] =" & Me!KunParIDRef

Beste Grüsse

Micharius

MzKlMu

Hallo,
mir fehlt trotz der Bilder die Vorstellungskraft zu erkennen, was Du hier machst bzw. machen willst.
Gruß Klaus

Lachtaube

Öffne das Formular ohne WhereCondition und setze nach dem Öffnen des Formulars den Wert im Listenfeld. Hat das Listenfeld ein Nach Aktualisierung Ereignis (hat es vermutlich), so wird dieses dabei nicht ausgelöst. Abhilfe: Du legst eine Public Sub BlaBla im Formular mit dem Code aus dem Ereignis an und rufst im Ereignis die neue Sub auf. Da diese Public ist, kann sie auch extern angesteuert werden.

Ein sinnvoller Namen für die Prozedur fällt Dir bestimmt selbst ein.
'-- im aufrufenden Formular

Private Sub DeinKnopf_Click()
   DoCmd.OpenForm "DeinFormularname"
   With Forms("DeinFormularname")
      .Listenfeldname.Value = Me.KunParIDRef
      .NameDerProzedur
   End With
End Sub



'-- in DeinFormularname

Private Sub Listenfeldname_AfterUpdate()
   NameDerProzedur
End Sub

Public Sub NameDerProzedur()
   ' Aktionen mit dem Listenfeld aufführen
End Sub


PS: meine Meinung zum PDF-Anhang lasse ich Dich wohl besser nicht wissen ...
Grüße von der (⌒▽⌒)

Micharius

Hallo Lachtaube

Bin untröstlich  :'(. Ich hatte mir solche Mühe gegeben, das Problem im PDF zu beschreiben.

Spass beiseite, hast ja recht: War ein Pfusch!  ;)

ABER: Nun funktioniert, was ich wollte. Und zwar schon mit dem Code im Ausgangsformular, im Zielformular brauchte ich gar nichts zu hinterlegen.

Herzlichen Dank also für den Lösungsansatz, und einen guten Start in die Woche.

Micharius

P.S. Wenn ich sozusagen keine Ahnung von VBA und Programmierung im Allgemeinen habe, wo fange ich am besten an? :-\