Hallo an alle,
ich habe ein kleines Problem. Ich möchte gerne eine Formel aus Excel im Access nutzen. Bei der Formel handelt es sich um
=WENN(UND(ODER(Typ=22;Typ=33);ODER(Bauhöhe=300;Bauhöhe=400));0;2)
das heißt ich möchte sagen, wenn Typ 22 oder Typ 33 Und Bauhöhe 300 oder 400 dann Wert 0 sonst 2.
Tüftel jetzt schon seit zwei Stunden im Access herum, um in einem Formular in einem Kombinationsfeld unter Steuerelementinhalt diese Formel einzufügen. Aber wenn ich das so eingebe wie im Excel, dann kommt Syntaxfehler.
Hoffe jemand versteht was ich meine und noch mehr hoffe ich das diese Person mir helfen kann. :-D
Danke schonmal im Voraus für eure Hilfe
Mfg Robby
Hallo robsonlele ,
ich vermute Du meinst sowas in der Art?
If (Typ = 22 Or Typ = 33) And (Bauhöhe = 300 Or Bauhöhe = 400) Then
'0
Else
'2
End If
Hallo Robi
Willkommen hier im Forum.
Mit einem Kombifeld wird das so nicht gehen.
Gibt es ein Feld in deinem Formular mit der Bezeichnung "Type" und "Bauhhöhe" ?
und wo in welchen Feld soll der Wert "0" oder "2" eingetragen werden.
Hallo Stapi und C4RLO,
erstmal danke für die schnelle Antwort.
Ja in dem Formular gibt es je ein Feld mit der Bezeichnung "Lagigkeit" (Typ) und ein Feld mit der Bezeichnung "Bauhöhe".
Der Wert "0" oder "2" soll in einem anderen Feld auf dem Formular erscheinen, als Grundlage für eine weitere Formel.
Ich hab vorher ein Feld eingefügt wo ich nur
WENN((Bauhöhe)=300;6;)
...
eingegeben habe. Das ging einwandfrei. Jetzt weiß ich aber nicht wie ich das mit den Operatoren Und und Oder machen muss und wo die hinkommen.
Die andere Formel sah quasi so aus:
=Wenn(([Kombinationsfeld355])=300;6;Wenn(([Kombinationsfeld355])=400;8;Wenn(([Kombinationsfeld355])=500;12;Wenn(([Kombinationsfeld355])=550;14;Wenn(([Kombinationsfeld355])=600;14;Wenn(([Kombinationsfeld355])=700;18;Wenn(([Kombinationsfeld355])=900;22)))))))
Hallo,
Textfeld mit:
=Wenn((Lagigkeit = 22 oder Lagigkeit = 33) und (Bauhöhe = 300 oder Bauhöhe = 400);0;2)
Gruß
Johann
Hallo
Unter Eigenschaft des Feld z.b "Type" gibt es die Möglichkeit "Nach Aktualiesieren" eine Ereignisporzedur per VBA Code auf zurufen. In dem du den Code von Carlo als Beispiel einfügen kannst. Per Vba wird dann der Wert deiner Eingabe geprüft und die "0" oder "2" in dein anderes Feld automatisch eingetragen.
Danke für die Tipps! Werde sie morgen früh auf Arbeit gleich probieren ( jetzt hab ich erstmal Feierabend :-D) und mich dann morgen nochmal melden, mit hoffentlich positiver Antwort meinerseits! :-D
Also nochmals danke an alle für die Ratschläge, ohne euch würde ich das nie hinkriegen!
Guten morgen an alle,
also mit der Formel von Jonny funktioniert das jetzt super. Ich hab nur noch ein kleines Problem, wenn die Lagigkeit 21S ist, dann gibt er mir ne Fehlermeldung und gibt keinen Wert an.
Bei allen anderen Lagigkeiten funktioniert es aber. (10,11,20,22,30,33)
Habe das Gefühl das es an dem S liegen könnte? Weiß aber nicht wie ich das jetzt wieder hinbekomme. :-D
danke schonmal im voraus für eure Hilfe
Mfg Robby
Hi,
das liegt am Mischen von Zahlen und Text (21S).
Versuch mal:
=Wenn((Lagigkeit = 22 or Lagigkeit = '21S' oder Lagigkeit = 33) und (Bauhöhe = 300 oder Bauhöhe = 400);0;2)
Harald
Hallo Harald,
danke für die schnelle Antwort.
So hatte ich mir das auch schon ungefähr gedacht, problem ist nur das Lagigkeit 21S immer die 2 annehmen soll. also müsste das ja in nen anderen term rein, oder?
hi,
versuch mal den Einsatz von str:
=Wenn((str(Lagigkeit) = '22' oder str(Lagigkeit) = '33') und (Bauhöhe = 300 oder Bauhöhe = 400);0;2)
Harald
hi,
funktioniert kommischerweise auch nicht.
Merkwürdig :(
Robby
Hallo Robby,
versuch mal:
=Wenn((Lagigkeit = 22 oder Lagigkeit = 33) und (Bauhöhe = 300 oder Bauhöhe = 400) oder Lagigkeit = '21S' ;0;2)
Gruß
Johann
Hallo Johann,
funktioniert leider auch nicht. Glaub langsam sind alle am Ende ihres Lateins angekommen. :-D
Gruß Robby
hi,
entspricht das Beispiel im Anhang Deiner Vorstellung?
Harald
[Anhang gelöscht durch Administrator]
hi,
ja genau. 21S immer 2
Robby
Hallo Johann,
Da wirst Du wohl schachteln müssen:
Wenn(Lagigkeit="21S";2;Wenn((Lagigkeit = 22 Oder Lagigkeit = 33) Und (Bauhöhe = 300 Oder Bauhöhe = 400);0;2))
Hat bei mir geklappt.
hth
gruss ekkehard
Edit:
Zu spät, hab' gar nicht gesehen, dass es hier schon eine zweite Seite gibt >:(
Super es geht! Vielen, vielen dank!
Irgendwo holst Du dir ja die 21S her.
Regel das ganze in VBA-Code und:
Schreib den Wert in eine String-Variable, suche mit InStr($Variable) nach dem "S",
wenn InStr <> 0 ausgibt, schneide die Variable mit Left($Variable,2) hinter der zweiten Zahl ab und vergiss das "S"
:P
Upps, zu spät.......