PDA

Vollständige Version anzeigen : Combofeld Werte übergeben


pezi45
13.07.2004, 10:51
Hoi!

Also ich hab hier wieder ne SQL Anweisung und will das dann gewisse Werte zum Aussuchen in ner Combobox drinner stehn - nur wie (also mit welchem Code) kann ich das jetzt der Combobox zuweisen?

lg

reinir
13.07.2004, 10:53
DeineCombobox.RecordSource = DeineSQLAnweisung

Thomas Dörr
13.07.2004, 10:58
Hallo,

leider ist deine Anfrage sehr undeutlich formuliert. (liegt wohl am schlechten Deutsch).

Der Combobox kannst du die Datenherkunft zuweisen, über die Eigenschaft Rowource.
Achte auf die Spaltenbreite, die gebundene Spalte und Spaltenanzahl. Auch das kann man über die entsprechende Eigenschaften einstellen.
Mehr dazu steht in der Onlinehilfe.

MfG

Thomas Dörr

pezi45
13.07.2004, 10:59
Hmm...

also ich hab jetzt folgendes:


MABox.RecordSource = SELECT [Kuerzel] FROM Authentifzierung WHERE Referat = Auswahl;


und dann bekomm ich immer nen Compile error!

jmc
13.07.2004, 11:25
Hi Pezi

du musst natürlich den SQL-String in Anführungszeichen setzen:

MABox.RecordSource = "SELECT [Kuerzel] FROM Authentifzierung WHERE Referat = Auswahl;"

Im Beispiel von Reini ist mit DeineSQLAnweisung entweder eine Variable gemeint, welche das SQL enthält oder dann eben eine Stringzuweisung wie oben beschrieben.

Ich frage mich dann auch, was Auswahl ist, so jedenfalls wie du es geschrieben hast, wäre das auch ein Feld innerhalt der Tabelle, das kann es wohl nicht sein...


Du solltest vielleicht noch etwas die Basic's von VBA anschauen ...

pezi45
13.07.2004, 11:30
Muss ich da noch was umstellen bei der Kombobox?

Denn ich bekomm nämlich nen Fehler das er die Methode bzw. das Datenobjekt nicht gefunden hat (Recordsource) wird markiert!????

jmc
13.07.2004, 11:50
Hi

sorry, das kommt davon, wenn man einfach kopiert.
Bei einem Listen- und Kombifeld heisst es nicht RecordSource (das ist beim Formular) sondern RowSource

pezi45
13.07.2004, 11:58
Jup das hab ich jetzt auch schon mitbekommen... aber trotzdem noch 2 Fragen:


1.) Jetzt bekomme ich folgenden Error "Datentypen in Kriterienausdruck unverträglich"

2.) Wie kann man immerhalb einer Kombobox genau einen Wert ansprechen? (INdex)???


lg
und Mahlzeit!

-------

Bin dann in ungefähr 30 min wieder da!

reinir
13.07.2004, 12:23
zuerst mal sorry wegen der RecordSource .....

ich nehm an, Dein erster Fehler "Datentypen in Kriterienausdruck unverträglich" resultiert daraus, dass Referat eine String Variable ist...



MABox.RowSource ="SELECT [Kuerzel] FROM Authentifzierung WHERE Referat = 'Auswahl';"


wenn du fix den Wert Auswahl abfragen willst, handelt es sich bei Auswahl um ein Formularfeld, dann so:


MABox.RowSource ="SELECT [Kuerzel] FROM Authentifzierung WHERE Referat = '" & Me!Auswahl & "'"


Wie kann man immerhalb einer Kombobox genau einen Wert ansprechen? (INdex)???

wenn Du jetzt Spalten meinst, dann über .Column(x)
x steht für die Spalte, fängt aber bei 0 an

pezi45
13.07.2004, 13:26
So!

Danke hab den fehler jetzt gefunden!

Aber jetzt hab ich weitere Troubles... (ich glaub das wird ein endlos Thread)

Also jetzt folgendes:

Wie kann ich überprüfen ob ein Optionsfeld gedrückt worden ist???


AD: Hier (klick mich) (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=133058) geht es mit Optionsgruppen weiter.

pezi45
14.07.2004, 07:42
Tja... dann bleiben wir halt hier:

Also wie man auf dem Bild sieht, hab ich 2 Komboboxen und ein Textfeld; Bei der ersten Kombobox wält man ein Referat aus, und bei der 2. die Mitarbeiter;

Wält man also beim 1. zB das Referat #2 aus, dann sind in der unteren kombobox die Mitarbeiter "a,b,c,d"; Dies passt ja noch alles;

Wählt man aber dan gleich dann zB #3 aus, dann ist der letzt markierte Mitarbeiterwert (also a oder b oder c oder d) noch in der Kombobox; deshalb wollte ich fragen wie man den inhalt dann komplett löschen kann???


lg

jmc
14.07.2004, 08:07
Hi Stefan

also beschreiben ist definitiv nicht deine Stärke!
Ich gebe mir mal die Mühe, das auseinanderzunehmen, in der Hoffnung, dass du beim nächsten Beschreiben daraus etwas lernst ...

die ersten beiden Abschnitte sind noch klar, wobei: du schreibst #2, man sieht aber in der Kombobox "08" - gehen wir also davon aus, dass #2 = 08 ist.

Nun der 3. Abschnitt: ich bin ja auch kein Deutscher, aber für mich ist zumindest der erste Teil ziemlich unverständlich.
Gehe ich mal davon aus, dass #3 nun z.b. 09 ist, und kombiniere ich noch mit meinem detektivischen Spürsinn aus dem Beitrag von weiter oben, dass du beim "After_Update" die RowSource für das Kombifeld "MABox" (Mitarbeiter) veränderst, dann würden doch in der Auswahl nun - ich vermute mal - z.b. Mitarbeiter "a,e,f,g" stehen.
Wurde vorher "a" gewählt, dann ist er jetzt noch ausgewählt, wurde aber "b" gewählt, dann sollte man nichts mehr sehen.
Egal: schreib im "After_Update" noch hinter das MABox.RowSource ...

MABox = NULL

pezi45
14.07.2004, 08:23
Ja... ziemlich richtig - also ich versuche es nochmals:

Wähle ich hier Referat 08 gibt es den Mitarbeiter n; Will ich aber dann ein anderes Referat wählen (zB 09) dann bleibt das vorher selektierte "n" stehen und erst wenn ich die Kombobox neu aufmache kommen die Mitarbeiter vom Referat 09 zum vorschein!

Thomas Dörr
14.07.2004, 20:01
Hallo,

ich finde es zwar immer noch schwierig zu folgen, aber versuche einmal folgendes:

Nach dem Ereignis After_update hast du bereits
MaBox = null stehen.

Schreibe danach ein MABox.requery.

Vielleicht hilft das.

Es ist übrigends eine grosse Hilfe, auch beim Testen einer Datenbank, wenigstens halbweges sinnvolle Testdaten zu verwenden. Anstelle von a,b,c.... Da blickt man auf die Dauer nicht mehr durch.
Auch ein vernüftiger Name für Steuerelemente kann die Sache deutlich erleichtern. Anstelle von MABox ein cbmMitarbeiter ist zwar mehr Tipparbeit hilft aber in 10 Jahren auch noch den Durchblick zu haben. Stichwort ungarische Notation


MfG
Thomas Dörr