Kombinationsfeld und ComboBox aus DB füllen (rowsource, additem)

R

Roland Huber

Hallo alle zusammen,

ich sitze nun schon seit gestern früh vor dem Rechner und versuche ein
Kombinationsfeld mit Einträgen aus einer Spalte einer Access BD zu
füllen.

Die Beiträge in den Foren haben mich leider auch nicht weiter
gebracht.

Mein Problem:

Ich kann ein Kombinationsfeld mit Kombinationsfeld0.Rowsource =
sqlstring füllen.
Ich kann dieses Kombinationsfeld aber nicht leeren und auch keine
Einträge "von Hand" hinzufügen, da es die Methoden .Clear und .AddItem
hier nicht gibt.

Nun hab ich es mit einer ComboBox aus MS Forms 2.0 versucht.

Hier gibt es .additem und .clear. Nun weiß ich nicht wie ich die Daten
aus meiner Spalte in die ComboBox bekomme.

*verzweifel*

Hier mein Code:

Für die Combobox:

ComboBox0.clear
Dim dbs As Database, rst As Recordset
Dim strSQL As String

' Verweis auf aktuelle Datenbank holen.
Set dbs = CurrentDb
strSQL = "SELECT..."
Set rst = dbs.OpenRecordset(strSQL)
Do While Not rst.EOF
ComboBox0.AddItem rst.Fields("Bezeichung").Value
Loop
Set dbs = Nothing

-> Geht leider nicht. Es kommen nie Werte in meiner ComboBox an

Für das Kombinationsfeld:

Kombinationsfeld0.rowsource= "Select..."
->das geht

Kombinationsfeld0.clear
->geht nicht.

Und Kombinationsfeld0.additem "Alle"
->geht auch nicht.

Ich danke euch im Voraus für jede Hilfe. Ob Kombinationsfeld oder
ComboBox.

Roland
 
J

Jim Carlock

Guten tag!

Hallo Roland.

Mein Deutsch ist nicht gut. Aber ich versuche,
heraus zu helfen.

# 1. Das combobox ist eine gute Wahl. Nicht sicher,
wenn Sie ein vollziehbares VB entwickeln oder VBApp
innerhalb des Access verwenden, zwar. Das Material
forms2.0 ist wirklich kühl, aber Sie erhalten nicht
eine Lizenz für Wiederverteilung mit ihr. Sie gerade,
informierend das.

Wenn Sie planen, das Programm neuzuverteilen, sollten
Sie das regelmäßige combobox benutzen, das mit VB6 kommt.

Sie sollten nicht das RowSource, denn die Gründe
verwenden, die Sie erwähnten. Sie verlieren die
Fähigkeit hinzuzufügen und alles, das in diesem Respekt
redigiert wird, wird innerhalb der Datenbank außerdem
redigiert.

Wenn Sie die ".AddItem" Methode verwenden, müssen Sie
die Aufzeichnungen überprüfen, um zu sehen, wenn sie
UNGÜLTIGE Aufzeichnungen sind, weil das "ComboBox"
Störung heraus wird, wenn Sie versuchen, NULL in sie
zu setzen:

If IsNull(rs.Fields("Name").Value) Then
Combo1.AddItem ""
Else
Combo1.AddItem rs.Fields("Name").Value
End If

Informieren Sie uns, wenn wir geholfen haben!

--
Jim Carlock
http://www.microcosmotalk.com/
Post replies to the newsgroup.


Hallo alle zusammen,

ich sitze nun schon seit gestern früh vor dem Rechner und versuche ein
Kombinationsfeld mit Einträgen aus einer Spalte einer Access BD zu
füllen.

Die Beiträge in den Foren haben mich leider auch nicht weiter
gebracht.

Mein Problem:

Ich kann ein Kombinationsfeld mit Kombinationsfeld0.Rowsource =
sqlstring füllen.
Ich kann dieses Kombinationsfeld aber nicht leeren und auch keine
Einträge "von Hand" hinzufügen, da es die Methoden .Clear und .AddItem
hier nicht gibt.

Nun hab ich es mit einer ComboBox aus MS Forms 2.0 versucht.

Hier gibt es .additem und .clear. Nun weiß ich nicht wie ich die Daten
aus meiner Spalte in die ComboBox bekomme.

*verzweifel*

Hier mein Code:

Für die Combobox:

ComboBox0.clear
Dim dbs As Database, rst As Recordset
Dim strSQL As String

' Verweis auf aktuelle Datenbank holen.
Set dbs = CurrentDb
strSQL = "SELECT..."
Set rst = dbs.OpenRecordset(strSQL)
Do While Not rst.EOF
ComboBox0.AddItem rst.Fields("Bezeichung").Value
Loop
Set dbs = Nothing

-> Geht leider nicht. Es kommen nie Werte in meiner ComboBox an

Für das Kombinationsfeld:

Kombinationsfeld0.rowsource= "Select..."
->das geht

Kombinationsfeld0.clear
->geht nicht.

Und Kombinationsfeld0.additem "Alle"
->geht auch nicht.

Ich danke euch im Voraus für jede Hilfe. Ob Kombinationsfeld oder
ComboBox.

Roland
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top