Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Suchfunktion mit PopUp Fenster im Formular

Begonnen von Parzelle387, Februar 20, 2020, 13:02:00

⏪ vorheriges - nächstes ⏩

Parzelle387

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

Beaker s.a.

Schon mal gut, dass dein Formular nicht "Formular1" heisst. Die restliche Benamsung ist gräuslich.
"Text1" muss ein Feld der Mandantentabelle sein.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Parzelle387

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.....

PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Parzelle387

Das heisst auch Mandantennummer 8)
Das funktioniert dann bestimmt nicht, oder ?

Es wird doch aber auf das Formular (Forms!Mandanten) verwiesen ?!?

DF6GL

wenn das Feld "Mandantennummer" (in der Tabelle) den Datentyp TEXT hat, dann sind Hochkommata erforderlich:

..... "Mandantennummer='" & Me!MandantenSuche & "'"

Parzelle387

Ist Feldtyp Zahl.

Funktioniert trotzdem nicht  :'(

MzKlMu

Hallo,
bei Zahl müssen die Hochkomma weg.
..... "Mandantennummer=" & Me!MandantenSuche
Gruß Klaus

Parzelle387

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.

Josef P.

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

Parzelle387

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.

Josef P.

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?

Parzelle387

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 ! ;)