Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Voneinander abhängige Comboboxen

Begonnen von leonardokroeger, Juni 27, 2011, 18:30:56

⏪ vorheriges - nächstes ⏩

leonardokroeger

Hallo zusammen,
ich bin ein ziemlich blutiger Anfänger in Access 2010, bislang aber immer recht gut weitergekommen. Nun habe ich aber ein Problem, dass ich nicht lösen kann. Deswegen, weil ich 1. die genau gleiche Problembeschreibung samt funktionierendem Lösungsansatz schon woanders gefunden habe und ich das Problem 2. schonmal gelöst hatte, dann aber einen sich selbst im Weg stehenden Required-Wert für ein betroffenes Feld gesetzt hatte und plötzlich nichts mehr ging. Aber erstmal Schritt für Schritt:

Ich möchte gemäss dieser Anleitung http://office.microsoft.com/en-us/access-help/basing-one-combo-box-on-another-HA001173058.aspx in einem Formular (FormHistorico) die Liste zweier Comboboxen (IDContato und IDProjeto) vom gewählten Wert einer ersten Combobox (IDParceiro) abhängig machen:

Private Sub Form_Current()
   Me.IDContato.Requery
   Me.IDProjeto.Requery
End Sub
Private Sub IDParceiro_AfterUpdate()
   Me.IDContato = Null
   Me.IDContato.Requery
   Me.IDContato = Me.IDContato.ItemData(0)
   
   Me.IDProjeto = Null
   Me.IDProjeto.Requery
   Me.IDProjeto = Me.IDProjeto.ItemData(0)
End Sub


Die beiden Comboboxen holen sich ihre Auswahl mithilfe ihrer jeweiligen RowSources wie folgt:
SELECT TblContatos.IDContato, TblContatos.IDParceiro, TblContatos.PrimeiroNome, TblContatos.SobreNome
FROM TblContatos
WHERE (((TblContatos.IDParceiro)=[Formulários]![FormHistorico]![IDParceiro]));


SELECT TblProjetos.IDProjeto, TblProjetos.Descricao, TblProjetos.IDParceiro
FROM TblProjetos
WHERE (((TblProjetos.IDParceiro)=[Formulários]![FormHistorico]![IDParceiro]));


Bei der Erfassung einer Kommunikation soll nach der Auswahl der kontaktierten Institution nur entsprechende Kontaktpersonen und Projekte aufgelistet werden, um Eingabefehler zu vermeiden.

Ich bekomme aber immer den "Geben Sie den Parameterwert ein" (oder so ähnlich, benutze leider nicht die dt. Version, siehe Feher oben).

Wo mache ich was falsch (oder wo könnte sich anderweitig ein Fehler eingeschlichen haben)? Gibt es bessere Herangehensweisen für dieses ja eig. simple Problem?

Vielen Dank für die erste Hilfe mit Access und entschuldigt die nicht immer eindeutigen Bezeichnungen v.a. der Comboboxen!  :)

DF6GL

Hallo,

1) das Form_Current-Ereignis ist nicht so ganz geeignet in diesem Zusammenhang. Benutze besser:

Sub IDContato_Enter()
Me!IDContato.Requery
End Sub

dito mit "IDProjeto"


"Me.IDContato = Null" und "Me.IDProjeto = Null"  sind überflüssig..



2)Schreibe statt "Formulários"  "Forms"  in der SQL.


siehe  auch:  http://www.donkarl.com/?FAQ4.36

database

Hallo,

prinzipiell kann ich keinen Fehler erkennen, wenn meine Annahme richtig ist, dass du am Formular insgesamt 3 Komboboxen stehen hast

M.E. ist der Fehler in den WHERE-Klauseln der Abfragen zu suchen.
Hier KANN es sein, dass entweder die Formularnamen, die Formularfeldnamen oder die Feldnamen der Tabelle nicht stimmen.

Ist die gebundene Spalte der Kombo 'IDParceiro' auch tatsächlich die Tabellenspalte 'IDParceiro' der entsprechenden Herkunftstabelle?

Was würde passieren, wenn du statt untenstehendem Verweis in beiden Abfragen einen EXISITERENDEN Fremdschlüsselwert eingeben würdest - also einen in der Tabelle TblProjetos und TblContatos vorkommenden Wert für IDParceiro?
[Formulários]![FormHistorico]![IDParceiro]

HTH

leonardokroeger

super, das hat perfekt geklappt. ich bin beeindruckt (und etwas von microsofts seite enttäuscht).

vielen dank jedenfalls für die schnelle und präzise antwort!

leonardokroeger

Es lag eindeutig am Form_Current-Ereignis, das mir die MS-Support-Seite empfohlen hatte.