Autor Thema: Type mismatch? warum??  (Gelesen 2140 mal)

Offline DaWutz

  • Senior Mitglied
  • ****
  • Beiträge: 253
  • Geschlecht: Männlich
Type mismatch? warum??
« am: 26.08.04 - 19:16:39 »
Hallo zusammen,

warum zeigt mir der folgende Code immer den Finger? In dem Dokument aus dem die Daten kommen sollen steht in dem Feld "active". Mit dem Debugger komme ich immer auf die Zeile if orgStatus ...

Kann ich denn einen Variant nicht einfach so vergleichen? Was mache ich falsch?

Code
....

Dim orgName As Variant
   Dim orgAbbreviaton As Variant
   Dim orgStatus As Variant
   Dim counter As Single
   Dim kw As Variant
   counter = 0   ' einfacher Zähler!
   kw = Inputbox("Which Calendar week you want to create?")
   
   ' Schleife, die jedes weitere Dokument anspringt
   Do While Not (doc Is Nothing)
      orgName = doc.GetItemValue("org_name")                     ' Werte aus Mutter-Dok auslesen
      orgAbbreviation = doc.GetItemValue("org_abkuerzung")
      orgStatus = doc.GetItemValue("org_status")
      
      If orgStatus = "active" Then   
         Set note = db.CreateDocument                              ' neues Dok erzeugen
         
         Call note.ReplaceItemValue("Form", "check_form")               ' Maske ändern
         Call note.ReplaceItemValue("check_orgName", orgName)         ' Felder mit Werten belegen
         Call note.ReplaceItemValue("check_orgAbbr", orgAbbreviation)
         Call note.ReplaceItemValue("check_calendarWeek", kw)
         Call note.save(True,False)                                    ' speichern des neu angelegten Dok´s
         
         Set doc = view.GetNextDocument(doc)                        ' nächstes Dokument aus der View anspringen
         counter = counter+1   
      End If
      
   Loop
???
Grüße aus Bonn,

Daniel!

Domino 6.5.3 auf Win2k
Clients ab 6.01 CF2

>>... es ist mir scheißegal wer Dein Vater ist! Solange ich hier angele, wird NICHT über´s Wasser gelaufen!! <<

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re:Type mismatch? warum??
« Antwort #1 am: 26.08.04 - 19:28:59 »
Weil Variants Arrays sind und Arrays spricht man mit ArrayVar(0) an.

Thomas
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline DaWutz

  • Senior Mitglied
  • ****
  • Beiträge: 253
  • Geschlecht: Männlich
Re:Type mismatch? warum??
« Antwort #2 am: 26.08.04 - 19:44:18 »
War es nicht so, das ein Variant das "wird" was an Daten rein geht? In meinem Fall ein String? Aber daovn mal ganz ab, wenn ich die Varaible mit orgStatus(0) = "active" anspreche, dann knallt mein Notes weg. Und wenn ich die Variable von Anfang an als String wähle, dann wirds auch nix...  ???
Grüße aus Bonn,

Daniel!

Domino 6.5.3 auf Win2k
Clients ab 6.01 CF2

>>... es ist mir scheißegal wer Dein Vater ist! Solange ich hier angele, wird NICHT über´s Wasser gelaufen!! <<

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Type mismatch? warum??
« Antwort #3 am: 26.08.04 - 20:07:25 »
Variants können Arrays sein, müssen aber keinesfalls !

A-Bär: Übernimmt man direkt ein Item in ein Variant (ausser RTI), dann ist das Ergebnis IMMER ein Array:
variant = NotesDocument.Field

Selbiges macht auch das von DaWutz verwendete NotesDocument.GetItemValue - das Ergebnis ist ausser bei RTIs IMMER ein Array.

HTH,
Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Type mismatch? warum??
« Antwort #4 am: 26.08.04 - 20:09:15 »
Beim Backend-Zugriff auf ein Item erhält Du immer ein Array - egal welcher Feldtyp das ist.

*Edit*: Da war Bernhard schneller. Und ich vergass die Ausnahme RTI.
« Letzte Änderung: 26.08.04 - 20:11:01 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline DaWutz

  • Senior Mitglied
  • ****
  • Beiträge: 253
  • Geschlecht: Männlich
Re:Type mismatch? warum??
« Antwort #5 am: 26.08.04 - 20:17:22 »
Und Asche auf mein Haupt...

NATÜRLICH funktioniert das wenn ich orgStatus(0) nehme...

...

Nur wenn ich dann bei nicht-eintreten des Falls die Dokumente nicht weiter durchzähle, weil das innerhalb des "wahr"-Blocks ist, dann hängt die Kiste halt, und die Do-Loop-Schliefe rennt bis ins nächste Millenium.

Ok, nu mach ich auch Feierabend...

Danke für die Hilfe/Denkanstösse!
Grüße aus Bonn,

Daniel!

Domino 6.5.3 auf Win2k
Clients ab 6.01 CF2

>>... es ist mir scheißegal wer Dein Vater ist! Solange ich hier angele, wird NICHT über´s Wasser gelaufen!! <<

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Type mismatch? warum??
« Antwort #6 am: 26.08.04 - 20:21:38 »
... und die Do-Loop-Schliefe rennt bis ins nächste Millenium.
Jo, jo: "In Ewigkeit - Amen !", sprach die Endlosschleife  ;D

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz