abhängige Kombifelder Unterformular

20/11/2009 - 19:08 von Klaus Hensler | Report spam
Hallo NG,

ich komme ohne eure Hilfe wieder mal nicht weiter.
zuerst die Frage: Ist es überhaupt möglich im Einzel-Unterformular nach DS
zu suchen-anzeigen ?? Access2003

kurze Schilderung:
tbl_Betriebe - Betrieb - Text eindeutig
tbl_Anlagen - Anl_Nr - Autowert
tbl_Verdichter - Verd_Nr - Autowert
jeweils 1:n Beziehung

In meinem Formular derselbe Aufbau: Herkunft Tabellen
frm_Hauptformular(Betriebe) - ufo frm_Anlagen verknüpft über Betrieb.
Im ufo frm_Anlagen das ufo ufm_Verdichter.,

Funktioniert soweit auch alles. Im Formular wie in den ufo's sind
Schaltflàchen acLast, acNext usw insgesamt 12 Stück. Um dies zu vereinfachen,
fügte ich drei ungebundene abhàngige Felder ins Hauptform ein.

Kombi - IstBetrieb - funktioniert auch bis zur Auswahl Betrieb im Kombifeld.
Listenfeld - IstAnlage
Listenfeld - IstVerdichter

Private Sub IstBetrieb_AfterUpdate()
If Me!IstAnlage.Column(1) <> Me!IstBetrieb.Column(0) Then
Me!IstAnlage = Null
Me!IstVerdichter = Null
End If
If IsNull(Me!IstBetrieb) Then
Me!IstAnlage = Null
Me!IstVerdichter = Null
End If
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[Betrieb] = '" & Me![IstBetrieb] & "'"
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
Me!IstAnlage.Requery
Me!IstVerdichter.Requery
End Su
*********************************************************************************
Doch dann verliesen sie ihn. Ich komme immer wieder zum Fehler 3070
ungültiger Feldname oder Ausdruck.

Private Sub IstAnlage_AfterUpdate()
If Me!IstVerdichter.Column(1) <> Me!IstAnlage.Column(0) Then
Me!IstVerdichter = Null
End If
If IsNull(Me!IstAnlage) Then
Me!IstVerdichter = Null
End If
Me!IstAnlage.Requery
Me!IstVerdichter.Requery
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[frm_Hauptformular]![Frm_Anlagen]![Anl_Nr]= " &
Me![Frm_Anlagen]![Anl_Nr] & ""
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
Me!IstAnlage.Requery
Me!IstVerdichter.Requery
End Sub

Ich hoffe meine Fragestellung ist verstàndlich.

Danke
Gruß Klaus
 

Lesen sie die antworten

#1 Thomas Möller
20/11/2009 - 19:26 | Warnen spam
Hallo Klaus,

Klaus Hensler schrieb:
ich komme ohne eure Hilfe wieder mal nicht weiter.
zuerst die Frage: Ist es überhaupt möglich im Einzel-Unterformular nach DS
zu suchen-anzeigen ?? Access2003

kurze Schilderung:
tbl_Betriebe - Betrieb - Text eindeutig
tbl_Anlagen - Anl_Nr - Autowert
tbl_Verdichter - Verd_Nr - Autowert
jeweils 1:n Beziehung

In meinem Formular derselbe Aufbau: Herkunft Tabellen
frm_Hauptformular(Betriebe) - ufo frm_Anlagen verknüpft über Betrieb.
Im ufo frm_Anlagen das ufo ufm_Verdichter.,

Funktioniert soweit auch alles. Im Formular wie in den ufo's sind
Schaltflàchen acLast, acNext usw insgesamt 12 Stück. Um dies zu vereinfachen,
fügte ich drei ungebundene abhàngige Felder ins Hauptform ein.

Kombi - IstBetrieb - funktioniert auch bis zur Auswahl Betrieb im Kombifeld.
Listenfeld - IstAnlage
Listenfeld - IstVerdichter

Private Sub IstBetrieb_AfterUpdate()
If Me!IstAnlage.Column(1) <> Me!IstBetrieb.Column(0) Then
Me!IstAnlage = Null
Me!IstVerdichter = Null
End If
If IsNull(Me!IstBetrieb) Then
Me!IstAnlage = Null
Me!IstVerdichter = Null
End If
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[Betrieb] = '" & Me![IstBetrieb] & "'"
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
Me!IstAnlage.Requery
Me!IstVerdichter.Requery
End Sub
*********************************************************************************
Doch dann verliesen sie ihn. Ich komme immer wieder zum Fehler 3070
ungültiger Feldname oder Ausdruck.

Private Sub IstAnlage_AfterUpdate()
If Me!IstVerdichter.Column(1) <> Me!IstAnlage.Column(0) Then
Me!IstVerdichter = Null
End If
If IsNull(Me!IstAnlage) Then
Me!IstVerdichter = Null
End If
Me!IstAnlage.Requery
Me!IstVerdichter.Requery
Dim rs As Object
Set rs = Me.Recordset.Clone



ich nehme mal an, dass Dein Fehler in dieser Zeile auftritt:

rs.FindFirst "[frm_Hauptformular]![Frm_Anlagen]![Anl_Nr]= " &
Me![Frm_Anlagen]![Anl_Nr] & ""



Ersetz mal den Bezug auf das Steuerelement auf dem Formular direkt durch
den Namen des Feldes in der Tabelle:

rs.FindFirst "[Anl_Nr]= " & Me![Frm_Anlagen]![Anl_Nr]


CU
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen