PDA

Vollständige Version anzeigen : Warum funkt Instr-Funktion nicht ?!


Holger 22
04.10.2001, 12:53
Ich benutze folgenden Code im Detailbereich meines Berichts(Artikelauflistung) um alle verschiedenen Mengeneinheiten in einem String zu sammeln.
Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)


If Not InStr([mge_string], Trim(Me![me_id_text_1])) Then
[mge_string] = [mge_string] & Trim(Me![me_id_text_1]) & "zxy"
MsgBox mge_string & vbCrLf & Me![me_id_text_1] ' zum testen
End If

End Sub

Aber die Instr-Funktion tut nicht! Der hängt einfach die Mengeneinheit jedes Datensatzes an den String dran, auch wenn sie schon vorkommt.
Kann vielleicht jemand weiterhelfen ?

mfg
Holger

Andorxor
04.10.2001, 12:56
Instr liefer nicht boolean zurück sondern Integer.Versuchs so:
if instr(...) = 0 then
....
end if

Holger 22
04.10.2001, 13:18
Achso, wäre nett , wenn Ac97 auch mal eine Fehlermeldung ausgespucken würde...

Sascha Trowitzsch
04.10.2001, 14:04
Es ist ja auch kein Fehler!

Die Typkonversion macht VB immer so nebenbei.
Bool: true = Integer: -1
Bool: false= Integer: 0

Ciao, Sascha

Stefan Kulpa
04.10.2001, 14:06
<font face="Verdana" size="2">Hallo Holger,

die Funktion InStr() liefert zwar einen numerischen Wert zurück, aber die Nutzung dieses Rückgabewertes als Boole'schen Wert ist durchaus üblich. Es gilt generell: Wert <> 0 = True!
Das ist das Problem mit diesen Boole'schen Werten - ich empfehle IMMER den Rückgabewert mit einzubeziehen; dass macht die ganze Geschichte lesbarer:

If Not Instr([xxx],[yyy]) = 0 entspricht If Instr([xxx],[yyy]) <> 0 !

HTH</font>