Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

per VBA zu Datensatz springen





Frage

Hallo! Ich habe in meiner Access-Datenbank ein Formular fuer die Dateneingabe und eines um die Daten zu suchen. Nun wuerde ich gerne per VBA vom Suchformular wieder zum Dateneingabe-Formular gelangen und zwar zu genau dem Datensatz, den ich im Suchformular gefunden habe. Beispiel: Ich habe 10 Datensaetze im Dateneingabeforumular eingegeben. Nun suche ich nach bestimmten Kriterien im Suchformular und mir wird z.B. Datensatz 5 angezeigt. Nun moechte ich wieder vom Suchformular per Buttonklick auf Datensatz 5 des Dateneingabeformulars springen. Geloest werden koennte das ganze ueber die ID (ist in beiden Datensaetzen vorhanden). Ich braeuchte quasi nur den VBA-Code, mit dem ich zu einem bestimmten Datensatz springen kann. Kann mir da jemand weiterhelfen? Danke. Gruss Christoph

Antwort 1 von rolandaa

hallo, oder so bei klick:

öffne Formular -> Formularname F_???
Bedinnung -> ID = [Formulare]![F_Suche???]![ID]

mfg
roland

Antwort 2 von erik

Vermutlich ist das Eingabeformular noch geöffnet, während du im zweiten Formular die Suche durchführst? Dann musst du nur das Eingabeformular als Objekt referenzieren und dann auf die übliche Weise suchen.

Private Sub GeheZu_Click()
	Dim frm As Form
	Dim rec As Recordset
    
	Set frm = Forms("frmEingabeformular")
	Set rec = frm.RecordsetClone
	With rec
		.FindFirst "ID=" & Me.ID
		If Not .NoMatch Then
			frm.Bookmark = rec.Bookmark
		End If
	End With
    
	Set rec = Nothing
	Set frm = Nothing
End Sub


Ist das Eingabeformular geschlossen, dann übergib beim Öffnen den gesuchten Primärschlüssel an die OpenArgs-Eigenschaft des Eingabeformulars und suche nach dem gleichen Prinzip.

Antwort 3 von Christoph_USA

Danke fuer Eure Hilfe!
Hier mein Code, mit dem ich mein Problem geloest habe:


Private Sub openrecord_click()
Dim rs As Recordset
On Error GoTo Errorhandler
Forms!frm_general.SetFocus

If IsNull(Me!ID) Then

DoCmd.GoToRecord , , acNewRec
Else
Set rs = Forms!frm_general.RecordsetClone
rs.FindFirst "ID = " & Me!ID
Forms!frm_general.Bookmark = rs.Bookmark

End If
Errorhandler:
If Err = 2450 Then
DoCmd.OpenForm ("frm_general")
Resume Next
End If

End Sub

Damit habe ich nun auch nicht das Problem mit offenen oder geschlossenen Formular.

Gruss
Christoph

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: