hi!
ich habe eine Datenbank mit einem Eingabeformular, in dem man (bisher)
3 kombinierte/mehrstufige Auswahl-bzw Kombi-felder hatte.
Diese waren Abteilung, daraus Kostenstelle, und daraus Baugruppe.
Als Prozedur war folgende hinterlegt:
Option Compare Database
Option Explicit
Private Sub Baugruppe_AfterUpdate()
If Not IsNull(Me!Baugruppe) Then
Me!BaugruppeID = Me!Baugruppe.Column(0)
Me!Bezeichnung = Me!Baugruppe.Column(1)
Me!KSt = Me!Kostenstelle.Column(1)
End If
End Sub
Private Sub Baugruppe_Enter()
On Error Resume Next
If IsNull(Me!Kostenstelle) Then
MsgBox „Vorher Kostenstelle auswählen!“, vbExclamation
Me!Kostenstelle.SetFocus
End If
End Sub
Private Sub Kostenstelle_AfterUpdate()
If Not IsNull(Me!Kostenstelle) Then
Me!Baugruppe.RowSource = _
„SELECT DISTINCTROW BaugruppeID, Bezeichnung FROM qryBaugruppe“ & _
IIf(Me!Kostenstelle = 0, IIf(Me!Abteilung = 0, „“, _
" WHERE AbteilungID = " & Me!Abteilung), _
" WHERE KostenstelleID = " & Me!Kostenstelle) & " ORDER BY Bezeichnung"
Else
Me!Baugruppe.RowSource = „“
End If
Me!Baugruppe.Requery
Me!Baugruppe.Requery
Me!BaugruppeID = Null
Me!Bezeichnung = Null
End Sub
Private Sub Kostenstelle_Enter()
If IsNull(Me!Abteilung) Then
MsgBox „Vorher Abteilung auswählen!“, vbExclamation
Me!Abteilung.SetFocus
End If
End Sub
Private Sub Abteilung_AfterUpdate()
If Not IsNull(Me!Abteilung) Then
Me!Kostenstelle.RowSource = _
„SELECT DISTINCTROW KostenstelleID, Kostenstelle,KSTBEZ FROM qryKostenstelle“ & _
IIf(Me!Abteilung = 0, „“, " WHERE AbteilungID = 0 OR AbteilungID = " & Me!Abteilung) & " ORDER BY Kostenstelle"
Me!Baugruppe.RowSource = „“
Else
Me!Baugruppe.RowSource = „“
Me!Kostenstelle.RowSource = „“
End If
Me!Kostenstelle.Requery
Me!Baugruppe.Requery
Me!BaugruppeID = Null
Me!Bezeichnung = Null
End Sub
Nun soll ein weiteres Auswahlfeld darangehängt werden(Bauteil).
Dazu habe ich die vba-Prozedur ein wenig umgeschrieben. Bei der Auswahl im Formular klappt das aber nicht so ganz.
Ich kann zwar, wenn ich auf den Pfeil des Kombifeldes klicke ,mir meine Möglichkeiten anzeigen lassen, doch sobald ich eine davon anwähle, ist das Feld wieder leer.
Weiterhin gibt es noch 3 Textfelder, worin die ausgewählte Kostenstelle,Baugruppe bzw Bauteil angezeigt werden sollen.
Bei dem Bauteil klappt dieses jedoch ebenfalls nicht.
Liegt der Fehler in der folgenden vba-Prozedur?:
Schon einmal vielen Dank!!!
Option Compare Database
Option Explicit
Private Sub Bauteil_AfterUpdate()
If Not IsNull(Me!Bauteil) Then
Me!BaugruppeID = Me!Baugruppe.Column(0)
Me!Bezeichnung = Me!Baugruppe.Column(1)
Me!KSt = Me!Kostenstelle.Column(1)
Me!Bauteil = Me!Bauteil.Column(1)
End If
End Sub
Private Sub Baugruppe_Enter()
On Error Resume Next
If IsNull(Me!Kostenstelle) Then
MsgBox „Vorher Kostenstelle auswählen!“, vbExclamation
Me!Kostenstelle.SetFocus
End If
End Sub
Private Sub Baugruppe_AfterUpdate()
If Not IsNull(Me!Baugruppe) Then
Me!Bauteil.RowSource = _
„SELECT DISTINCTROW BauteilID, Bezeichnung FROM qryBauteil“ & _
IIf(Me!Baugruppe = 0, IIf(Me!Kostenstelle = 0, IIf(Me!Abteilung = 0, „“, _
" WHERE AbteilungID = " & Me!Abteilung), _
" WHERE KostenstelleID = " & Me!Kostenstelle), _
" WHERE BaugruppeID = " & Me!Baugruppe) & " ORDER BY Bezeichnung"
Else
Me!Bauteil.RowSource = „“
End If
Me!Bauteil.Requery
Me!Baugruppe.Requery
Me!Baugruppe.Requery
Me!BaugruppeID = Null
Me!Bezeichnung = Null
End Sub
Private Sub Kostenstelle_AfterUpdate()
If Not IsNull(Me!Kostenstelle) Then
Me!Baugruppe.RowSource = _
„SELECT DISTINCTROW BaugruppeID, Bezeichnung FROM qryBaugruppe“ & _
IIf(Me!Kostenstelle = 0, IIf(Me!Abteilung = 0, „“, _
" WHERE AbteilungID = " & Me!Abteilung), _
" WHERE KostenstelleID = " & Me!Kostenstelle) & " ORDER BY Bezeichnung"
Else
Me!Bauteil.RowSource
Me!Baugruppe.RowSource = „“
End If
Me!Bauteil.Requery
Me!Baugruppe.Requery
Me!Baugruppe.Requery
Me!BaugruppeID = Null
Me!Bezeichnung = Null
End Sub
Private Sub Kostenstelle_Enter()
If IsNull(Me!Abteilung) Then
MsgBox „Vorher Abteilung auswählen!“, vbExclamation
Me!Abteilung.SetFocus
End If
End Sub
Private Sub Abteilung_AfterUpdate()
If Not IsNull(Me!Abteilung) Then
Me!Kostenstelle.RowSource = _
„SELECT DISTINCTROW KostenstelleID, Kostenstelle,KSTBEZ FROM qryKostenstelle“ & _
IIf(Me!Abteilung = 0, „“, " WHERE AbteilungID = 0 OR AbteilungID = " & Me!Abteilung) & " ORDER BY Kostenstelle"
Me!Baugruppe.RowSource = „“
Else
Me!Bauteil.RowSource
Me!Baugruppe.RowSource = „“
Me!Kostenstelle.RowSource = „“
End If
Me!Bauteil.Requery
Me!Kostenstelle.Requery
Me!Baugruppe.Requery
Me!BaugruppeID = Null
Me!Bezeichnung = Null
End Sub