Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1852to1856
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Typen unverträglich sobald Wert leer

Typen unverträglich sobald Wert leer
07.11.2021 14:31:48
Tobi
Hallo Leute .. ich habe folgendes Problem
Ich lasse im Schritt vorher die ListBox2 füllen ( 5 stellige Zahl ) an der ersten Stelle der ListBox
Dann will ich über die Datenbank diesen Wert duch durch Inhalt austauschen lassen.
Aber an der Stelle ( GeraeteNr = ListBox2.List(i, 0) ) kommt die Fehlermeldung (Laufzeitfehler 13 Typen unverträglich) , sobald ListBox2.List(i, 0) leer ist.
Dim GeraeteNr As Long muss auf jeden Fall Long sein da sonst einer Fehlermeldung bei der Suche in der Datenbank kommt.

' Anzahl der Zeilen bestimmen bestimmen
ListBox2.AddItem
max = ListBox2.ListCount
max = max - 2
'Kundennummer durch Namen ersetzen
For i = 0 To max
Dim GeraeteNr As Long
ListBox2.AddItem
GeraeteNr = ListBox2.List(i, 0)
If GeraeteNr  0 Then
Dim uData As ADODB.Recordset
Datenbank = "geraete"
ConnectDB
Set uData = GetRecordset(GeraeteNr)
ListBox2.List(i, 0) = uData.Fields.Item("Hersteller").Value
ListBox2.List(i, 1) = uData.Fields.Item("Model").Value
ListBox2.List(i, 2) = uData.Fields.Item("Seriennummer").Value
End If
Next i
CloseRS
Liebe Grüße
Tobi

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Typen unverträglich sobald Wert leer
07.11.2021 16:43:33
Firmus
Hallo Tobi,
einer numerischen Variablen kannst du keinen leeren Wert zuweisen, denn ein nicht vorhandener Wert ist nicht numerisch.
Auch wenn VBA in manchen Situationen diese Ungenauigkeit akzeptiert (habe ich gelesen).

GeraeteNr = CLNG(ListBox2.List(i, 0))   'sollte funktioneren - getestet mit einfachen Variablen (long + string)
Hierbei wird der Leerwert in einen "numerischen Leerwert" umgewandelt, es wird eine "0" eingesetzt.
Gruß,
Firmus
AW: Typen unverträglich sobald Wert leer
07.11.2021 18:23:24
Daniel
Nein, falsche Annahme.
Auch CLNG erzeugt einen Fehler, wenn der umzuwandelnde Wert leer ist oder der Wert nicht gewandelt werden kann.
Insofern macht es keinen Unterschied, ob man mit
Dim x as long dann x = CLng(y) programmiert oder x = y
Die automatische "implizite" Typumwandlung funktioniert genauso wie die explizite mit CLng.
Was nan hier nehmen könnte ist die Umwandlungsfunktion VAL, weil die bei nicht wandelbaren Werte. 0 ausgibt

GeraeteNr = VAL(ListBox2.List(i, 0))
Oder man müsste eine Prüfung vor schalten:

If IsNumeric(Listbox2.List(i, 0)) Then
Gruß Daniel
Anzeige
Vielen Dank ... so funktioniert es owT
07.11.2021 20:59:18
Tobi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige