Case when bei Office Access?
Wie kann ich ein Select mit einer Case - when in Office Access machen ?
5 Antworten
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
"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.
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).
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#
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
nö
nicht VBA Access sondern ein ganz normales SQL-Statement für office Access
ich meinte sowas:
Select Case When letter like( 'a') then 'Hallo' Else 'not a' end From letter
leider funktioniert dieses Statement nicht
Iif(Bedingung,Dann,Sonst)
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 ?!