# Access VBA - Add/Remove Item geht bei Listbox nicht



## mailworm (12. Januar 2005)

Hallo und schönen guten Abend,

ich baue gerade in Access 97 an einer Datenbank und komme nun bei einer mehrspaltigen Listbox nicht weiter. 

Die Access Hilfe sagt, wenn eine Listbox ungebunden ist, dann kann man mit AddItem und RemoveItem Zeilen hinzufügen oder löschen. Access gibt einem ja auch immer eine Auswahl an Methoden und Eigenschaften vor, die für das gerade Eingegebene zur Verfügung stehen, ich bekomme jedoch kein "AddItem" oder "RemoveItem" angeboten, wenn ich wie unten referenziere (allg. Me.Listboxname.).

Ich könnte, so wie es scheint, die Listbox einfach an eine Tabelle binden. Ich möchte aber nicht alle Werte der Tabelle, sondern nur jene, die nicht schon in einer anderen Listbox enthalten sind dorthinein.


```
Dim rol_na As ListBox
    
    Dim dbs As Database, rst As Recordset, i As Integer
    Dim arr As Variant

    Set dbs = CurrentDb
    
    Set rol_na = Me.rollen_notassigned_list

    Set rst = dbs.OpenRecordset("SELECT rollen.rid, rollen.name FROM rollen")
    rst.MoveLast
    rst.MoveFirst
    
    arr = rst.GetRows(rst.RecordCount)

    For i = 0 To rst.RecordCount-1
        rol_na. XXX 'hier hakts.. und ich weiß nicht wieso
    Next i
```

Kann mir bitte jemand auf die Sprünge helfen?
Vielen Dank.

Thomas


----------



## NRFi (13. Januar 2005)

normal musst du additem ansprechen können. ist das denn ne normale listbox, oder hast du dich da evtl vertan?


----------



## Filone (13. Januar 2005)

Weil ein Listenfeld an eine Tabelle gebunden ist.

Somit müsstest Du mit Recordsets.Add oder Recordset.Delete arbeiten, um Listeneinträge zu entfernen oder hinzuzufügen.


----------



## mailworm (14. Januar 2005)

Hallo & guten Morgen,

also ich habe mittlerweile zumindest schonmal einen Fehler gefunden. Ich hatte eine normale Listbox ins Formular gepackt. Nun habe ich über "weitere Steuerelemente" "Microsoft Forms 2.0 Listbox" eine Listbox hinzugefügt, bei der mir im Code auch "AddItem" und "RemoveItem" angeboten werden. 

Nur hakt es bei folgendem Code an der Stelle -error-:

```
Private Sub Form_Load()
    Dim dbs As Database, rst As Recordset
    Dim lst As MSForms.Listbox
    Dim i As Integer

    Set dbs = CurrentDb
    Set rst = dbs.OpenRecordset("SELECT rollen.rid, rollen.name FROM rollen")
    Set lst = Me.ListeX '-error-

    rst.MoveLast
    rst.MoveFirst

    For i=0 To rst.RecordCount - 1
        MsgBox (rst.Fields("rid") & "-" & rst.Fields("name"))
        lst.Column(0, i) = rst.Fields("rid")
        lst.Column(1, i) = rst.Fields("name")
        rst.MoveNext
    Next i
End Sub
```

Der Fehler lautet "Datentypen unverträglich". Hat jemand eine Idee? Ich kapiers einfach nicht..

Vielen Dank & schönes Wochenende!
Thomas


----------



## rolf_h (8. März 2005)

Hallo Thomas,
ich arbeite zuhause und im Betrieb mit MS-ACCESS 2002 und habe zuhause eine kleine Applikation mit VBA-Programmcode in einer ACCESS-Datenbank entwickelt. Ich verwende das Objekt Listfeld und dazu die AddItem und RemoveItem-Methode. Es funktioniert.

Nehme ich diese Datenbank mit in den Betrieb funktioniert es nicht und zwar genau wegen dieser Methoden.

Ich bin mit meinen Recherchen noch nicht zu ende, aber ich habe herausgefunden, dass die Datenbank bei mir zu hause einen Bibliotheks-Verweis auf die 
"Microsoft Access 10.0 Object Library"
 hat und im Betrieb aber auf die 
"Microsoft Access 9.0 Object Library".

Mir scheint, dass es daran liegt. Ich habe es noch nicht ausprobiert, weil ich zuhause die eine Bibliothek und im Betrieb die andere nicht habe.

Ich sage Dir, wenn ich weiter bin und ich bitte auch Dich, mich auf dem Laufenden zu halten. Ok?

Herzliche Grüße Rolf
r.schiek@medianum.info


----------

