Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Juno am Oktober 27, 2010, 14:17:23

Titel: IF-Anweisung
Beitrag von: Juno am Oktober 27, 2010, 14:17:23
ich habe in einem Feld eine Liste von Zahlen. Also so 9100000, 8100000. Diese Zahlen können sich immer ändern.
Jetzt bräuchte ich eine If-Funktion die in etwa so aussehen würde:

If Feld... = "81*" or Feld... = "71*" then
....

Kennt ihr eine Lösung?
Titel: Re: IF-Anweisung
Beitrag von: Hondo am Oktober 27, 2010, 14:22:31
Hallo,
verwende dazu die left() Methode.
if left(Feld,2) = 81 Or left(Feld,2) = 71 Or left(Feld,2) = 99 then
.....
End if
Titel: Re: IF-Anweisung
Beitrag von: Juno am Oktober 27, 2010, 15:18:07
Hallo Hondo,

danke, aber ich glaube ich habe mich falsch ausgedrückt.

Ich muss immer die ersten 2 Zahlen jedes Eintrages in der Liste durchsuchen.

Beispiel:
Feld = 8100000,9100000

If Feld = 91 then ...

In diesem Fall hätte er mir sagen müssen, dass dort eine 91 enthalten ist.
Titel: Re: IF-Anweisung
Beitrag von: Jonny am Oktober 27, 2010, 15:30:04
Hallo,
versuche es mal mit if Feld like '*91*'
mit like macht man eine Teilwertsuche.
Titel: Re: IF-Anweisung
Beitrag von: DF6GL am Oktober 27, 2010, 15:48:49
Hallo,


... like '*91*'
findet 91 irgendwo im Text, außerdem müssen Gänsefüße benutzt werden.


wenn, dann so:

... like "91*"


Hier müssen auch  Gänsefüße  dazu:
if left(Feld,2) = "81" Or left(Feld,2) = "71" Or left(Feld,2) = "99" then


Wenn man es genau nimmt, sollte die Zahl, so es sich denn bei den Feldern (oder Variablen) um diesen  Datentyp handelt, in Datentyp Text gewandelt werden:

if left("" & Feld,2) = "81" Or left("" & Feld,2) = "71" Or left("" & Feld,2) = "99" then
oder auch:
if left(CStr(Feld),2) = "81" Or left(CStr( Feld),2) = "71" Or left(CStr( Feld),2) = "99" then





PS:  habe das (vor) letzte Posting nochmal gelesen, aber nicht schlauer geworden, was nun wirklich Sache ist....
Titel: Re: IF-Anweisung
Beitrag von: Jonny am Oktober 27, 2010, 15:58:20
Hallo Franz,
näturlich Gänzefüßchen und keine Hochkomma.

So wie ich das verstanden habe besteht ein String mit Zahlen durch Komma getrennt.

Mal sehen was Juno dazu sagt.

PS. Ich habe den Baumenschen, der beleidigt abgehauen ist, auch geschrieben. Was meinst Du kriegt der das irgendwie gebacken?
Titel: OT
Beitrag von: DF6GL am Oktober 27, 2010, 16:18:51
Hallo Jonny,

ja, hab ich gelesen    :)

Nun, das ist so einer, der Kritik (oder auch nur Einwände/Hinweise ) an seiner DB als persönliche Beleidigung auffaßt und nicht um die Sache diskutieren kann. Wenn er Rat nicht annehmen will, aus welchen Gründen auch immer, muß er halt mit den Schlaglöchern leben und sich nicht wundern, wenn es im Rücken weh tut.  (Es ist ja nicht meiner..  ;D  )
Titel: Re: IF-Anweisung
Beitrag von: Juno am Oktober 28, 2010, 14:08:35
Also nochmal:
Ich habe ein Feld in dem Zahlen hintereinander aufgelistet sind.
Beispiel:
- 8100000, 9100050, 7100200
- 9100005, 7100008, 5100605
- 6100091, 4100050, 3100000

Immer nur die ersten 2 Ziffern aus jeder Zahl sind für meine IF-Anweisung relevant.

In der IF-Anweisung soll nach 91 gesucht werden. Dann wäre das richtige Ergebenis in Beispiel 1 und 2 ist 91 enthalten. Bei Beispiel 3 ist zwar auch eine 91 enthalten aber nicht in den ersten zwei Ziffern der Zahl.

Ich habe es jetzt mal so probiert, aber ohne Erfolg:

If vk_vorlage Like "91*" Or vk_vorlage Like ", 91*" Then
MsgBox "Richtig"
Exit Sub
End If


Inhalt des Feldes vk_vorlage ist:41000024, 91000002,
Titel: Re: IF-Anweisung
Beitrag von: Juno am Oktober 28, 2010, 15:06:31
Vielen Dank für eure Hilfe soweit aber ich gehe jetzt einen anderen Weg um das erwünschte Ziel zu erreichen.
Titel: Re: IF-Anweisung
Beitrag von: database am Oktober 28, 2010, 20:57:06
Hallo,

du brauchst nicht die Flinte gleich so weit ins Korn schmeissen ...

KOPIER dir das mal in deine Applikation und versuchs damit.   ;)


If vk_vorlage Like "91*" Or vk_vorlage Like "*, 91*" Then
    MsgBox "richtig"
Else
    MsgBox "nicht richtig"
End If


Wahrscheinlich gibts einen speziellen Grund, warum die Zahlen als Text in 3-er Gruppen in einem Tabellenfeld stehen und nicht als Zahl in einer Spalte geführt werden ...

Grüße

Peter