Access VBA Problem

  • #1

    Hallo,


    gibt es hier auch Cracks, die sich mit Access / VBA auskennen?


    Ich habe da ein Problem mit dem Auslesen der markierten Einträge in einer Combobox mit Mehrfachauswahl und in einem Formular.


    Ach ja, warum nicht ein Access Forum? Das sind so kranke Cracks, die würden mich nur auslachen mit meinem Problem

    cu Jürgen


    Wenn der Lenker auf dem Asphalt kratzt war's zuviel mit der Schräglage! :wheelieat:

  • #4

    @efjoy: weil ich Access halbwegs kann und weil man mit einer 'richtige' Datenbank mit etwa 3000 Datensätzen mit Elefanten auf Spatzen schießt. Zudem habe wir alle Access auf den Rechnern und ich will nicht compilieren.


    Sven Brune : ich habe mir bereits anderweitig geholfen. Dennoch mal mein Problem: ich wollte in Comboboxen eine Mehrfachauswahl nutzen.

    Für ein Textfeld hätte ich die mehrfach ausgewählten Einträge gebraucht. Tja, warum für ein Textfeld? Ganz einfach. Aus deiesem Texfeld, in dem noch mehr Dinge stehen, muss ich die Daten per Maus und copy in die Zwischenablage kopieren können. Anschließend werden diese Daten auf einer Webseite eingetragen.

    Nein, ich möchte die Webseite nicht aus Access befüllen, aber die Daten sollten dort immer im gleichen Format stehen. Somit wollte ich dem Benutzer das vereinfachen.


    Die Bing KI hat mir folgenden Code rausgeworfen:

    Dim i As Integer

    Dim strSelectedItems As String

    For i = 0 To Me!YourComboBox.ListCount - 1

    If Me!YourComboBox.Selected(i) Then

    strSelectedItems = strSelectedItems & Me!YourComboBox.Column(0, i) & "; "

    End If

    Next i

    If Len(strSelectedItems) > 0 Then

    strSelectedItems = Left(strSelectedItems, Len(strSelectedItems) - 2)

    End If

    MsgBox "Die ausgewählten Punkte sind: " & strSelectedItems


    Das wusste ich so auch schon vorher. Nur ist das Ergebnis immer ein leerer String.

    Obwohl... wenn ich es jetzt so genau überlege...

    Combobox

    Spalte 1: ID (integer, ausgeblendet)

    Spalte 2: Text der angewählt werden kann


    Das würde ja bedeuten, wenn ich die Spalte 1 (integer) in einen String schreibe, dann kommt nichts an...


    Aber bevor Ihr da zu viel nachdenkt...

    Ich habe es nicht hinbekommen, mir aber anderweitig geholfen.

    cu Jürgen


    Wenn der Lenker auf dem Asphalt kratzt war's zuviel mit der Schräglage! :wheelieat:

  • #5

    Hi Jürgen,

    auf den ersten Blick sollte das so funktionieren, bis auf den einen Fehler, den du ja schon gefunden hast (falsche Spalte).

    Trotzdem solltest du dann eine Liste deiner ID's bekommen (kannst auch Integer per "&" aneinanderhängen...)

    Ich tippe auf einen "blöden" Flüchtigkeitsfehler (z.B. heißt deine ComboBox vermutlich nicht "YourComboBox" ... einmal nicht den richtigen Namen gewählt, schon geht es nicht mehr.

    notfalls mal einen Haltepunkt (F9) in den Code machen, und mit F8 einzeln durchlaufen ... dann kannst du ja mit "drüberhoovern" sehen, was in den jeweiligen Objekten drinsteht...

    Oder einfach vergessen, da du ja wohl schon eine andere Lösung gefunden hast... ;)

    VG

    Sven

  • #6

    Hallo Sven,


    ich habe eine andere Lösung, aber so recht Glücklich bin ich da halt auch nicht.


    Die Schleife wird korrekt durchfahren für alle Einträge, aber in der Zeile steht immer 0, obwohl der EIntrag angewählt ist

    If Me!YourComboBox.Selected(i) Then


    Keine Ahnung wieso. Die Namen sind richtig.

    Hier müsste es doch auch möglich sein, die zweite Spalte durch '.Column(1, i)' auszuwählen. Oder sehe ich das falsch?

    Me!fld_AUswahl.Column(0, i) & "; "


    Visual Basic. Man hasst es oder man liebt es...

    Btw.: meine ersten Basic Programme habe ich auf einen Sinclair ZX84 geschrieben. Naja, 'Hallo Welt' auf dem Bildschirm zu lesen war schon ein Highlight.

    Ohje bin ich alt...

    cu Jürgen


    Wenn der Lenker auf dem Asphalt kratzt war's zuviel mit der Schräglage! :wheelieat:

  • #7

    wenn ich so darüber nachdenke: Mehrfachauswahl gibt es in ListBoxen, aber in Comboboxen m.W. nicht ... was sollte die auch anzeigen (die klappt ja nach der Auswahl zu ... )? dementsprechend wird wohl auch die Selected-Eigenschaft nicht gesetzt ... demenstprechend ist auch deine If-Abfrage immer False...
    mach mal rechtsklick auf die ComboBox und 'Ändern zu" und mach ein Listenfeld draus ... dann noch "Mehrfachauswahl" auf "Erweitert" oder "Einzeln" und dann sollte das funktionieren ... :happy-bouncyyellow:

  • #8


    Die Eigenschaften des Kombinationsfeldes mit Mehrfachauswahl


    und das sieht dann so aus im Formular:




    Also wenn ich die Mehrfachauswahl entferne dann kann ich nur einen Wert anwählen und das Feld schliesst sich wieder

    cu Jürgen


    Wenn der Lenker auf dem Asphalt kratzt war's zuviel mit der Schräglage! :wheelieat:

  • #9

    OK, spannend ... in meinem Access 2016 gibt es diese Option noch nicht (das combobox-steuerelement hat die Eigenschaft .MultiSelect einfach nicht, in der zumindest im Lestenfeld festgelegt wird, ob und wie Du mehrere Einträge auswählen darfst...
    Dann habe ich leider auch keine Idee, warum das nicht funktioniert .... :confusion-shrug:

  • Hey,

    dir scheint die Diskussion zu gefallen, aber du bist nicht angemeldet.

    Wenn du ein Konto eröffnest merken wir uns deinen Lesefortschritt und bringen dich dorthin zurück. Zudem können wir dich per E-Mail über neue Beiträge informieren. Dadurch verpasst du nichts mehr.


    Jetzt anmelden!