Discussion:
A00 VBA ComboBox (ungebunden) : im Code auf ein Element setzen
(zu alt für eine Antwort)
Martin Bärtschi
2008-11-07 10:51:01 UTC
Permalink
Guten Tag RatgeberIn

Voraussetzung:
ungebundene Combobox "AuswBNr"
- Rowsource ist eine Abfrage mit 2 Feldern: BestellNr (Tex), BestellKey
(Long)
- BestellKey ist die gebundene Spalte
- TmpBestellKey (Long) enthält den zuletzt verwendeten Bestellkey

Frage:
Ich möchte Im VBA-Code "AuswBNr" auf ein bestimmtes Element setzten.
Versucht habe ich es mit

me.AuswBnr.value = TmpBestellKey

Nach diesem Befehl wird zwar das gewünschte Element im Formular richtig
angezeigt, wenn ich aber dann mit

me![AuswBNr].Column(1) den BestellKey haben will, bekomme ich nicht den
dazugehörigen Wert!

Was tun?
Danke für Eure Tips
Gruss Martin
Mark Doerbandt
2008-11-07 11:06:11 UTC
Permalink
Hallo, Martin,
Post by Martin Bärtschi
ungebundene Combobox "AuswBNr"
- Rowsource ist eine Abfrage mit 2 Feldern: BestellNr (Tex), BestellKey
(Long)
- BestellKey ist die gebundene Spalte
- TmpBestellKey (Long) enthält den zuletzt verwendeten Bestellkey
Ich möchte Im VBA-Code "AuswBNr" auf ein bestimmtes Element setzten.
Versucht habe ich es mit
me.AuswBnr.value = TmpBestellKey
Nach diesem Befehl wird zwar das gewünschte Element im Formular richtig
angezeigt, wenn ich aber dann mit
me![AuswBNr].Column(1) den BestellKey haben will, bekomme ich nicht den
dazugehörigen Wert!
ich verstehe noch nicht so ganz, was Du willst. Wenn Bestellkey die
gebundene Spalte ist, greifst Du doch mit Me!AuswBnr direkt darauf zu
und brauchst kein Column()...

Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.
Karl Donaubauer
2008-11-07 11:20:56 UTC
Permalink
Post by Martin Bärtschi
ungebundene Combobox "AuswBNr"
- Rowsource ist eine Abfrage mit 2 Feldern: BestellNr (Tex), BestellKey
(Long)
- BestellKey ist die gebundene Spalte
- TmpBestellKey (Long) enthält den zuletzt verwendeten Bestellkey
Ich möchte Im VBA-Code "AuswBNr" auf ein bestimmtes Element setzten.
Versucht habe ich es mit
me.AuswBnr.value = TmpBestellKey
Nach diesem Befehl wird zwar das gewünschte Element im Formular richtig
angezeigt, wenn ich aber dann mit
me![AuswBNr].Column(1) den BestellKey haben will, bekomme ich nicht den
dazugehörigen Wert!
...
Sondern was?
Dir ist klar, dass Column bei 0 = 1. Spalte anfängt?

Also sollte deiner Kombi-Beschreibung nach

Me!AuswBNr.Column(0) die BestellNr liefern
und
Me!AuswBNr.Column(1) den BestellKey.
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
Peter Doering
2008-11-07 11:22:20 UTC
Permalink
Hallo,
Post by Martin Bärtschi
ungebundene Combobox "AuswBNr"
- Rowsource ist eine Abfrage mit 2 Feldern: BestellNr (Tex), BestellKey
(Long)
- BestellKey ist die gebundene Spalte
- TmpBestellKey (Long) enthält den zuletzt verwendeten Bestellkey
Ich möchte Im VBA-Code "AuswBNr" auf ein bestimmtes Element setzten.
Versucht habe ich es mit
me.AuswBnr.value = TmpBestellKey
Nach diesem Befehl wird zwar das gewünschte Element im Formular richtig
angezeigt, wenn ich aber dann mit
me![AuswBNr].Column(1) den BestellKey haben will, bekomme ich nicht den
dazugehörigen Wert!
Die erste Spalte ist Column(0), die zweite Column(1). Du willst den
Bestellkey haben, der in der Tat in Column(1) steht. Allerdings ist das
gleichzeitig die gebundene Spalte, woraus sich ergibt, dass der Value genau
dem entspricht, was du nachher lesen gehst.

Oder willst du die BestellNr?

Dann musst du Column(0) lesen.

Gruss - Peter
--
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
Martin Bärtschi
2008-11-07 11:54:04 UTC
Permalink
Hallo Mark, Karl & Peter
Post by Martin Bärtschi
Ich möchte Im VBA-Code "AuswBNr" auf ein bestimmtes Element setzten.
Versucht habe ich es mit
me.AuswBnr.value = TmpBestellKey
Nach diesem Befehl wird zwar das gewünschte Element im Formular richtig
angezeigt, wenn ich aber dann mit
me![AuswBNr].Column(1) den BestellKey haben will, bekomme ich nicht den
dazugehörigen Wert!
Das mit den Column(index) ist mir klar (Spalte 1: index = 0).

Habe mich wohl zu vereinfacht ausgedrückt!
Die Abfrage enthält insgesamt 8 Spalten.
Das Problem ist, dass wenn ich
me.AuswBnr.value = TmpBestellKey
ausgeführt habe, zwar die richtige BestellNr im Formular angezeigt wird,
aber wenn ich dann die verschiedenen Spalten mittels
me![AuswBNr].column(2 oder 3 oder 4 u.s.w.) ansprechen will, ist darin
nichts zu finden (Null-Werte), und das liegt nicht an der Abfage.

Bis jetzt habe ich mit folgendem code operiert, welcher funktioniert:
For i = 0 To Me![AuswBNr].ListCount - 1
Me![AuswBNr] = Me![AuswBNr].ItemData(i)
If Me![AuswMischGr].Column(1) = TmpBestellKey _
Then
Exit For
End If
Next

Nur bei 7000 Elementen dauert das eben!

desshalb suche eine Methode die das viel schneller erledigt!
Für Tips bin ich dankbar!
Gruss Martin
Wolfgang Badura
2008-11-07 19:10:55 UTC
Permalink
Hallo Martin!
Post by Martin Bärtschi
Die Abfrage enthält insgesamt 8 Spalten.
Verstehe ich Dich richtig, daß Du eine ungebundene Kombibox dazu verwendest
auf die einzelnen Felder einer Abfrage zuzugreifen?
Wäre es da nicht einfacher, mit einem Unterformular zu arbeiten,
welches die acht Spalten der Abfrage anzeigt, welche(s) über einen
BestellKey mit dem Hauptformular verknüpft ist
und auf die Du dann auch über die Formulareigenschaft des UF zugreifen
kannst.
Dann gibt es da noch die Domänenfunktion DLookup bzw DoCmd.FindRecord um
Daten aus einem Recordset bzw. einem (Unter-)Formular anzusprechen.
Aber vielleicht sehe ich Dein Problem zu einfach.

Wolfgang
Peter Doering
2008-11-07 20:00:03 UTC
Permalink
Hallo,
"Martin Bärtschi" ...
Post by Martin Bärtschi
Die Abfrage enthält insgesamt 8 Spalten.
Verstehe ich Dich richtig, daß Du eine ungebundene Kombibox dazu verwendest
auf die einzelnen Felder einer Abfrage zuzugreifen?
Wäre es da nicht einfacher, mit einem Unterformular zu arbeiten,
welches die acht Spalten der Abfrage anzeigt, ...
Wenn alle 8 Spalten dauerhaft sichtbar sein sollen, ja. Ansonsten, es muss
nicht mal sein, dass alle Spalten bei aufgeklappter Kombi sichtbar sind,
gelesen werden sie trotzdem. Damit hat man die Moeglichkeit, relativ
codefrei auf Daten zugreifen zu koennen, die in der Recordsource des
Formulars nicht vorhanden sind.

Gruss - Peter
--
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
Wolfgang Badura
2008-11-08 07:28:29 UTC
Permalink
Hallo Peter!
Post by Peter Doering
Wenn alle 8 Spalten dauerhaft sichtbar sein sollen, ja.
Hmm...
Lassen wir jetzt noch Martin zu Wort kommen, vielleicht findet er den
Vorschlag brauchbar.
Wolfgang

Martin Bärtschi
2008-11-07 12:22:01 UTC
Permalink
Hallo nochmasl

alles zurück funktioniert blenden. Kleiner Fehler in der Testanordnung ;-)
Bin wohl etwas zu müde!

Gruss Martin
Loading...