Guten Morgen,
ich habe ein Problem mit VBA.
Ich habe 2 Kombinationfelder. Das zweite ist vom Ersten abhängig.
Folgender Code funktioniert aber nur einmal:
Private Sub cboneuRegion_AfterUpdate()
LandA
End Sub
Private Sub LandA()
Me!cboneuLand.RowSource = "SELECT IDLand,Land " & "FROM tblLand WHERE FKRegion = " & Nz(Me!cboneuRegion, 0)
End Sub
Wenn ich das Formular schließe und wieder öffne geht es nicht mehr.
Hallo Franz,
wenn du das Formular neu öffnest, steht dann die neue Region schon drin?
Oder anders: womit füllst du die Combobox beim Laden des Formulars?
Du solltest alle Comboboxen und alle Felder beim Laden des/eines Formulares mit Werten initialisieren.
Dein Ereignis AfterUpdate wird nur ausgelöst, wenn der Inhalt geändert wurde.
Ich hoffe dir geholfen zu haben?
Viel Erfolg
Manfred
warum so umständlich?
Wenn ich Dich richtig verstanden habe, möchtest Du im zweiten Kombinationsfeld nur Werte zur Auswahl haben, die zum ausgewählten Wert des ersten Feldes passen,
kurz, Du wählst im ersten Feld das Land, im zweiten die Region.
Hierzu brauchst Du gar kein VBA.
Du hast sicher in beiden Kombifeldern eine ID, die das Land identifiziert.
Wenn Du bei der Datenherkunft des zweiten Kombi-Feldes bei der IDLand als Kriterium „=[Kombifeld_1]![ID_Land]“ einträgst, so hast Du nach der Auswahl des Landes im zweiten
Kombifeld nur die dazu passenden Regionen zur Auswahl…
Sollte ich etwas falsch verstanden haben, bitte noch mal melden.
Ich kann den Fehler nicht nachvollziehen!
Bei mir funktioniert das ganze.
Mit welcher Version von ACCESS arbeitest du?
evtl eine Sicherheitseinstellung die den VBA Code nicht mehr zulässt?
Wenn du mir deine E-Mail Adresse mitteilst schicke ich
Meine Datenbank in der das ganze funktioniert.
Aber hier noch eine andere Möglichkeit (nun mit VBA):
Entferne erst einmal die WHERE-Klausel aus der Datensatzherkunft des Kombi-Feldes.
Datenherkunft (SQL) für beide Felder sieht dann etwa so aus:
SELECT Laender.IDLand, Laender.Land FROM Laender;
SELECT Region.IDLand, Region.Region FROM Region;
Beim Feld Region gibst Du bei „Nach Aktuzalisierung“ folgenden Code ein.
Me!Land = Me!Region
In beiden Feldern muss an erster Stelle (Datenherkunft) der Wert ‚IDLand‘ stehen.
Ist dies nicht der Fall, so musst Du auf die entsprechende Spalte verweisen - etwa so:
Me!Land = Me!Region.column(1) (=Nummer der Spalte - Spalte 1 = 0 !! etc.)
Ich habe das eben selbst ausprobiert. Auch das funktioniert bei mir.
Hallo Franz,
ich bin leider im Moment auf einer längeren Dienstreise und haben kein Access hier, wo ich das mal nachstellen könnte. Daher kann ich hier kurzfristig nicht weiterhelfen.
Grüße
achim