Domino 9 und frühere Versionen > ND7: Entwicklung

Numberfield mit LS auslesen -> Type Mismatch?

<< < (2/2)

MadMetzger:
Nicht wirklich, das ist doch bestimmt nicht alles an Code, was du uns da gezeigt hast, oder? Zeig uns doch mal den gesamten Abschnitt, um den es da geht.

Mehr Input  von dir ==> Mehr Output für dich

WildVirus:
Wie sieht es mit einem Option Declare aus ?

Was sagt der Debugger ?

Wie sieht das Dim-Commando zu "Number" aus ?

koehlerbv:
Was wir bisher an Code kennen, sollte wirklich zu einem funktionierenden Ergebnis führen:


--- Code: --- 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
--- Ende Code ---

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

--- Zitat ---Cdbl(number) = Cdbl(0)
--- Ende Zitat ---
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

ata:
... wenn das Nummernfeld leer ist kommt die Fehlermeldung "Type mismatch" - also entweder wie Bernhard schreibt mit IsNumeric prüfen oder überprüfen, ob der Textstring des Inhaltes leer ist - wenn du sicher bist, daß nur eine Zahl drin sein kann...

Dim vNumber As Variant

vNumber = doc.NumberField

If IsNumeric( vNumber(0) ) Then

  If Cdbl( vNumber ) = 0 Then
    '...
  End If

End If

SnueK:
Leider konnte ich wirklich nicht mehr Input liefern, da ich nicht mehr hatte... wie gesagt ich hatte nur das kleine Konstrukt und nicht weiter gemacht, als der Fehler aufgetreten ist.

Nachdem ich noch hin und her probiert hatte, habe ich den Fehler gefunden:

Ich hatte das Profildokument mit NumberField (erst fehlerhaft als Textfield mit gleichem Namen) im Client gespeichert. Erst nachträglich habe ich das NumberField von Text auf Number gesetzt und dann das Profildokument nochmal aufgerufen und gespeichert... das mochte Notes wohl nicht (irgendwie auch verständlich). Der Code war also fehlerfrei...

Trotzdem vielen vielen Dank für eure Hilfe und ich werde mich in der Zukunft bemühen detailreicher hier zu schreiben, also entschuldigt bitte ;-)


/edit.: die Stellen die "gaga"/überflüssig sind, sind mir mehr als bewusst, es waren lediglich die verzweifelten Versuche irgendwie den Fehler zu beseitigen  :-\

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln