PDA

Vollständige Version anzeigen : im Formular auf bestimmten Datensatz springen


<michi>
08.01.2002, 10:24
Hallöchen!
Ich habe schon das halbe Forum durchgesucht, aber die Lösung meines Problems nicht gefunden:
Ich möchte in einem Hauptformular (welches sich auf eine Tabelle bezieht) zu einem bestimmten Datensatz springen. Diesen möchte ich vorher durch ein 'Suchformular' bestimmen (wird geöffnet durch einen Button auf dem Hauptformular): Es enthält zwei Textfelder, welche als Kriterium für die Suche gelten sollen (Und-Verknüpfung). Ich möchte nun, daß im Hauptformular zu dem Datensatz gesprungen wird, für den die beiden Kriterien zutreffen (die zugehörigen Textfelder sind natürlich auch auf dem Hauptformular). Sollte die Kriterienkombination für keinen Datensatz der Tabelle zutreffen (Hinweis durch Meldung), soll der bei Drücken des Buttons sichtbare Datensatz angezeigt bleiben.
Mit DoCmd.GotoRecord... komme ich nicht weiter; ich denke, ich müßte mit einer Schleife alle Datensätze der Tabelle auf Übereinstimmung durchsuchen, aber wie genau mache ich das?

Ich will wirklich nur im Hauptformular navigieren und keine neue Auswahlabfrage haben.
Hat jemand eine Lösung? Vielen Dank schon mal.

michi_17
08.01.2002, 10:38
Hallo
Probiers mal mit BuildCriteria

<michi>
08.01.2002, 10:46
Hallo (michi_17)!
Ich bin jetzt nicht DER VBA-Freak - könntest Du etwas präziser werden?

<michi>
08.01.2002, 12:11
Habs jetzt schon mit Dlookup versucht - es klappt hinten und vorne nicht.
Frust ohne Ende, bitte helft mir.

A.S.
08.01.2002, 12:55
Hallo Michi,

da bräuchte ich schon noch ein paar Angaben, als da währen: Name des Hauptformulars, Name der zu durchsuchenden Datenfelder, Name des Suchformulars, Name der Steuerelemtente auf dem Suchformular und welches Steuerelemt ist für welches Datenelement auf dem Hauptformular als Suchkriterium vorgesehen.

Gruß

Arno

<michi>
08.01.2002, 13:12
Hallo Arno!
Es handelt sich hierbei um mein Musik-Archiv.
Name des Hauptformulars: Alben
Name der zu durchsuchenden Datenfelder:
Art (Textfeld, mit Inhalten wie CD oder MC...)
Album (Zahl, mit Inhalten wie 1,2,3...)
Name des Suchformulars: Gehe zu Album (kann aber auch geändert werden, z. B. SucheAlbum)
Namen der Suchelemente auf dem Suchformular: Art und Album (wie auf dem Hauptformular).
Nochmal zur Erklärung: Ich möchte keinen Filter oder eine Abfrage, sondern einfach den Sprung zu dem Datensatz, in dem in den beiden genannten Datenfelder das gleiche steht wie in den in dem Suchformular eingegebenen Suchelementen.
Vielen Dank schonmal im Voraus

A.S.
08.01.2002, 13:19
Hallo Michi,

auf Deinem Formular "Gehe zu Album" hast Du mit Sicherheit einen Button "OK" oder "Suchen". Hinter diesem hinterlegst Du folgenden Code:

Forms!Alben.Form.RecordsetClone.FindFirst "[Art] = '" & Me.Art & "' AND [Album] = " & Me.Album
Forms!Alben.Form.Bookmark = Forms!Alben.Form.RecordsetClone.Bookmark

Diese Befehlssequenz durchsucht zunächst eine Kopie des Recordsets des Formulars Alben und setzt das Formular über die Bookmark-Eigenschaft auf den gefundenen Datensatz. Wird kein Datensatz gefunden ist die Eigenschaft

Forms!Alben.Form.RecordsetClone.NoMatch

auf True bzw. Wahr gesetzt.

Gruß

Arno

<michi>
08.01.2002, 13:43
Hallo Arno!
Ich kann mich kaum beruhigen: Klappt wie am Schnürchen!
Fünftausenddank für Deine Hilfe!!!
Bis dann mal. *freu, auf dem Boden tanz*

Thomas Chemnitz
12.02.2002, 14:17
Hallo!

Habe im Prinzip genau das selbe Problem. Wenn ich aber oben genannten Code ([...].RecordsetClone.FindFirst [...]) ausführe, erscheint der Fehler "Objekt unterstützt diese Eigenschaft oder Methode nicht". Ich arbeite an einem Client/Server Projekt (das sollte doch damit aber eigentlich nichts zu tun haben) mit ADO. Was mache ich da falsch?
MfG
Thomas

PS: Habs jetzt so ähnlich gelöst:
Forms!Menu.UF.Form.Recordset.MoveFirst
Forms!Menu.UF.Form.Recordset.Find "[F_IND] = " & [F_IND]
Forms!Menu.UF.Form.Bookmark = Forms!Menu.UF.Form.Recordset.Bookmark

Danke!

JS2
23.04.2002, 12:35
Ich habe den Code von Arno gesehen und möchte nun wissen wenn ich die Suchfunktion per Button aus einem anderen Formular starte, das Suchkriterium ist in meinem suchformular als TExtfeld [txtsuchen] aber das Feld in dem ich Suchen will befindet sich in Mitarbeiter [Name].

Meine Frage kann ich nun in der Methode

FindFirst "[Forms!frmMitarbeiter.Name]="" & Me.txtsuchen" eingeben?

Jens