Forum: PC-Programmierung Access 2007 VBA


von Tetra (Gast)


Lesenswert?

Hallo Zsuammen,

Ich erstelle gerade ein Formular in Access. Jetzt hänge ich an einen 
Punkt fest wo ich eure Hilfe brauche. :)

Ich habe 2 Kombinationsfelder.

"Familienstand"    = Feld 1
"Lohnsteuerklasse" = Feld 2

In Feld 1 kann man "ledig,verheiratet,geschieden" auswählen. In Feld 2 
die Zalhen 1-6.

So jetzt habe ich folgendes vor. Ich will es jetzt so einrichten das, 
wenn "ledig" ausgewählt wird, in Feld 2 nur die Zahlen 1 und 2 
auswählbar sind. Bei "verheiratet" die Zahlen 3,4 oder 5 und bei 
"geschieden" nur 1 oder 2.

Ich bin jetz so vorgegangen, dass ich bei Feld 1 unter Ereignis "Bei 
Aktualisierung" eine Code in VBA geschrieben habe.

Der Sieht wie folgt aus:


Option Compare Database

Private Sub Familienstand_AfterUpdate()
Dim i, j As Integer
i = 0
j = 0
Lohnsteuerklasse = vbemptystring

For i = 0 To 3 Step 1
If Familienstand.ItemData(i) = Familienstand.SelText Then
j = i
End If



Next i

Select Case j
Case Is = 0
Lohnsteuerklasse = "3;4;5"
Case Is = 1
Lohnsteuerklasse = "1;2"
Case Is = 2
Lohnsteuerklasse = "1;2"
End Select




End Sub


Wenn ich es aber jetzt Teste kommt folgende Fehlermeldung:

Laufzeitfehler `-2147352567 (80020009)
Sie haben einen Wert eingegeben,der für dieses Feld nicht gültig ist.


Ich habe schon google gefragt, aber ich habe irgendwie nichts gefunden. 
Ich hoffe Ihr könnt mir helfen.
Wenn der Fehler zu einfach ist, dann gebt mir einfach nur einen Tipp. :D 
:)


Vielen Dank im Vorraus schon mal.
Gruß Tetra

von Carsten G. (carry)


Lesenswert?

Hallo,

so aus dem Stegreif: Lohnsteuerklasse.Rowsource = "1;2"


Carsten

von Tom (Gast)


Lesenswert?

...so läufts... sollte nur noch ein wenig "aufgehübscht" werden:

Private Sub Kombinationsfeld0_Change()
   Familienstand = Kombinationsfeld0.Value
   Select Case Familienstand
      Case Is = "ledig"
         Kombinationsfeld2.RowSource = "1;2"
      Case Is = "verheiratet"
         Kombinationsfeld2.RowSource = "3;4;5"
      Case Is = "geschieden"
         Kombinationsfeld2.RowSource = "1;2"
   End Select
End Sub

von Tom (Gast)


Lesenswert?

bei Dir dann natürlich entsprechend:

Private Sub Familienstand_Change()
   Select Case Familienstand.Value
      Case Is = "ledig"
         Lohnsteuerklasse.RowSource = "1;2"
      Case Is = "verheiratet"
         Lohnsteuerklasse.RowSource = "3;4;5"
      Case Is = "geschieden"
         Lohnsteuerklasse.RowSource = "1;2"
   End Select
End Sub

von Tetra (Gast)


Lesenswert?

Vielen Dank für die Hilfe. Es hat .RoSource gefehlt.

@Tom
vielen dank für die Idee. Jetzt ist es weniger Quellcode und läuft genau 
so gut. :)

Super Forum....:)

Gruß Tetra

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.