Hallo zusammen,
ich habe schon wieder ein Problem und konnte mit der Suchfunktion leider keine Lösung finden... deswegen poste ich mal hier.
Ich habe ein Profildokument mit einem Numberfield und möchte dieses per Lotusscript auslesen. Da ich weiss, dass es nur einen Zahlenwert hat, kann ich ja gleich die (0) noch hinten dranhängen und pack es erstmal in Variable number (Variant).
number = profildokument.GetItemValue("numberfield")(0)
Mein Problem ist nun, dass wenn ich eine If-Abfrage mache, ich jedesmal ein "Type Mismatch"-Fehler erhalte.
Ich dachte da an sowas wie
If Cdbl(number) = Cdbl(0) then...
Auf das cdbl() komme ich, weil ich in der Hilfe gelesen habe, dass die Funktion GetItemValue bei einem NumberField ein Array von Doubles zurück gibt (also müsste wegen dem angehängten (0) doch nur ein Zahlenwert als Double vorhanden sein?). Oder habe ich irgendwo falsch gedacht?
Wenn ich so ein Textfield auslese kann ich problemlos CStr() usw. anwenden und deswegen bin ich ein bischen ratlos.
Vielen Dank schonmal vorab!
Fabian
Ok ich hätte mich deutlicher ausdrücken sollen. Der Debugger sagt mir, dass der Type-Mismatch in der if-Abfrage auftaucht, deswegen habe nicht weiter gemacht (solange das halt nicht funktioniert). Hilft das weiter? ???
If Cdbl(number) = Cdbl(0) then...
Was wir bisher an Code kennen, sollte wirklich zu einem funktionierenden Ergebnis führen:
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim number As Variant
On Error Goto ErrorRoutine
Set doc = ws.CurrentDocument.Document
number = doc.GetItemValue ("numberfield") (0)
If Cdbl (number) = Cdbl (0) Then
Messagebox "Equal"
Else
Messagebox "NOT EQUAL"
End If
Exit Sub
ErrorRoutine:
Call ErrorHandler ("Sub 'Click'")
Exit Sub
Aber wir kennen nicht alles erforderliche.
Weitere Anmerkungen:
Selbst, wenn "numberfield" ein Textfeld wäre und dort eine "Zahl" wie "0" stehen würde, wäre der Code lauffähig (wegen Cdbl).
Weiters: Folgendes ist unnötig
- number As Variant. Gib dort den möglichen Datentyp an. Ggf. Double. Das ist aber hier nicht kriegsentscheidend.
- Die Konvertierung
Cdbl(number) = Cdbl(0)
ist unnötig. Cdbl (number) ggf. noch, wenn Du Dir nicht sicher bist, ob "number " Isnumeric ist, aber 0 ist 0 - Cdbl ist da vollkommen gaga überflüssig. Prüfe lieber und unbedingt (!) auf Isnumeric (number)!
Ich sage hier auch noch mal: Mehr Input, mehr Output.
Bernhard