Ich möchte ein Kombinationsfeld via VBA A97 mit einträgen aus einem
Recordset füllen.
Wie kann ich die aus dem Recordset erhaltenen Daten an das Listenfeld
weitergeben?
Gruss Bruno
Bei dem Kombinationsfeld stellst Du den Herkunftstyp auf Werteliste. Dann
kannst Du die Daten aus dem Recordset mit Semikolon getrennt als Datenquelle
angeben => Fertig.
Hope that helps - Marcus
Bruno Brodmann <Bruno.B...@InterSolutions.ch> schrieb in im Newsbeitrag:
881bfi$hlv$1...@news1.sunrise.ch...
ich habe folgendes versucht :
me!kombinationsfeld = "aaa;bbb;ccc"
me!kombinationsfeld ="aaa";"bbb";"ccc" '--> syntax fehler
dabei war das kombinationsfeld immer auf Wertliste eingestellt.
Mache ich sonst noch einen Fehler oder warum werden die einträge dann
immer in der gleichen Zeile angezeigt und nicht als einzelne Elemente
zum auswählen.
Das heisst ich sehe im kombinationsfeld dann folgendes : "aaa;bbb;ccc"
Gruss Bruno
>me!kombinationsfeld = "aaa;bbb;ccc"
>
>me!kombinationsfeld ="aaa";"bbb";"ccc" '--> syntax fehler
Me!Kombinationsfeld = """aaa"";""bbb"";""ccc"""
Am Besten probierst Du solche Dinge immer im Debug-Fenster (Strg-G) aus,
wenn Du die obige Wertliste dort mit führendem Fragezeichen eingibst, zeigt
der Debugger den string, wie er kompiliert aussieht.
HTH,
Olaf
Bruno Brodmann wrote:
>
> me!kombinationsfeld ="aaa";"bbb";"ccc" '--> syntax fehler
>
War das nicht :
me!kombinationsfeld.ROWSOURCE ="aaa";"bbb";"ccc" ?
Schau Dir doch mal in der Hilfe die "Rowsource-Eigenschaften" an.
Hoffe geholfen zu haben,
Claus Schlehhuber
Thomas
>> Me!Kombinationsfeld = """aaa"";""bbb"";""ccc"""
>Die Werteliste muss an die RowSource-Eigenschaft übergeben werden.
>me.kombinationsfeld.RowSource = "aaa;bbb;ccc"
Jau, jetzt haben wir uns wohl alle mal vertippt. Richtig ist:
Me.Kombinationsfeld.RowSource = """aaa"";""bbb"";""ccc"""
(innerhalb VBA)
:-)
Bis dann,
Olaf
Me!Kombinationsfeld.rowsource = "'aaa';'bbb';'ccc'"
Gruss Urs
Olaf Rabbachin schrieb:
Servus
Nur schnell auf einer meiner Db's ausgeschnitten.
Nur zur Anregung gedacht !!!
Codeteile entfernen, andere Variable deklarieren, Fehlerabfangroutine
hinzufügen mußt du selbst machen.
Nicht vergessen beim Kombinationsfeld als
Herkunftstyp: Mylist aber OHNE () eingeben !
Static Function Mylist(Feld As Control, ID&, Zeile&, Spalte&, Code%)
Static Wgns$(0 To 100, 0 To 4), Anzahl, Db As Database, Ta As Recordset
Select Case Code
Case LB_INITIALIZE
Anzahl = 0
Wgns(Anzahl, 0) = "Nr."
Wgns(Anzahl, 1) = "Typ"
Wgns(Anzahl, 2) = "Flags"
Wgns(Anzahl, 3) = "geändert am"
Wgns(Anzahl, 4) = "geändert von"
Set Db = CurrentDb()
Set Ta = Db.OpenRecordset("Select Type", DB_OPEN_DYNASET)
If Not Ta.EOF Then Ta.MoveFirst
While Not Ta.EOF And Anzahl < 99
Anzahl = Anzahl + 1
Wgns(Anzahl, 0) = Ta!WgNr
Wgns(Anzahl, 1) = Ta!Typ
Wgns(Anzahl, 2) = Ta!Flags
Wgns(Anzahl, 3) = Format(Ta!Letzte_Aenderung, "dd-mm-yy")
Wgns(Anzahl, 4) = Ta!Geaendert_durch
Ta.MoveNext
Wend
Ta.Close: Set Ta = Nothing: Set Db = Nothing
If Anzahl > 0 Then Mylist = True Else Mylist = False
Case LB_OPEN: Mylist = Timer
Case LB_GETROWCOUNT: Mylist = Anzahl + 1
Case LB_GETCOLUMNCOUNT: Mylist = 5
Case LB_GETCOLUMNWIDTH
Select Case Spalte '1 Twip = 0,001763888 cm
Case 0: Mylist = 500 '0,88194 cm
Case 1: Mylist = 500 '0,88194 cm
Case 2: Mylist = 1800 '3,17500 cm
Case 3: Mylist = 1400 '2,46944 cm
Case 4: Mylist = 1500 '2,64583 cm
Case Else: Mylist = -1 '10,54166 cm
End Select
Case LB_GETVALUE ' Wird zur Laufzeit oft aufgerufen!
Select Case Spalte
Case 0: Mylist = Wgns(Zeile, 0)
Case 1: Mylist = Wgns(Zeile, 1)
Case 2: Mylist = Wgns(Zeile, 2)
Case 3: Mylist = Wgns(Zeile, 3)
Case 4: Mylist = Wgns(Zeile, 4)
End Select
Case LB_END
For Anzahl = 1 To 100
Wgns(Anzahl, 0) = "": Wgns(Anzahl, 1) = "": Wgns(Anzahl, 2) = ""
Wgns(Anzahl, 3) = "": Wgns(Anzahl, 4) = ""
Next Anzahl
End Select
End Function
mfg K. Prucha
Hallo Bruno!
Das ist eine neue Tolle Idee, die du gezeigt hast.
So habe ich es noch nie probiert. Es wird Zeit.
Mehrdad
>Bruno Brodmann schrieb in Nachricht <881bfi$hlv$1...@news1.sunrise.ch>...
>>
>
>Nur schnell auf einer meiner Db's ausgeschnitten.
>Nur zur Anregung gedacht !!!
>Codeteile entfernen, andere Variable deklarieren, Fehlerabfangroutine
>hinzufügen mußt du selbst machen.
>
>Nicht vergessen beim Kombinationsfeld als
>Herkunftstyp: Mylist aber OHNE () eingeben !
>
>Static Function Mylist(Feld As Control, ID&, Zeile&, Spalte&, Code%)
> Static Wgns$(0 To 100, 0 To 4), Anzahl, Db As Database, Ta As Recordset
> Select Case Code
> Case LB_INITIALIZE
> Anzahl = 0
> Wgns(Anzahl, 0) = "Nr."
> Wgns(Anzahl, 1) = "Typ" ........