Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Listbox Rückgabewert abfragen
#1
Hallo zusammen,

ich habe ein kleines Problem mit einer 6-spaltigen Listbox. Mein Problem besteht im Abfangen eines leeren Eintrags in der Listbox.
Diese wird in einer Userform aus einer anderen Tabelle gefüllt. Gleichzeitig ist es möglich in der UF der Listbox weitere Einträge hinzuzufügen.
Die Einträge, welche aus der Tabelle stammen haben in der Spalte 6 einen Wert:
Code:
listbox2.column(5,intz) <>0

Die Einträge, welche über die UF der Listbox hinzugefügt werden ist die Spalte 6 leer da hier nur die ersten 5 Spalten mit Informationen versehen werden.
Wie fange ich diese Einträge innerhalb einer If.. then-Anweisung ab.

Ziel ist es bei einem Wert in Spalte 6 die Datensätze in der Ursprungstabelle zu aktualisieren und die anderen
Datensätze neu an-/einzufügen.

Ich hoffe ich habe den Sachverhalt ausreichend und verständlich erklärt und Danke schon mal vorab für Eure Hilfe.

Gruß
Ich
Antworten Top
#2
Hallöchen Du Ich Smile

da hast Du doch schon einen Codeansatz. Wenn der funktioniert, dann das If davor und das Then dahinter und entweder =0 oder ="".
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo schauan,

Danke für die schnelle Antwort.
Das funktioniert so leider nicht. Der Rückgabewert für ein leeres Feld der Listbox ist "Null".
Wie fange ich das ab?

Gruß
Ich
Antworten Top
#4
Hallöchen,

da gäbe es noch die Funktion IsNull
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hallo Uwe und Andre,

ich habe natürlich direkt beides versucht umzusetzen. Anscheinend bin ich zu doof, denn für beides erhalte ich jetzt eine Fehlermeldung?!

Anbei ein Screenshot der Listbox bevor ich die Daten zurückschreiben will. Einige Infos muss ich leider ausblenden.
   

Die Daten schreibe ich mit folgendem Code zurück:
Code:
intz = 0
   
   With UserForm1.ListBox2
       For intz = 0 To .ListCount - 1
           If CStr(.Column(5, intz)) = rst!ID Then
               Do Until rst.EOF
                   rst!Menge = CStr(.Column(4, intz))
                   rst.Update
                   intz = intz + 1
                   rst.MoveNext
               Loop
           End If
           
'            If CStr(.List(5, intz)) = "" Then
           If IsNull(CStr(.Column(5, intz))) Then
                   rst!Palette = .Column(0, intz)
                   rst!Artikel = .Column(1, intz)
                   rst!CMMF = .Column(2, intz)
                   rst!Artikelbezeichnung = .Column(3, intz)
                   rst!Menge = .Column(4, intz)
                   rst.AddNew
           End If
       Next intz
   End With

Der Codeschnipsel macht wunderbar das was er soll solange ich in Spalte 6 der LB eine Wert stehen habe.
Bei der letzte Zeile erhalte ich jetzt mit Euren übernommenen Änderungen in beiden Fällen einen "Laufzeitfehler 94 - unzulässige Verwendung von Null"

Ich weiß momentan nicht was ich noch versuchen soll und zweifel mittlerweile echt an mir :(.

Ich hoffe hier hat jemand Rat :)!

Gruß
Ich

In Ergänzung:
Vielleicht habe ich ja auch einen Fehler im Code. Aber ich seh mittlerweile den Baum vor Bäumen nicht mehr.
Antworten Top
#6
Hallöchen,

Du kannst Null nicht mit Cstr umwandeln, daher der Fehler. Also nicht
If IsNull(CStr(.Column(5, intz))) Then
sondern
If Isnull(.Column(5, intz) Then
...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • IchBinIch
Antworten Top
#7
Hallo Andre,

das habe ich dann gestern auch gemerkt nachdem ich mich mal für eine Stunde mit anderen Dingen beschäftigt habe.
Also vielen Dank für die Hilfe.
I'll be back mit mehr Unwissen Wink.

Gruß
Ich
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste