858 Aufrufe
Gefragt in Datenbanken von ull Einsteiger_in (14 Punkte)
Liebe Access-Experten,

ich habe ein Formular "Touren_erfassen". In diesem Formular befindet sich ein Kombinationsfeld "TourSuchen".
Wenn ich das Formular alleine aufrufe funktioniert alles prima - ich selektiere eine Tour und das Ergebnis wird mir in dem Formular angezeigt. Dazu habe ich folgende Ereignisprozedur erstellt:

Private Sub TourSuchen_AfterUpdate()
    Dim db As Database
    Dim rs As Recordset
    Set db = CurrentDb
    strSQL = "SELECT * FROM TOUREN WHERE TOUREN_KEY = " & TourSuchen
    Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
    Set Forms("Touren_erfassen").Recordset = rs
End Sub

Nun habe ich aber ein Navigationsformular, wo das selbe Formular "Touren_erfassen" im Navigationsunterformular angezeigt wird. Wenn ich jetzt eine Tour selektiert habe, dann erhalte ich auf der Zeile "Set Forms .. " den Laufzeitfehler 2450 "Microsoft Access kann das Formular 'Touren_erfassen' nicht finden, auf das verwiesen wird". Was mache ich da falsch?

Vielen Dank für Eure Hilfe
Gruß Ull

2 Antworten

0 Punkte
Beantwortet von floppydisk87 Einsteiger_in (81 Punkte)

Hallo Ull,

habe mal ein bisschen recherchiert und folgendes gefunden, das Allgemein bei diesem Problem helfen soll:

Beliebiges Formular anlegen und in der Entwurfansicht öffnen.
Aus der Toolbox eine Befehlsschaltflache platzieren und dem Assistenten folgen: Formularoperationen, Formular öffne --> Formularname --> Option Formular öffnen und bestimmte Daten anzeigen --> übereinstimmende Felder wählen usw.
=> im Basic Editor steht dann der fertige Code unter Befehlsschaltfläche_X_Click()

Es soll wohl generell auch helfen, wenn man das Formular einfach in einem anderen Fenster schon geöffnet hat. Mit dem Code kenne ich mich nicht so gut aus, aber wenn du nach dem Fehler googelst, gibt es einige Beiträge die den Fehler in verschiedenen Szenarien behandeln, vielleicht ist da konkret eine bessere Lösung für dich zu finden.

Ist zwar nur ein Tropfen auf den heißen Stein, aber ich hoffe, es hilft dir ein wenig :) 

LG

0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)

probiere mal statt

Set Forms("Touren_erfassen").Recordset = rs

die Zuweisung für eine Kombinationsfeld im Hauptformular mit

Set Me.UF.Form.Recordset = rs

wobei "UF" der Name des Unterformulars im Hauptformular ist.
Ist das Kombinationsfeld selbst auch im Unterformular, reicht

SET me.Rcordset = rs

Aber ehrlich gesagt würde ich mit der Methode Filter und FilterOn arbeiten und nicht immer wieder ein neues Recordset dran hängen, also mit

me.Filter = "TOUREN_KEY = " & TourSuchen
Me.FilterOn = true
...