Autor Thema: Wert-Zuweisung Variant  (Gelesen 2614 mal)

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Wert-Zuweisung Variant
« am: 28.06.05 - 10:31:59 »
Hallo zusammen,

hab da ein kleines Problem und ich versteh nicht ganz, wo der Fehler liegt.

Hab eine Variable totalClaim als Variant deklariert. Dieser Variable möchte ich einen Double-Wert zuweisen. Beim Ausführen des Skriptes kommt es aber zu der Fehlermeldung "Variant enthält keinen Container". Habt ihr eine Idee, woran das liegt?

Code
Dim totalClaim As Variant
Dim newRest As Double

totalClaim = newRest

Danke schon mal..
Gruß Katja

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Wert-Zuweisung Variant
« Antwort #1 am: 28.06.05 - 10:35:10 »
Hi,

versuch's mal so:

totalClaim = CVar(newRest)


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: Wert-Zuweisung Variant
« Antwort #2 am: 28.06.05 - 10:41:30 »
Hab das mal ausprobiert, aber es kommt nach wie vor die selbe Fehlermeldung.  :(

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Wert-Zuweisung Variant
« Antwort #3 am: 28.06.05 - 10:46:29 »
Die Fehlermeldung erklärt sich eigentlich nicht aus dem Codeschnippsel, das Du gepostet hast. Kannst Du uns mal ein bisschen mehr Code geben?
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Wert-Zuweisung Variant
« Antwort #4 am: 28.06.05 - 10:46:53 »
die drei Zeilen, die du gepostet hast sollten ohne Fehler funktionieren. Wie sieht denn das Gesamtwerk aus?
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: Wert-Zuweisung Variant
« Antwort #5 am: 28.06.05 - 10:55:33 »
Anbei mal der Code drum herum:

Code
Dim totalClaim As Variant
Dim approvedClaim As Variant
Dim newApproved As Double
Dim newRest As Double
Dim gesamt As Double

gesamt = 30
totalClaim = newRest
approvedClaim = newApproved

If checkClaim(totalClaim(0), approvedClaim(0), gesamt) Then
...
End If


Bis zur If-Abfrage funktioniert alles. Nur dort geht der dann nicht rein, weil angeblich nix im Variant drin ist. In den Variablen newRest und newApproved sind aber definitiv Werte enthalten.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Wert-Zuweisung Variant
« Antwort #6 am: 28.06.05 - 10:58:06 »
Die beiden Varianten sind hier aber garantiert skalare Werte (was der Debugger über das Variablen-Fenster unten ohne weiteres bestätigen wird) und Du vesuchst sie als Array anzusprechen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: Wert-Zuweisung Variant
« Antwort #7 am: 28.06.05 - 11:28:40 »
Wollte mir diesen Sachverhalt gerade im Debugger anschauen. Komischerweise läuft der ausgerechnet bei dieser Funktion nicht in den Debugger. Sonst, wenn ein Agent aufgerufen wird (der dann in die scriptbibliothek läuft), wird der Debugger angezeigt.

Ja, aber zurück zu dem Problem. Ich kann also einen Variant nicht wie ein Array ansprechen? Könnte ich den aber so deklarieren?

Dim totalClaim() As Variant


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wert-Zuweisung Variant
« Antwort #8 am: 28.06.05 - 11:35:45 »
Das kann man wohl machen, Du brauchst dann allerdings vor der Befüllung noch ein Redim, um die gewünschte Dimension des Arrays einzustellen.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Wert-Zuweisung Variant
« Antwort #9 am: 28.06.05 - 11:36:30 »
Du kannst einen Variant wie einen Array ansprechen, wenn der Variant einen Array enthält. Das ist ja gerade das Interessante am Variant, dass er verschiedene Datentypen enthalten kann. Du kannst auch eine solche Dimensionierung vornehmen, wie Du fragst, da bekommst Du dann einen Array von Variants und nicht einen Variant, in dem ein Array abgespeichert ist (der Unterschied dürfte an dieser Stelle von "akademischem" Wert sein :) ). Allerdings musst Du dann Dein totalClaim immer als Array behandeln und bekommst somit weiter vorne im Code Probleme.

Rufst Du den Agenten aus einer SharedAction heraus auf?
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: Wert-Zuweisung Variant
« Antwort #10 am: 28.06.05 - 11:38:59 »
Okay, das hab ich jetzt erstmal verstanden. Und das mit der Dimensionierung Array als Variant funktioniert bei mir nicht...Da muss ich mir wohl oder übel etwas anderes überlegen...Trotzdem schon mal danke.

Ja, die Aktion ist eine SharedAction (in der Aktionsleiste). Aber die anderen eigentlich auch.

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Wert-Zuweisung Variant
« Antwort #11 am: 28.06.05 - 11:40:03 »
Warum benutzt du einen Variant, wenn du weißt, dass du ihm einen Double-Wert zuweisen wirst? Das sieht für mich auf den ersten Blick nicht vernünftig aus...
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: Wert-Zuweisung Variant
« Antwort #12 am: 28.06.05 - 11:47:06 »
Ich muss das als Variant abspeichern, da ich in einem anderen Fall eine Funktion aufrufe, die mir einen Variant zurückgibt. Diese Funktion holt mir dann immer Werte einzelner Felder heraus. Und da es vorkommt, dass in den Feldern unterschiedliche Werte enthalten sind, nutzte ich den Variant.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Wert-Zuweisung Variant
« Antwort #13 am: 28.06.05 - 11:58:39 »
Wo hast Du denn das Problem mit der Festlegung der Dimension ?

   Dim vResult () As Variant
   Redim vResult (0)
   
   vResult (0) = 500
   
   Msgbox "Result = " & Cstr (vResult (0))
   
Das sollte prinzipiell bei Dir so ähnlich aussehen.

HTH,
Bernhard

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: Wert-Zuweisung Variant
« Antwort #14 am: 28.06.05 - 13:15:12 »
So hätte ich es wohl auch machen können, nur wäre da glaube der Codieraufwand höher, da ich dann immer das Redim machen müsste. Hab das Problem jetzt aber anderweitig gelöst, in dem ich newRest und newApproved doch als Double deklariert hab und meinen Funktionsaufruf hab ich dann enstprechend geändert.

Trotzdem nochmal Danke an alle!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz