Es gibt Dinge, die gehen an einem vorbei, ohne dass man es merkt. Das war bei mir der Fall mit den Thema der Überschrift: Ich arbeite größtenteils mit Access-Datenbanken und weiß, dass dort das Sternchen (*) als Platzhalter für beliebige Zeichen beim Einsatz des Like-Operators zum Einsatz kommt. Und wenn ich mal mit dem SQL Server arbeite, dann weiß ich, dass dort stattdessen das Prozentzeichen gefragt ist (%). Neulich erhielt ich aber eine Datenbank von einem Leser, der sich wunderte, warum eine Lösung bei ihm schlicht nicht arbeitete. Nach einigen Experimenten und einer Internetrecherche war die Lösung gefunden: Der Leser betrieb die Datenbank im SQL-92-Kompatibiltätsmodus, was bedeutet, dass die Platzhalter des SQL Servers in LIKE-Vergleichen zum Einsatz kommen. Was es damit auf sich hat und wie Sie damit umgehen, erfahren Sie im vorliegenden Beitrag.
Standardmäßig arbeitet Access mit Access-SQL, was beispielsweise heißt, dass als Platzhalter für beliebig viele Zeichen in einem LIKE-Ausdruck das Sternchen zum Einsatz kommt und als Platzhalter für genau ein Zeichen das Prozentzeichen.
Im SQL Server ist das anders: Hier setzt man für beliebig viele Zeichen das Prozentzeichen als Platzhalter (%) und für ein einziges Zeichen den Unterstrich (_).
SQL Server-kompatible Syntax
Allerdings kann man bereits seit Access 2010 in den Access-Optionen einstellen, in welchem Modus künftig neu erstellte Datenbanken arbeiten sollen. Dazu öffnen Sie die Access-Optionen und wechseln zum Bereich Objekt-Designer|Abfrageentwurf|SQL Server-kompatible Syntax (ANSI92). Die dortige Option Standard für neue Datenbanken ist üblicherweise nicht aktiviert (siehe Bild 1). Dementsprechend ist auch die nicht direkt bearbeitbare Eigenschaft In dieser Datenbank verwenden normalerweise nicht aktiviert.

Bild 1: Einstellungen für die SQL-Syntax
Erst wenn wir die Eigenschaft Standard für neue Datenbanken in den Access-Optionen einer beliebigen Datenbank (oder auch in einer Access-Instanz ohne geöffnete Datenbank – dazu nach dem Öffnen die Escape-Taste drücken, um den Datei öffnen-Bereich auszublenden) aktivieren, wird eine anschließend neu erstellte Datenbank im SQL Server-kompatiblen Modus geöffnet.
Wenn Sie nun eine neue Datenbank erstellen und den Optionen-Dialog erneut öffnen, sind beide Optionen aktiviert. Und Sie können die Option In dieser Datenbank verwenden sogar direkt einstellen (siehe Bild 2).

Bild 2: Aktivierte SQL Server-kompatible Syntax
Was ändert sich nun durch diese Einstellung Beim Experimentieren mit dem Like-Operator im Entwurf einer Abfrage geben wir testweise den folgenden Ausdruck ein:
Like 'C*'
Nach Abschluss der Eingabe wird Like in den Operator ALike umgewandelt (siehe Bild 3). Wenn wir nun in die Datenblattansicht der Abfrage wechseln, erhalten wir allerdings ein leeres Datenblatt. Die ALike-Funktion arbeitet also scheinbar nicht mit den von Access-SQL bekannten Platzhaltern.

Bild 3: Umwandlung von Like in ALike
Was ist aber nun der Vorteil von ALike, wenn es nun schon automatisch von Access für Like eingesetzt wird Der Vorteil ist, dass Sie mit ALike die mit SQL-92 kompatiblen Platzhalter auch unter Access einsetzen können. Sie können also mit der gleichen Abfrage sowohl auf die Daten aus Access-Tabellen zugreifen als auch direkt auf SQL Server-Tabellen.
In Datenbanken, für die In dieser Datenbank verwenden als Wert der Option SQL Server-kompatible Syntax (ANSI-92) verwendet wird, können Sie das Prozentzeichen und den Unterstrich nur verwenden, wenn Sie direkt auf SQL Server-Datenbanken und kompatible zugreifen.
Platzhalter im Code
Wenn Sie nun Code programmieren, der den Like-Operator mit dem Sternchen als Platzhalter verwenden soll, funktioniert dieser nur in Datenbanken wie erwartet, bei denen In dieser Datenbank verwenden für die Option SQL Server-kompatible Syntax (ANSI-92) nicht aktiviert ist.
Wenn Sie diesen Code dann in eine Datenbank übertragen, bei der die SQL Server-kompatible Syntax aktiviert ist, funktioniert dieser nicht mehr wie erwartet.
Nur für Abonnenten
Ab hier wird’s wirklich spannend – der Rest ist exklusiv für Abonnenten.
Mit dem Abo von Access im Unternehmen bekommst du den kompletten Artikel – inklusive vollständigem Code, Beispieldatenbank und Schritt-für-Schritt-Erklärung.
So sparst du dir stundenlanges Herumprobieren, vermeidest teure Fehler in deiner Access-Anwendung und kannst Lösungen direkt in deinem Unternehmen einsetzen, statt nur darüber zu lesen.
Teste Access im Unternehmen jetzt 4 Wochen lang kostenlos: Voller Zugriff auf alle Artikel, Downloads und Beispieldatenbanken. Kein Risiko – wenn es für dich nicht passt, kündigst du einfach innerhalb der ersten vier Wochen.
Bereits Abonnent? Hier einloggen
Kostenlos & unverbindlich
Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?
Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?
In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.
Jetzt kostenloses Access-Audit anfordern →