Supportnet / Forum / Datenbanken
stLinkCriteria - Link auf Formular zu einem bestimmten Datensatz
Frage
Hallo,
ich habe folgendes Problem: ich moechte von einem Formular (ist ein Unterformular auf einem Register) über einen Button ein weiteres Formular öffnen. Verlinkung soll über das Feld TKNR (Zahl) laufen. Es handelt sich um Formulare in einem Access-Projekt. Die "normale" Aktion über den Assistenten funktioniert nicht. Ich habe in Foren schon ein Ergebnis gefunden, doch auch da kommt eine Fehlermeldung. Vielleicht kann mir jemand weiterhelfen? Der Befehl sieht wiefolgt aus:
****************************
Private Sub Befehl12_Click()
On Error GoTo Err_Befehl12_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "frm_ticket_bearbeiten"
stLinkCriteria = "[TKNR]=" & [Forms]![frm_admin]![RegisterStr0]![frm_admin_ticket_offen]![TKNR]
DoCmd.OpenForm stDocName
Forms![frm_ticket_bearbeiten].Filter = stLinkCriteria
Forms![frm_ticket_bearbeiten].FilterOn = True
Exit_Befehl12_Click:
Exit Sub
Err_Befehl12_Click:
MsgBox Err.Description
Resume Exit_Befehl12_Click
End Sub
******************************
folgende Fehlermeldung erscheint: "Let-Prozedur der Eigenschaft ist nicht definiert, und Get-Prozedur hat kein Objekt zurückgegeben."
Hat jemand eine Idee was falsch ist? Oder eine Idee, wie ich zu meinem Ziel komme, nur einen Datensatz aufzurufen???
Vielen Dank und Gruesse,
Sidonie
Antwort 1 von ElBobbele
Hallo Sidonie!
Für die angegebene Fehlermeldung kann der aufgeführte Code nicht direkt verantwortlich sein, der ist so eigentlich funktionsfähig. Möglicherweise ist der Fehler im aufgerufenen Formular zu suchen. Zum Einkreisen des Fehlers solltest du versuchsweise die Filterung auskommentieren, bzw. das Formular aus dem Datenbankfenster direkt öffnen.
Mit den Let- und Get-Prozeduren werden die Eigenschaften einer Klasse definiert. Entweder wird hier eine benutzerdefinierte Klasse gemeint oder das Klassenmodul des zu öffnenden Formulars (vielleicht beschädigt). Hast du selbst eine Klasse erstellt oder hinzugefügt?
Unabhängig davon würde ich dir raten, die Filterung der Daten der DoCmd.OpenForm-Anweisung zu überlassen, sofern das Formular als Datenherkunft keine Gespeicherte Prozedur verwendet:
DoCmd.OpenForm FormName:=stDocName, WhereCondition:=stLinkCriteria
Gruss
El Bobbele
Für die angegebene Fehlermeldung kann der aufgeführte Code nicht direkt verantwortlich sein, der ist so eigentlich funktionsfähig. Möglicherweise ist der Fehler im aufgerufenen Formular zu suchen. Zum Einkreisen des Fehlers solltest du versuchsweise die Filterung auskommentieren, bzw. das Formular aus dem Datenbankfenster direkt öffnen.
Mit den Let- und Get-Prozeduren werden die Eigenschaften einer Klasse definiert. Entweder wird hier eine benutzerdefinierte Klasse gemeint oder das Klassenmodul des zu öffnenden Formulars (vielleicht beschädigt). Hast du selbst eine Klasse erstellt oder hinzugefügt?
Unabhängig davon würde ich dir raten, die Filterung der Daten der DoCmd.OpenForm-Anweisung zu überlassen, sofern das Formular als Datenherkunft keine Gespeicherte Prozedur verwendet:
DoCmd.OpenForm FormName:=stDocName, WhereCondition:=stLinkCriteria
Gruss
El Bobbele

