Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Formular öffnen & zu Datensatz springen (ohne Filter!)
zurück: Seitengröße des Unterformulars ändern weiter: Dropdown mit 2 Spalten - angezeigt wird nur die erste..... Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Herzscheisse
VBA-Anfänger


Verfasst am:
03. Mai 2012, 13:14
Rufname: Rob

Formular öffnen & zu Datensatz springen (ohne Filter!) - Formular öffnen & zu Datensatz springen (ohne Filter!)

Nach oben
       Version: Office 2010

Hi Leute,

ich weiß zu dem Thema gibt es schon jede Menge Threads, allerdings hat keiner mir richtig weiterhelfen können.

Ich habe ein Personendatenbank mit einem Hauptformular und einem Suchformular: In letzterem gibt es ein Suchfeld und ein dazugehöriges Listenfeld, das alle Treffer anzeigt. Mit einem Doppelklick darin springe ich vom Suchformular in das darüber liegende Hauptformular, wo ich alle Daten bearbeiten kann. Allerdings schmeißt es dabei einen Filter ein (so dass nur der eine Datensatz anzeigt wird), was manchmal nervt, wenn man von da aus zu einem anderen Datensatz springen möchte. Ich muss also den Filter über die Navi-Schaltfläche ausmachen und kann erst da weiterarbeiten. Ich hoffe, ich habe es nicht zu umständlich erklärt.

ich habe diverse Methoden (findfirst, gotorecord, etc) schon ausprobiert, allerdings so richtig geklappt hat nichts.

Der zum Doppelklick gehörige VBA-Code ist:
Code:
Private Sub Liste84_DblClick(Cancel As Integer)
    Forms.Personenerfassung.IDSuche = Forms.Suchmaske.ID
    DoCmd.Close acForm, "Suchmaske"
    DoCmd.OpenForm "Personenerfassung", , , "ID=" & Forms!Personenerfassung!IDSuche
End Sub
Ich hoffe mir kann jemand helfen.

Grüße,
Robert
KlausMz
Moderator Access


Verfasst am:
03. Mai 2012, 13:20
Rufname:
Wohnort: Irgendwo in der Pfalz


AW: Formular öffnen & zu Datensatz springen (ohne Filter - AW: Formular öffnen & zu Datensatz springen (ohne Filter

Nach oben
       Version: Office 2010

Hallo,
übergebe die ID in den Openargs:
Code:
    DoCmd.OpenForm "Personenerfassung", , , , , , Forms!Personenerfassung!IDSuche
und wende im Ereignis "Beim Laden" die Methode FindFirst an, mit den OpenArgs als Kriterium.
_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Herzscheisse
VBA-Anfänger


Verfasst am:
03. Mai 2012, 14:28
Rufname: Rob

Re: AW: Formular öffnen & zu Datensatz springen (ohne Fi - Re: AW: Formular öffnen & zu Datensatz springen (ohne Fi

Nach oben
       Version: Office 2010

KlausMz - 03. Mai 2012, 13:20 hat folgendes geschrieben:
... und wende im Ereignis "Beim Laden" die Methode FindFirst an, mit den Openargs als Kriterium.
Genau da hängt es leider bei mir. Ich bin VBA-technisch noch ziemlich grün hinten den Ohren.

Ich habe jetzt in den Code des hauptformulars folgendes geschrieben:
Code:
Private Sub Form_Load()
    Dim rs As DAO.Recordset

    Set rs= Me.RecordsetClone
    rs.FindFirst "ID=" & Nz(Me.OpenArgs, 0)
End Sub
Das funktioniert allerdings, wie man sich denken kann, nicht. Ich weiß allerdings auch nicht weiter und die Windowshilfe gibt sich wie immer recht spartanisch.
MAPWARE
Access Profi(l)neurotiker


Verfasst am:
03. Mai 2012, 16:26
Rufname:
Wohnort: Hannover

AW: Formular öffnen & zu Datensatz springen (ohne Filter - AW: Formular öffnen & zu Datensatz springen (ohne Filter

Nach oben
       Version: Office 2010

Hi,

das funktioniert nicht, weil die Suche nicht im Recordset des Formulars, sondern in der Kopie dieses Recordsets stattfindet (RecordsetCLONE). Nachdem der richtige Datensatz gefunden wurde (in der Kopie), muss das Recordset des Formulars auch auf den richtigen Datensatz gesetzt werden. also:
Code:
Private Sub Form_Load()
    Dim rs As DAO.Recordset

    Set rs = Me.RecordsetClone
    rs.FindFirst "ID=" & Nz(Me.OpenArgs, 0)
    Me.Bookmark = rs.Bookmark
    rs.Close
End Sub

_________________
Grüße
Marcus

Wer Controls nicht sinnvoll benennt, wird es später bereuen.
MissPh!
Office-VBA-Programmiererin


Verfasst am:
03. Mai 2012, 17:26
Rufname:
Wohnort: NRW

AW: Formular öffnen & zu Datensatz springen (ohne Filter - AW: Formular öffnen & zu Datensatz springen (ohne Filter

Nach oben
       Version: Office 2010

Hallo,
Zitat:
springe ich vom Suchformular in das darüber liegende Hauptformular,
das hört sich für mich so an, als sei das Suchformular in das Hauptformular eingebettet. Falls nein, warum nennst du es "Hauptformular"?
Man spricht sinnvollerweise nur dann von einem Hauptformular, wenn es Unterformulare enthält.

Und wenn es "darüber" liegt, so ist es bereits geöffnet und muss nicht noch einmal geöffnet werden.

Nachtrag:
Zitat:
das funktioniert nicht, weil die Suche nicht im Recordset des Formulars, sondern in der Kopie dieses Recordsets stattfindet
Da hier eine gültige ID übergeben wird und die Frage des Nicht-Findens gar nicht erst gestellt wird, kann man auch direkt auf das Recordset des Formulars zugreifen:
Code:
Private Sub Form_Load()
    Me.Recordset.FindFirst "ID=" & Nz(Me.OpenArgs, 0)
End Sub
Anstelle der Übergabe der ID via Openargs ließe sich das auch direkt aus dem aufrufenden Formular heraus einstellen:
Code:
Private Sub Liste84_DblClick(Cancel As Integer)
    DoCmd.OpenForm "Personenerfassung"
    Forms!Personenerfassung.Recordset.FindFirst "ID=" & Me!ID
    DoCmd.Cose acForm, Me.Name
End Sub

_________________
Gruß MissPh!
sk42
Im Profil kannst Du frei den Rang ändern


Verfasst am:
04. Mai 2012, 11:28
Rufname:

Re: AW: Formular öffnen & zu Datensatz springen (ohne Fi - Re: AW: Formular öffnen & zu Datensatz springen (ohne Fi

Nach oben
       Version: Office 2010

Hallo MAPWARE,

Ich sehe in den ganzen Beispielcodes auch immer nur dieses "RecordsetCLONE", aber leider wird nirgens erklärt, warum man das so machen muß. Warum kann man nicht direkt das Recordset des Formulares nehmen? Schluckt eine Kopie nicht unnötig Speicher und Performance (Alle DS müssen ja schließlich vor Verwendung erst kopiert werden)?
MissPh!
Office-VBA-Programmiererin


Verfasst am:
04. Mai 2012, 12:34
Rufname:
Wohnort: NRW

AW: Formular öffnen & zu Datensatz springen (ohne Filter - AW: Formular öffnen & zu Datensatz springen (ohne Filter

Nach oben
       Version: Office 2010

Hallo,
Code:
Warum kann man nicht direkt das Recordset des Formulares nehmen?
dass man das kann, habe ich doch schon geschrieben.
Meiner Ansicht nach ist das veralteter Code mit dem Bookmarken auf Basis des RecordsetClone.

Es mag wohl Gründe geben, mit RecordsetClone zu arbeiten, aber nicht in diesem Zusammenhang.

_________________
Gruß MissPh!
Herzscheisse
VBA-Anfänger


Verfasst am:
04. Mai 2012, 13:17
Rufname: Rob


Re: AW: Formular öffnen & zu Datensatz springen (ohne Fi - Re: AW: Formular öffnen & zu Datensatz springen (ohne Fi

Nach oben
       Version: Office 2010

Ich bin nicht firm in der Access-Terminologie, deswegen habe es einfach Hauptformular genannt, um den Unterschied kenntlich zu machen.
Zitat:
Anstelle der Übergabe der ID via OpenArgs ließe sich das auch direkt aus dem aufrufenden Formular heraus einstellen:
Code:
Private Sub Liste84_DblClick(Cancel As Integer)
    DoCmd.OpenForm "Personenerfassung"
    Forms!Personenerfassung.Recordset.FindFirst "ID=" & Me!ID
    DoCmd.Cose acForm, Me.Name
End Sub
Genau das habe ich gebraucht! Smile Es funktioniert. Ich danke dir vielmals!! Nur eine kleine Berichtigung: Es muss heißen:
Code:
    DoCmd.Close ...
Vielen Dank noch einmal! Ihr seid (wieder mal) spitze! Smile

Schönes Wochenende noch!
Grüße, Robert
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Datensatz nach Datum suchen?? 1 Hansen 1390 04. Okt 2004, 12:16
stpimi Datensatz nach Datum suchen??
Keine neuen Beiträge Access Tabellen & Abfragen: Suchfunktion mit mehreren Kriterien aus Formular 5 Danny G. 2218 09. Sep 2004, 11:08
Danny G. Suchfunktion mit mehreren Kriterien aus Formular
Keine neuen Beiträge Access Tabellen & Abfragen: Mit Formular Abfrage machen? 9 Gast 2092 06. Sep 2004, 10:03
Nevyn Mit Formular Abfrage machen?
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle, Formular, Abfrage...und nun ? 3 Gags 790 29. Aug 2004, 22:05
lothi Tabelle, Formular, Abfrage...und nun ?
Keine neuen Beiträge Access Tabellen & Abfragen: n:n Datensatz hinzufügen fehlgeschlagen 2 accesshasser 980 27. Aug 2004, 12:07
Pusteblume n:n Datensatz hinzufügen fehlgeschlagen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfragefeld nachträglich in Formular 3 Sebbl 1705 05. Aug 2004, 15:14
mabe38 Abfragefeld nachträglich in Formular
Keine neuen Beiträge Access Tabellen & Abfragen: Formular aus Endlosformular öffnen ? 10 G-Markus 1619 20. Jul 2004, 15:38
Gast Formular aus Endlosformular öffnen ?
Keine neuen Beiträge Access Tabellen & Abfragen: mehrere Abfragen in einem Formular zum Auswerten 2 bpointz 1086 27. Mai 2004, 10:39
bpointz mehrere Abfragen in einem Formular zum Auswerten
Keine neuen Beiträge Access Tabellen & Abfragen: kriterium - datensatz nur in einer von zwei tabellen 3 budking82 1000 11. Mai 2004, 12:59
budking82 kriterium - datensatz nur in einer von zwei tabellen
Keine neuen Beiträge Access Tabellen & Abfragen: letzten datensatz bei access ermitteln 2 trommelkind 902 03. Mai 2004, 16:25
trommelkind letzten datensatz bei access ermitteln
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Tabellen & Abfragen: Mehrmalige Abfrage durch Formular 11 Wickiman 897 03. Mai 2004, 15:23
Willi Wipp Mehrmalige Abfrage durch Formular
Keine neuen Beiträge Access Tabellen & Abfragen: datensatz aus mehreren Tabellen im formular anzeigen 1 SixPack 1197 29. März 2004, 10:53
Willi Wipp datensatz aus mehreren Tabellen im formular anzeigen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Expression Web