Mahlzeit,
folgendes Problem. Ich möchte in einem Formular einen Datensatz suchen (ausschließlich Zahlen). Hierfür habe ich einen Button erstellt, der ein Formular öffnet. Hier ist ein ungebundenes Textfeld, in dem ich den zu suchenden Wert eingeben möchte. Mit einem Klick auf den darunter befindlichen Button möchte ich das entsprechende Formular öffnen und den Datensatz angezeigt bekommen.
Folgendes hab ich schon:
DoCmd.OpenForm "Mandanten"
Forms!Mandanten.Recordset.FindFirst "Text1= " & Me!Text0
DoCmd.Close acForm, "MandantenSuchen"
"Mandanten"= Formular in dem der gesuchte Datensatz angezeigt werden soll
"Text1" = Textfeld das den gesuchten Wert enthält/enthalten soll (Das Suchergebnis sozusagen)
"Text0" = ungebundenen Textfeld in das die Suche eingegeben wird.
Öffnen des Formulars und schließen des "Suchformulars" funktioniert schon Prima ;D
Vielen Dan für eure Hilfe
Schon mal gut, dass dein Formular nicht "Formular1" heisst. Die restliche Benamsung ist gräuslich.
"Text1" muss ein Feld der Mandantentabelle sein.
OK.
ich hab die Textfelder umbenannt.
Private Sub Datensatz_suchen_Click()
DoCmd.OpenForm "Mandanten"
Forms!Mandanten.Recordset.FindFirst "Mandantennummer=" & Me!MandantenSuche
DoCmd.Close acForm, "MandantenSuchen"
End Sub
Text1 ist jetzt Mandantennummer und befindet sich im Formular Mandanten
Text0 ist jetzt MandantenSuche und ist das textfeld in dem Formular wo ich die "Suchekriterien" eingebe.
Doch leider sucht er nichts. Es öffnet sich das Formular Mandanten, aber mit einem leeren Datensatz. Und schließt mein PopUp Fenster.....
Zitat von: Parzelle387 am Februar 20, 2020, 19:51:54
Text1 ist jetzt Mandantennummer und befindet sich im Formular Mandanten
Da liegt das Problem. Für
FindFirst musst du den Namen des entsprechenden
Tabellenfeldes angeben.
Das heisst auch Mandantennummer 8)
Das funktioniert dann bestimmt nicht, oder ?
Es wird doch aber auf das Formular (Forms!Mandanten) verwiesen ?!?
wenn das Feld "Mandantennummer" (in der Tabelle) den Datentyp TEXT hat, dann sind Hochkommata erforderlich:
..... "Mandantennummer='" & Me!MandantenSuche & "'"
Ist Feldtyp Zahl.
Funktioniert trotzdem nicht :'(
Hallo,
bei Zahl müssen die Hochkomma weg.
..... "Mandantennummer=" & Me!MandantenSuche
Keine Hochkommas drin:
DoCmd.OpenForm "Mandanten"
Forms!Mandanten.Recordset.FindFirst "Mandantennummer= " & Me!MandantenSuche
DoCmd.Close acForm, "MandantenSuchen"
Aber ausser Formular öffnen und das PopUp schließen funktioniert nichts.
Der Cursor blinkt zwar im richtigen Feld, aber er zeigt ein leeres Formular.
Hallo!
Falls nur der eine Datensatz genutzt werden soll, würde ich nicht zum Datensatz springen, sondern die Datenquelle filtern.
docmd.OpenForm "Mandanten",,,"Mandantennummer=" & Me!MandantenSuche
Falls zum jeweiligen DS mittels FindFirst gesprungen werden soll, würde ich den Umweg über RecordsetClone und NoMatch-Prüfung gehen. (Anm.: ich gehe von einem DAO-Recordset aus.)
With Forms!Mandanten
With .RecordsetClone
.FindFirst "Mandantennummer=" & Me!MandantenSuche
If .NoMatch Then
MsgBox "Oje"
Else
Me.Recordset.Bookmark = .Bookmark
End If
End With
End With
mfg
Josef
Ich möchte nur den EINEN Datensatz finden, um Änderungen vor zu nehmen falls notwendig.
Es funktioniert weder das eine noch das andere :'(
Das erste läuft genauso durch wie das was ich vorher hatte, Formular öffnet sich und PopUp schließt sich, mehr nicht.
Beim zweiten öffnet sich das VBA Fenster und er meckert über das 2. With-Objekt. Es muüsste einen benutzerdefinierten Typ oder den Typ Object oder variante haben.
Welche Datenquelle hat das Formular.
Wenn die 1. Variante keinen Datensatz anzeigt, dann gibt es keinen Datensatz für diesen Filterausdruck in der Formular-Datenquelle oder das Formular erlaubt nur das Anfügen von DS. Ist eventuell die Eigenschaft "Daten eingeben" auf Ja gesetzt?
Juhuuuuu.
Das mit dem Daten eingeben war es. Das muss aber standardmäßig so gewesen sein, kann mich nicht erinnern
da etwas geändert zu haben.
VIIIIELENDANK ! ;)