Autor Thema: Variant abfragen  (Gelesen 1721 mal)

Offline brixxton

  • Junior Mitglied
  • **
  • Beiträge: 86
Variant abfragen
« am: 09.12.05 - 11:43:51 »
Holla,

wie kann ich abfragen ob ein  Variant Container enthält oder nicht.

Problem ist es das ich Form Aliases abfrage und die sind type Variant.
So jetzt wenn kein Form Alias eingetragen ist ist auch kein Container vorhanden.

If Not f.Aliases = "" Then
    If f.Aliases(1) = "" Then
       formlist(i) = f.Name + "|" + f.Aliases(1)
    Else
       formlist(i) = f.Name + "|" + f.Aliases(0)
    End If
 Else
   formlist(i) = f.Name + "|" + ""
End If

Diese abfrage (If Not f.Aliases = "" Then) funktioniert wenn Alias leer ist, wenn nicht dann hab ich den fehler "Type mismatch".

Diese abfrage (If Not f.Aliases(0) = "" Then) funktioniert wenn Alias nicht leer ist, wenn es leer ist dann hab ich den fehler "Variant enthält keinen Container".


MfG

brixxton

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: Variant abfragen
« Antwort #1 am: 09.12.05 - 11:59:23 »
Hi,

versuch's mal mit IsEmpty


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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Variant abfragen
« Antwort #2 am: 09.12.05 - 12:05:01 »
Nicht versuchen  ;)

Isempty gibt zurück, ob in dem Variant überhaupt etwas vorhanden ist oder ob er "Leer" im Sinne von NULL ist.

Du erwartest ein Array, um damit weiterarbeiten zu können. In diesem (konkreten) Fall reicht es aus, auf Isarray abzufragen. Isempty ist dabei auch NOT Isarray.
Skalare Werte können im gegebenen Zusammenhang nicht vorkommen.

Bernhard

Offline brixxton

  • Junior Mitglied
  • **
  • Beiträge: 86
Re: Variant abfragen
« Antwort #3 am: 09.12.05 - 12:10:48 »
Mit IsEmpty hate ich schon probiert es gab immer den fehler Type mismatch.

Ich habe es aber gelöst mit DataType.

Danke für die Antwort.

Lösung:
If Datatype(f.aliases)  = 0 Then
   If Not f.aliases = "" Then
      formlist(i) = f.Name + "|" + f.aliases
   Else
      formlist(i) = f.Name + "|" + ""               
   End If            
Else
   k = 0
   Forall a In f.Aliases
      Redim Preserve aliase(k) As Variant
      aliase(k) = a
      k = k + 1
   End Forall            
   formlist(i) = f.Name + "|" +  aliase(k - 1)            
End If
MfG

brixxton

Offline brixxton

  • Junior Mitglied
  • **
  • Beiträge: 86
Re: Variant abfragen
« Antwort #4 am: 09.12.05 - 12:15:01 »
Ok.

Danke koehlerbv.
Das ich selber nicht drauf gekommen bin. Peinlich.

Neue lösung:
If Not Isarray(f.aliases) Then
   If Not f.aliases = "" Then
      formlist(i) = f.Name + "|" + f.aliases
   Else
      formlist(i) = f.Name            
   End If            
Else
   k = 0
   Forall a In f.Aliases
      Redim Preserve aliase(k) As Variant
      aliase(k) = a
      k = k + 1
   End Forall            
   formlist(i) = f.Name + "|" +  aliase(k - 1)            
End If
« Letzte Änderung: 09.12.05 - 12:16:43 von brixxton »
MfG

brixxton

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz