Case when bei Office Access?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hallo, natürlich gibt es in SQL-Abfragen in Access auch den SWITCH-Befehl. Im Abfragegenerator in Deutsch heißt der Befehl SCHALTER. Folgendermaßen funktioniert dieser: "Switch(Bedingung1, DannWert1, Bedingung2, DannWert2, .... , True ; SonstWert)" . Man schreibt also immer das Pärchen von Bedingung und Wert, wenn die Bedingung erfüllt ist der Reihe nach hin. Solange, bis man alle Fälle betrachtet hat. Dann kann man noch das "Case else" abbilden. Hierzu muß man das Schlüsselwort TRUE, gefolgt vom SonstWert am Ende eintragen. Beispiel: Switch([ID=1],"DannWert1",[ID]=2,"DannWert2",[ID]=3,"DannWert3",True,"SonstWert") AS NeuesFeld . Viele Grüße, Armin Dippel

Vielen Dank !!!

genau das habe ich gesucht

eigentlich war diese Frage echt peinlich ... aber ich bin MS SQL gewohnt und hab in google irgendwie nichts gefunden

egal - vielen Dank

0

"ich nutze aber kein VBA sondern C#", wie ist denn das gemeint?

Wenn Du meinst, Du willst für Deine Lösung kein VBA nutzen, dann stimmt: In SQL gibt es das nicht, da mußt Du mit etwas umständlichen If-Verschachtelungen arbeiten.

Wenn Du aber damit meinst, Du hast mit VBA bislang keine Erfahrung, sondern nur mit C#, dann:

Tipp im VB-Fenster (aufrufen mit [ALT + F11]) select ein, markiere diesen String und drücke F1, dann bekommst Du mit Deiner C#-Erfahrung alles, was Du brauchst.

Select Case Name
  Case "Müller"
    MeineVariable = 4711
  Case "Maier"
    MsgBox "ich hab den Maier gefunden!"
  Case Else
    MsgBox "macht wohl blau heute"
End Select

Solche Konstrukte werden unterstützt.

Ich meinte damit, dass ich ein C# Programm schreibe und über einen ODBC-Treiber auf eine Access Datenbank zugreife.

Warum denken alle, dass ich mit VBA arbeite ?!

0
@sponge9394

na hör mal, wenn Du so etwas fragst: "Wie kann ich ein Select mit einer Case - when in Office Access machen ?" Kein Wort von C#, wohl aber von Office und Access. Und VBA ist die Sprache in Office und dort gibt es ein Select Case.

Man kann eher umgekehrt fragen, wie jemand drauf kommen sollte, daß Du NICHT mit der Access-eigenen Programmiersprache arbeitest... Hättest Du echt präziser beschreiben sollen.

Aber jetzt muß ich nochmal völlig von vorn beginnen: Suchst Du jetzt Unterstützung für Deine Verwendung von C# Code oder SQL Code? Mit Access selbst kann Dein Problem ja gar nichts mehr zu tun haben (zumindest, wenn Dein ODBC-Zugriff funktioniert).

0

Access-SQL kennt kein CASE WHEN - du kannst aber die VBA-Funktionen "Choose" oder "Switch" verwenden. Oder dir selbst eine geeignete Funktion schreiben.

Ansonsten weiß ich nicht, was "Office Access" sein soll - ich kenne nur Microsoft Access.

Gruß Ragnar

Access gehört zu den Office Programmen von Microsoft - genau so wie Word, Excel, Outlook, PowerPoint, Visio, Procects und einige Mehr -> deshalb Office

ich nutze aber kein VBA sondern C#

0
@sponge9394

Auf die VBA-Funktionen Choose und Switch kannst du aber auch von C# aus zugreifen. Ansonsten würde ich für solche Zwecke immer mySQL oder MS SQL Server nehmen - Access ist eher eine integrierte Entwicklungsumgebung und keine SQL-Datenbank.

Gruß Ragnar

0

Iif(Bedingung,Dann,Sonst)