Ich möchte aus einer angezeigten Listbox per Doppelklick auf
den richtigen Datensatz in meinem Unterformular kommen.
WO ist die Listbox?
Handelt es sich um ein wirkliches UFO-Steuerelement (Unterformular)?
Private Sub Liste_DblClick(Cancel As Integer)
DoCmd.OpenForm „Suchmaske“ ’ warum ein extra Suchform öffnen?
Forms![UF1].Personennummer = Me.Liste.Value ’ das wäre so oder so falsch
End Sub
lt. Code kann ich nicht interpretieren, was was ist.
Beschreib die Formularkonstellation etwas genauer…
Eine einfache Variante wäre, falls das Listenfeld auf Einzelauswahl gestellt in einem Hauptform steckt und ein UFO (im Hauptform platziert) filtern soll, die Eigenschaften „Verknüpfen von/nach“ des UFO-Steuerelementes etwa so einzustellen:
Die Listbox befindet sich auf einem gaaaanzz normalen Formular.
Bei Doppelklick auf einen der angezeigten Datensätze soll Access das Formular „Suchmaske“ öffnen und in dessen UF1 den angeklick Datensatz anzeigen.
Hilft das ? - oder brauchst Du noch weitere Infos ?
Die Listbox befindet sich auf einem gaaaanzz normalen
Formular.
Wie „normal“ ist „gaaaanzz“ ??
Bei Doppelklick auf einen der angezeigten Datensätze soll
Access das Formular „Suchmaske“ öffnen und in dessen UF1 den
angeklick Datensatz anzeigen.
Hilft das ? - oder brauchst Du noch weitere Infos ?
naja… Die Frage besteht, warum die DS durch ein UFO angezeigt werden sollen . Ist das UFO mit dem Hauptform irgendwie verknüpft? Oder/und ist das Hauptform („Suchmaske“) das eigentliche „Suchform“?
Sub lstListe1_DblClick()
Docmd.Openform „Suchmaske“ ,Me!lstListe1.Column(0)
End sub
falls in der ersten Listenspalte der ID-Wert steht.
und in „Suchmaske“:
Sub Form_Load()
Dim rs as Dao.Recordset
set rs=Me!UF1.Form.Recordsetclone
If not isNull (Me.Openargs)
rs.Findfirst „ID=“ & Me.Openargs 'falls „ID“ in der Tabelle den Datentyp Zahl,Long hat
If not rs.Nomatch then Me!UF1.Bookmark=rs.Bookmark
End If
set rs=Nothing
End Sub
Bei Doppelklick auf einen der angezeigten Datensätze soll
Access das Formular „Suchmaske“ öffnen und in dessen UF1 den
angeklick Datensatz anzeigen.
Das mit dem Wechsel auf „Suchmaske“ klappt.
Aber der Datensatz auf den dbl geklickt wurde, erscheint nicht in dem UF1, welches sich auf dem Formular „Suchmaske“ befindet.
naja… Die Frage besteht, warum die DS durch ein UFO
angezeigt werden sollen . Ist das UFO mit dem Hauptform
irgendwie verknüpft? Oder/und ist das Hauptform („Suchmaske“)
das eigentliche „Suchform“?
klares nein ! Das UFO ist auf dem Hauptformular „Suchmaske“ !
Private Sub Liste_DblClick(Cancel As Integer)
DoCmd.OpenForm „Suchmaske“, , , , , , Me!Liste.Column(0)
End Sub
falls in der ersten Listenspalte der ID-Wert steht.
Hallo,
ich kann mich mit dieser UFo-Geschichte nicht anfreunden…
wie dem auch sei, setz mal einen Haltepunkt in den Code des Load-Ereignisses und prüfe, ob Openargs den richtigen Wert besitzt und prüfe den Durchlauf durch den Rest des Codes.
hab ich gemacht.
Das Kriteriumsfeld (Personennummer) wird auch ordnungsgemäß gefüllt.
jetzt fehlt nur noch, daß die Befehlsschaltfläche 5 ausgelöst wird,
damit mit der folgenden Prozedur der Kundensatz im UF1 angezeigt wird.
Private Sub Befehl5_Click()
Dim Krit, Krit1 As String
Krit = „“
If Not IsNull(Me!Personennummer) Then Krit = " Where Personennummer LIKE ‚" & Me!Personennummer & "‘ "
Me!UF1.Form.RecordSource = "SELECT * FROM Kunden Abfrage " & Krit
das meine ich nicht.
ich meine, ob man den Klick auf die Befehlsschaltfläche5 nicht in die Prozedur nit einarbeiten kann.
also: Auf dblclick füllt er das Feld mit dem Suchkriterium, aber dann muss immernoch die Auslösetaste (Befehlsschaltfläche5) geklickt werden, um den richtigen Datensatz im UF1 anzuzeigen.
Und genau den zweiten Part meine ich. Klick auf Befehlsschaltfäche Befehl5 !!
Auf eine Schaltfläche klicken kann man per VBA nicht… das kann nur mit der Maus (oder Tastatur) geschehen. Man kann aber die Prozedur, die durch das Klickereignis ausgelöst wird, auch direkt aufrufen, so wie ich es gepostet habe…
Auf eine Schaltfläche klicken kann man per VBA nicht… das
kann nur mit der Maus (oder Tastatur) geschehen. Man kann
aber die Prozedur, die durch das Klickereignis ausgelöst wird,
auch direkt aufrufen, so wie ich es gepostet habe…
Hab ich versucht mit:
Private Sub Liste_DblClick(Cancel As Integer)
Dim StrSQL, Krit, Krit1 As String
DoCmd.OpenForm „Suchmaske“, , , , , , Me!Liste.Column(0)
Forms![Suchmaske].Personennummer = Me.Liste.Value
Befehl5_Click()
End Sub
In meinem früheren Posting habe ich Dir den Code geschrieben, der alles erledigt.
Wenn der nicht das tut , was er soll, müssen wir (Du) ihn anpassen/debuggen. Dazu setz auch mal einen Haltepunkt in die Load-Ereignisprozedur des Suchforms und prüf das Geschehen dort…