Listbox Listindex in Access

Dieses Thema im Forum "MS Access" wurde erstellt von MarcoSveda, 3 Februar 2015.

  1. MarcoSveda

    MarcoSveda
    Expand Collapse
    New Member

    Registriert seit:
    3 Februar 2015
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo zusammen,

    nachdem ich heute das erste Mal über die Notwendigkeit gefallen bin, etwas in Access machen zu müssen (Excel oder php gehen leider nicht), möchte ich gern nach Eurer Hilfe fragen und sage schon mal "Danke" für Eure Zeit.

    Folgende Problematik:
    Ich habe eine Access-Datenbank und dazu eine UserForm in VBA. Ich möchte gern Werte aus der Datenbank auslesen, dabei den ersten in der Listbox anzeigen (es handelt sich dabei um Typbezeichnungen und jeweilige Ausstattungsmerkmale), die jeweils in den anderen Spalten liegenden Daten in Textfeldern, die in der UserForm liegen, anzeigen lassen, abhängig davon, welche Zeile in der Listbox ausgewählt ist. Ich suche nach einer analogen Lösung zu dem, was ich in Excel so machen würde:

    Public Sub listbox_click()
    Set sh = Sheets("daten_fde")
    i = listbox.ListIndex + 1
    variable1 = sh.Cells(i, 1)
    variable2 = sh.Cells(i, 2)
    End Sub


    Ich habe bereits (und vermutlich ist da das Problem, dass ich da nen Hauer drin habe) die Funktion fertig, mit der die Daten in die Listbox und die anderen Felder geladen werden, aber nun hakt es bei dem Teil mit dem Anklicken der Werte in der Listbox, damit ich "scrollen" kann.

    Ach ja, hier die Funktion:

    Dim i As Long
    Set myDataBase = OpenDatabase("Datenbank2_1.mdb")
    Set myactiverecord = myDataBase.OpenRecordset("daten_fde", dbOpenForwardOnly)
    liste_artikel.ColumnCount = myactiverecord.Fields.Count

    i = 0
    Do While Not myactiverecord.EOF
    liste_artikel.AddItem
    liste_artikel.List(i, 0) = myactiverecord.Fields("Artikel")
    Zugangskontrolle_PIN = myactiverecord.Fields("6430010")
    Zugangskontrolle_RFID = myactiverecord.Fields("6430025")
    Nutzerdatenanalyse = myactiverecord.Fields("6431005")
    Crash_Detection = myactiverecord.Fields("6432005")
    Online_GPRS = myactiverecord.Fields("6433005")
    BT_Stick = myactiverecord.Fields("6434005")
    Zubehoer = myactiverecord.Fields("Tischleser")

    i = i + 1

    myactiverecord.MoveNext
    Loop

    lbl_Exit:
    Exit Sub

    End Sub

    Kann mir jemand einen TIpp geben, ob ich konkret etwas falsch mache (und was) oder wo ich evtl. einen Hinweis finde, wie ich das umsetzen kann, was ich gern möchte?

    Vielen Dank schon mal vorab für Eure Hilfe.

    Marco
     
  2. RO_SCH

    RO_SCH
    Expand Collapse
    Moderator

    Registriert seit:
    27 August 2006
    Beiträge:
    2.463
    Zustimmungen:
    14
    Hi Marco,

    da 'myactiverecord' ein RecordSet ist, das die über einen SQL-String abgefragten Daten beinhaltet, kannst du die Daten auch an ein Array übergeben, welches du an die List-Eigenschaft der ListBox übergeben kannst.

    Dim avarDataRS As Variant
    avarDataRS = myactiverecord.GetRows()
    ListBox1.List = avarDataRS

    Oder so ähnlich ... natürlich nur, wenn du immer alle Daten des RecordSet brauchst

    Scrollen in einer ListBox ... mit dem Mausrad ? Das funktioniert in VBA nativ nicht.
    Geht schon, ist aber verdammt viel API-Programming nötig.
     
Die Seite wird geladen...

Diese Seite empfehlen