{"id":55001172,"date":"2019-02-01T00:00:00","date_gmt":"2020-05-13T21:05:29","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1172"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Gespeicherte_Prozeduren_mit_PassThroughAbfragen","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/","title":{"rendered":"Gespeicherte Prozeduren mit Pass-Through-Abfragen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg06.met.vgwort.de\/na\/d771c225208e44dbbab7c46da42734be\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>F&uuml;r den Zugriff auf die Daten einer SQL Server-Datenbank gibt es mehrere Methoden. Die erste ist das Einbinden der Tabellen per ODBC. Sie greifen dann &#8211; oberfl&auml;chlich betrachtet &#8211; genau wie auf lokale Daten zu. Die andere, performantere und auch f&uuml;r den Mehrbenutzerbetrieb effizientere Variante, ist der Zugriff &uuml;ber Pass-Through-Abfragen auf gespeicherte Prozeduren. Gespeicherte Prozeduren sind Skripte, die Anweisungen auf dem SQL Server ausgeben und die ihre Ergebnisse, also zum Beispiel gefundene Datens&auml;tze, zur&uuml;ckgeben k&ouml;nnen. Zugriff auf solche gespeicherten Prozeduren erhalten Sie &uuml;ber die Nutzung sogenannter Pass-Through-Abfragen. Wie Sie die gespeicherten Prozeduren und Pass-Through-Abfragen kombinieren, um Daten vom SQL Server in Ihre Access-Datenbank zu bekommen, zeigt dieser Beitrag.<\/b><\/p>\n<h2>Voraussetzungen<\/h2>\n<p>F&uuml;r die Beispiele dieses Beitrags ben&ouml;tigen Sie die im Download befindliche Access-Datenbank, das SQL-Skript zum Erstellen des Backends auf dem SQL Server sowie eine Instanz des SQL Servers (das kann auch LocalDb oder die Express-Version sein) und das SQL Server Management Studio. Wie Sie die Datenbank mithilfe des SQL-Skripts aus dem Download erstellen, erfahren Sie im Beitrag <b>SQL Server-Datenbanken kopieren <\/b>(<b>www.access-im-unternehmen.de\/1153<\/b>).<\/p>\n<h2>Gespeicherte Prozeduren<\/h2>\n<p>Gespeicherte Prozeduren, im Englischen <b>Stored Procedures<\/b>, sind eine der flexibelsten Objektarten im SQL Server. Sie k&ouml;nnen damit nicht nur Daten abfragen, sondern auch Daten manipulieren. Wenn Sie Daten abfragen, liefern gespeicherte Prozeduren die abgefragten Daten als Ergebnis zur&uuml;ck, wenn Sie Daten manipulieren, k&ouml;nnen Sie die gespeicherte Prozedur so programmieren, dass diese etwa die Anzahl der ge&auml;nderten Datens&auml;tze zur&uuml;ckliefert. Sie k&ouml;nnen dabei auf den gesamten Sprachumfang von T-SQL zur&uuml;ckgreifen und nicht nur einfache Auswahlabfragen oder Aktionsabfragen definieren wir unter Access. Stattdessen k&ouml;nnen Sie sogar Strukturen wie Bedingungen oder Schleifen nutzen und in einer gespeicherten Prozedur mehrere Auswahl- oder Aktionsabfragen durchf&uuml;hren. <\/p>\n<h2>Pass-Through-Abfragen<\/h2>\n<p>Pass-Through-Abfragen sind eine M&ouml;glichkeit, von Access auf die Daten eines SQL Servers zuzugreifen. Sie k&ouml;nnen damit zum Beispiel einfach die Daten einer kompletten Tabelle zur&uuml;ckliefern, was dann in etwa dem Verkn&uuml;pfen der Tabelle per ODBC entspricht &#8211; mit dem Unterschied, dass Sie &uuml;ber eine Pass-Through-Abfrage keine Daten &auml;ndern k&ouml;nnen. Die von Pass-Through-Abfragen gelieferten Ergebnisse sind also immer schreibgesch&uuml;tzt. Davon ab k&ouml;nnen Sie mit einer Pass-Through-Abfrage aber nicht nur Daten abfragen, sondern alle denkbaren SQL-Anweisungen an die Zieldatenbank schicken.<\/p>\n<p>Dabei gibt es einen sehr wichtigen Punkt zu beachten: Pass-Through-Abfragen werden direkt an den jeweiligen SQL Server geschickt, sie m&uuml;ssen daher auch im SQL-Dialekt des jeweiligen Servers formuliert sein und nicht etwa in dem von Access\/Jet verwendeten Dialekt.<\/p>\n<p>Ein Beispiel: W&auml;hrend Sie in Access etwa das Sternchen (<b>*<\/b>) als Platzhalter f&uuml;r beliebige Zeichen verwenden, nutzen die meisten relationalen Datenbankmanagementsysteme das Prozent-Zeichen (<b>%<\/b>) als Platzhalter f&uuml;r beliebige Zeichen. Die Suche nach allen Artikeln, die mit A beginnen, w&uuml;rde also so lauten:<\/p>\n<pre>SELECT * FROM tblArtikel WHERE Artikelname LIKE ''''A%''''<\/pre>\n<p>Einer Pass-Through-Abfrage geben Sie &uuml;ber die Eigenschaften die Verbindungszeichenfolge mit, welche die Zieldatenbank f&uuml;r die Abfrage definiert.<\/p>\n<h2>Gespeicherte Prozeduren und Pass-Through-Abfragen<\/h2>\n<p>Wenn wir nun alle denkbaren SQL-Anweisungen &uuml;ber eine Pass-Through-Abfrage an den Server schicken k&ouml;nnen &#8211; warum sollten wir dann die Abfragen erst auf dem Server als gespeicherte Prozeduren definieren und diese dann von Access aus per Pass-Through-Abfrage aufrufen, statt diese direkt von Access aus an den SQL Server zu schicken Die Antwort ist einfach: Die Performance einer Abfrage an den SQL Server richtet sich nicht nur nach der Menge der &uuml;ber das Netz zu transportierenden Daten (diese ist in beiden F&auml;llen etwa gleich). Sie richtet sich auch danach, wie lange der SQL Server daf&uuml;r braucht, diese Daten zusammenzustellen.<\/p>\n<p>Und hier kommt der Abfrageoptimierer des SQL Servers ins Spiel: Wenn Sie eine Abfrage als gespeicherte Prozedur anlegen und diese ausf&uuml;hren, erstellt SQL Server automatisch einen Ausf&uuml;hrungsplan, der in der Folge f&uuml;r weitere Aufrufe dieser Abfrage genutzt wird. Das gilt auch, wenn Sie f&uuml;r die Abfrage einen oder mehrere Parameter nutzen.<\/p>\n<p>Wenn Sie jedoch eine Abfrage, deren Inhalt dem einer gespeicherten Prozedur gleichzusetzen ist, auf der Access-Seite formulieren und diese &uuml;ber eine Pass-Through-Abfrage an den SQL Server schicken, muss diese jedes Mal vom Abfrageoptimierer analysiert werden. Bei Abfragen, die nur einmalig genutzt werden, ergibt sich somit kein nennenswerter Unterschied, aber sobald Sie eine Abfrage mehr als einmal nutzen, haben Sie Performance-Vorteile, wenn Sie die Abfrage als gespeicherte Prozedur auf dem SQL Server speichern.<\/p>\n<p>Wir werden uns also in der Regel auf die Kombination aus Pass-Through-Abfrage und gespeicherter Prozedur konzentrieren.<\/p>\n<h2>Gespeicherte Prozedur anlegen<\/h2>\n<p>Als Erstes legen wir eine einfache gespeicherte Prozedur auf unserer SQL Server-Datenbank <b>Suedsturm_SQL <\/b>an. Dabei belassen wir es f&uuml;r das erste Beispiel bei einer einfachen Abfrage, die alle Datens&auml;tze der Tabelle <b>tblArtikel<\/b> zur&uuml;ckliefern soll. Diese Abfrage legen wir im SQL Server Management Studio an.<\/p>\n<p>Dazu &ouml;ffnen wir SQL Server Management Studio und wechseln zur Datenbank <b>Suedsturm_SQL<\/b>. Hier navigieren wir zum Eintrag <b>Suedsturm_SQL|Programmierbar-keit|Gespeicherte Prozeduren <\/b>und w&auml;hlen aus dem Kontextmen&uuml; dieses Eintrags den Befehl <b>Gespeicherte Prozedur&#8230; <\/b>aus (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2019_01\/pic_1172_001.png\" alt=\"Neue gespeicherte Prozedur anlegen\" width=\"424,7115\" height=\"405,1749\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Neue gespeicherte Prozedur anlegen<\/span><\/b><\/p>\n<p>Dies &ouml;ffnet die Vorlage f&uuml;r gespeicherte Prozeduren, die es uns vereinfachen soll, schnell neue gespeicherte Prozeduren anzulegen (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2019_01\/pic_1172_002.png\" alt=\"Vorlage f&uuml;r eine neue gespeicherte Prozedur\" width=\"649,559\" height=\"575,9725\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Vorlage f&uuml;r eine neue gespeicherte Prozedur<\/span><\/b><\/p>\n<p>Hier sehen Sie gleich, dass die eigentliche Anweisung mit <b>CREATE PROCEDURE <\/b>beginnt. In diesem Abfragefenster geben wir also nicht den Code der gespeicherten Abfrage selbst ein, sondern den Code, den SQL Server zum Erstellen der gespeicherten Prozedur ben&ouml;tigt. Auf die gleiche Weise lautet der Code zum Ver&auml;ndern einer bestehenden gespeicherten Prozedur <b>ALTER PROCEDURE<\/b>. Die Vorlage ist f&uuml;r unsere Zwecke etwas &uuml;berdimensioniert, sodass wir den enthaltenen Code etwas zusammenschrumpfen und schlie&szlig;lich folgendes SQL-Skript erhalten:<\/p>\n<pre>CREATE PROCEDURE dbo.spArtikelAlle \r\nAS\r\nSET NOCOUNT ON;\r\nSELECT * FROM tblArtikel;<\/pre>\n<p><!--30percent--><\/p>\n<p>Mit einem Klick auf die Taste <b>F5 <\/b>f&uuml;hren Sie die Abfrage zum Erstellen der gespeicherten Prozedur aus. Dies legt einen neuen Eintrag im Objekt-Explorer unter <b>Pro-gram-mier-bar-keit|Ge-speicherte Prozeduren <\/b>an &#8211; siehe Bild 3. Wenn Sie die gespeicherte Prozedur anpassen k&ouml;nnen, rufen Sie den Kontextmen&uuml;-Befehl <b>&auml;ndern <\/b>auf.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2019_01\/pic_1172_009.png\" alt=\"Die neue gespeicherte Prozedur im Objekt-Explorer\" width=\"349,7625\" height=\"276,2183\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Die neue gespeicherte Prozedur im Objekt-Explorer<\/span><\/b><\/p>\n<h2>Namen f&uuml;r gespeicherte Prozeduren<\/h2>\n<p>Gespeicherte Prozeduren erhalten normalerweise das Pr&auml;fix <b>sp<\/b>, also zum Beispiel <b>spArtikelAlle<\/b>. Die Variante mit dem Unterstrich, also etwa <b>sp_ArtikelAlle<\/b>, sollten Sie nicht verwenden, da SQL Server dann beim Aufruf erst die gespeicherten Systemprozeduren durchsucht und nicht direkt in der Zieldatenbank. Dem Namen f&uuml;r die gespeicherte Prozedur stellen wir als Pr&auml;fix das Standardschema voran, hier <b>dbo.spArtikelAlle<\/b>. Wenn Sie mit benutzerdefinierten Schemas arbeiten, k&ouml;nnen Sie auch dieses hier angeben (mehr zu solchen Schemas im Beitrag <b>SQL Server: Sicherheit mit Schema<\/b>, <b>www.access-im-unternehmen.de\/1179<\/b>).<\/p>\n<h2>Gespeicherte Prozedur ausf&uuml;hren<\/h2>\n<p>Um die gespeicherte Prozedur auszuf&uuml;hren, w&auml;hlen Sie den Kontextmen&uuml;-Eintrag <b>Gespeicherte Prozedur ausf&uuml;hren&#8230; <\/b>aus. Als Erstes erscheint ein Dialog, der die Eingabe von Parametern f&uuml;r die gespeicherte Prozedur erlaubt. Da wir keine Parameter f&uuml;r diese gespeicherte Prozedur definiert haben, ist dieser Dialog allerdings unn&ouml;tig und Sie k&ouml;nnen ihn gleich mit <b>OK <\/b>best&auml;tigen.<\/p>\n<p>Anschlie&szlig;end liefert SQL Server Management Studio das Ergebnis der Abfrage samt eines kleinen, durch den Aufruf des Kontextmen&uuml;-Befehls erstellten Skripts im mittleren Bereich (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2019_01\/pic_1172_004.png\" alt=\"Ausf&uuml;hren der gespeicherten Prozedur\" width=\"349,7625\" height=\"405,2536\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Ausf&uuml;hren der gespeicherten Prozedur<\/span><\/b><\/p>\n<p>Das bekommen Sie auch etwas &uuml;bersichtlicher hin, indem Sie einfach den Befehl <b>EXEC dbo.ArtikelAlle <\/b>in einer neuen Abfrage ausf&uuml;hren (siehe Bild 5). Damit erhalten wir auch gleich den Befehl, den wir in unserer gleich zu erstellenden Pass-Through-Abfrage verwenden wollen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2019_01\/pic_1172_005.png\" alt=\"Ausf&uuml;hren der gespeicherten Prozedur per EXEC\" width=\"349,7625\" height=\"405,2536\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Ausf&uuml;hren der gespeicherten Prozedur per EXEC<\/span><\/b><\/p>\n<h2>Ge-speicherte Prozedur per Pass-Through-Abfrage<\/h2>\n<p>Mit der soeben erstellten gespeicherten Prozedur wollen wir nun eine Pass-Through-Abfrage in Access f&uuml;ttern und damit die gew&uuml;nschten Daten in Access anzeigen.<\/p>\n<p>Dazu gibt es in Access 2016 noch nicht einmal mehr einen passenden Assistenten &#8211; wir m&uuml;ssen also mit dem herk&ouml;mmlichen Abfrageentwurf auskommen.<\/p>\n<p>Nachdem Sie also &uuml;ber den Ribbon-Eintrag <b>Er-stel-len|Ab-fra-gen|Ab-frageentwurf <\/b>eine neue Abfrage erstellt haben, schlie&szlig;en Sie zun&auml;chst den automatisch erscheinenden Dialog <b>Tabelle anzeigen<\/b>. Oben im Ribbon finden Sie den Befehl <b>Ent-wurf|Ab-fragetyp|Pass-Through<\/b>, mit dem Sie die Abfrage in eine Pass-Through-Abfrage umwandeln k&ouml;nnen. Auf den ersten Blick ist die einzige &auml;nderung, dass der Abfrageentwurf nun in der SQL-Ansicht angezeigt wird (siehe Bild 6).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2019_01\/pic_1172_006.png\" alt=\"Umwandeln der Abfrage in eine Pass-Through-Abfrage\" width=\"649,559\" height=\"304,5551\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Umwandeln der Abfrage in eine Pass-Through-Abfrage<\/span><\/b><\/p>\n<p>Es gibt aber noch einen weiteren Unterschied: Das Eigenschaftsfenster hat sich n&auml;mlich ebenfalls ge&auml;ndert (siehe Bild 7).  Einige Eigenschaften wie <b>Standardansicht<\/b>, <b>Alle Felder ausgeben<\/b>, <b>Spitzenwerte<\/b>, <b>Keine Duplikate<\/b>, <b>Eindeutige Datens&auml;tze <\/b>und noch weitere sind weggefallen. Daf&uuml;r sind die folgenden Eigenschaften hinzugekommen:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2019_01\/pic_1172_007.png\" alt=\"Eigenschaften einer Pass-Through-Abfrage\" width=\"424,7115\" height=\"322,0459\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Eigenschaften einer Pass-Through-Abfrage<\/span><\/b><\/p>\n<ul>\n<li><b>ODBC-Verbindung<\/b>: Hier geben Sie die Verbindungszeichenfolge an &#8211; angef&uuml;hrt von der Zeichenkette <b>ODBC;<\/b>.<\/li>\n<li><b>Liefert Datens&auml;tze<\/b>: Gibt an, ob die auszuf&uuml;hrende Abfrage Datens&auml;tze zur&uuml;ckliefern wird oder nicht. Handelt es sich etwa um eine Aktionsabfrage, die nur Daten &auml;ndert, stellen Sie <b>Liefert Datens&auml;tze <\/b>auf den Wert <b>Nein <\/b>ein.<\/li>\n<li><b>Meldungen protokollieren<\/b>: Legt fest, ob eventuelle Verarbeitungsmeldungen in einer Tabelle gesammelt werden sollen. Mehr dazu weiter unten unter <b>Meldungen protokollieren<\/b>.<\/li>\n<\/ul>\n<p>Als ODBC-Verbindung geben wir die auch zum Herstellen der ODBC-Verkn&uuml;pfungen verwendete Zeichenfolge, die wir unserem Formular <b>frmVerbindungszeichenfolgen <\/b>entnehmen k&ouml;nnen &#8211; in diesem Fall lautet diese bei Verwendung der Windows-Authentifizierung wie folgt:<\/p>\n<pre>ODBC;DRIVER={SQL Server};SERVER=DESKTOP-PC-I5;DATABASE=Suedsturm_SQL;Trusted_Connection=Yes;OPTION=3;LOG_QUERY=1;<\/pre>\n<p>Die Eigenschaft <b>Liefert Datens&auml;tze <\/b>stellen wir, sofern dies noch nicht der Fall ist, auf <b>Ja <\/b>ein. Damit brauchen wir nun nur noch den Aufruf der gespeicherten Prozedur in die SQL-Ansicht der Abfrage einzutragen (siehe Bild 8) &#8211; und der lautet wie folgt:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2019_01\/pic_1172_010.png\" alt=\"Pass-Through-Abfrage mit Eigenschaften\" width=\"499,6607\" height=\"281,9514\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Pass-Through-Abfrage mit Eigenschaften<\/span><\/b><\/p>\n<pre>Exec dbo.spArtikelAlle<\/pre>\n<p>Nach einem Wechsel in die Datenblattansicht zeigt Access die Daten der Tabelle an. Dass es sich hierbei um eine Pass-Through-Abfrage handelt, kann man nicht erkennen. Der einzige Hinweis darauf w&auml;re die fehlende M&ouml;glichkeit zum Hinzuf&uuml;gen neuer Datens&auml;tze (siehe Bild 9). Wenn Sie versuchen, die Daten zu bearbeiten, erhalten Sie einen zweiten Hinweis &#8211; eine Bearbeitung ist nicht m&ouml;glich.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2019_01\/pic_1172_011.png\" alt=\"Ergebnis einer Pass-Through-Abfrage\" width=\"499,6607\" height=\"256,3802\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Ergebnis einer Pass-Through-Abfrage<\/span><\/b><\/p>\n<h2>Gespeicherte Prozedur mit Parameter<\/h2>\n<p>Weiter oben haben wir erl&auml;utert, dass es aus Performance-Gr&uuml;nden sinnvoll ist, eine Abfrage als gespeicherte Prozedur in der SQL Server-Datenbank zu speichern. Einer der Gr&uuml;nde war die schnellere Ausf&uuml;hrung durch das Erstellen eines optimierten Ausf&uuml;hrungsplans beim ersten Aufruf der Abfrage.<\/p>\n<p>Was aber geschieht, wenn wir nicht immer nur eine einfache Abfrage ohne Bedingungen aufrufen wollen, sondern solche mit Parametern ben&ouml;tigen, mit denen etwa die Vergleichswerte von <b>WHERE<\/b>-Klauseln gef&uuml;llt werden<\/p>\n<p>In diesem Fall nutzen wir die M&ouml;glichkeit der Parameter in einer gespeicherten Prozedur. Wir erstellen also eine neue gespeicherte Prozedur, in der wir die Artikel nach dem Wert des Feldes <b>ArtikelID <\/b>filtern wollen. Unsere Abfrage w&uuml;rde unter Access zum Beispiel wie folgt aussehen:<\/p>\n<pre>SELECT * FROM tblArtikel WHERE ArtikelID = 1<\/pre>\n<p>Statt dem Wert <b>1 <\/b>wollen wir in der zu erstellenden gespeicherten Prozedur namens <b>spArtikelAlleNachID <\/b>nun einen variablen Vergleichswert unterbringen. Dazu m&uuml;ssen wir die gespeicherte Prozedur gegen&uuml;ber der vorherigen Version an zwei Stellen &auml;ndern.<\/p>\n<p>Die erste Stelle ist die Angabe des Parameters. Dieser landet in der Zeile zwischen der <b>CREATE PROCEDURE<\/b>&#8211; und der <b>AS<\/b>-Zeile und besteht aus dem <b>@-<\/b>Zeichen, dem Namen des Parameters und dem Datentyp. Die zweite Stelle ist die, wo der Parameter in der <b>SELECT<\/b>-Abfrage eingef&uuml;gt werden soll, n&auml;mlich als Vergleichswert der Abfrage. Insgesamt sieht der Code zum Erstellen einer gespeicherten Prozedur mit Parameter wie folgt aus:<\/p>\n<pre>CREATE PROCEDURE dbo.spArtikelNachID \r\n@ArtikelID int\r\nAS\r\nSET NOCOUNT ON;\r\nSELECT * FROM tblArtikel WHERE ArtikelID = @ArtikelID;<\/pre>\n<p>Nach dem Anlegen erscheint die neue gespeicherte Prozedur im SQL Server Enterprise Manager unter <b>Suedsturm_SQL|Programmierbarkeit|Gespeicherte Prozeduren<\/b>.<\/p>\n<p>Wenn Sie diese gespeicherte Prozedur nun von einer Access-Abfrage aus aufrufen wollen, m&uuml;ssen Sie den Wert des Parameters unmittelbar hinter dem Namen der gespeicherten Prozedur angeben. Das sieht dann wie folgt aus:<\/p>\n<pre>Exec dbo.spArtikelNachID 1<\/pre>\n<p>Dies liefert dann genau den gew&uuml;nschten Datensatz als Abfrageergebnis (siehe Bild 10).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2019_01\/pic_1172_012.png\" alt=\"Abfrage mit Parameter\" width=\"549,6265\" height=\"228,3065\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Abfrage mit Parameter<\/span><\/b><\/p>\n<h2>Parameter zur Laufzeit festlegen<\/h2>\n<p>Wenn Sie den Parameter zur Laufzeit &uuml;bergeben wollen, m&uuml;ssen Sie den Inhalt der Abfrage per VBA anpassen und diese dann ausf&uuml;hren. Wie dies gelingt, zeigen wir Ihnen in einem weiteren Beitrag namens <b>Gespeicherte Prozeduren per VBA <\/b>(<b>www.access-im-unternehmen.de\/1180<\/b>).<\/p>\n<h2>Gespeicherte Prozeduren ohne R&uuml;ckgabewerte<\/h2>\n<p>Gespeicherte Prozeduren k&ouml;nnen ja auch Code enthalten, der gar keine Daten zur&uuml;ckliefert, sondern beispielsweise nur eine Aktionsabfrage ausf&uuml;hren soll &#8211; beispielsweise, um Datens&auml;tze zu l&ouml;schen, zu bearbeiten oder auch einen neuen Datensatz anzulegen. Die folgende gespeicherte Prozedur l&ouml;scht beispielsweise einen Datensatz:<\/p>\n<pre>CREATE PROCEDURE dbo.spDeleteArtikelNachID \r\n@ArtikelID int\r\nAS\r\nSET NOCOUNT ON;\r\nDELETE FROM tblArtikel WHERE ArtikelID = @ArtikelID;<\/pre>\n<p>Diese gespeicherte Abfrage rufen Sie mit dem folgenden Befehl in einer Pass-Through-Abfrage auf:<\/p>\n<pre>Exec dbo.spDeleteArtikelNachID 1<\/pre>\n<p>Daraufhin erscheint die Meldung aus Bild 11. Kein Wunder: Wir m&uuml;ssen noch die Eigenschaft <b>Liefert Datens&auml;tze <\/b>auf den Wert <b>Nein <\/b>einstellen. Au&szlig;erdem k&ouml;nnen Sie diese gespeicherte Prozedur nur durch den Aufruf per Doppelklick auf den Eintrag der Pass-Through-Abfrage im Navigationsbereich von Access ausf&uuml;hren.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2019_01\/pic_1172_013.png\" alt=\"Fehlermeldung beim Versuch, das Ergebnis einer gespeicherten Prozedur ohne R&uuml;ckgabewerte zu ermitteln\" width=\"499,6607\" height=\"129,0372\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Fehlermeldung beim Versuch, das Ergebnis einer gespeicherten Prozedur ohne R&uuml;ckgabewerte zu ermitteln<\/span><\/b><\/p>\n<p>Wie Sie hierzu Feedback bekommen, besprechen wir ebenfalls im Beitrag <b>Gespeicherte Prozeduren per VBA<\/b>.<\/p>\n<h2>Meldungen protokollieren<\/h2>\n<p>Wenn Sie die Option <b>Meldungen protokollieren <\/b>aktiviert haben, werden Sie zun&auml;chst einmal keine Ver&auml;nderungen feststellen. Das k&ouml;nnen Sie jedoch &auml;ndern, wenn Sie einmal die <b>PRINT<\/b>-Anweisung in einer gespeicherten Prozedur nutzen.<\/p>\n<p>Wir wollen dies einmal auf dem kurzen Dienstweg erledigen und setzen die folgende Anweisung einfach in einer neuen Pass-Through-Abfrage ab, f&uuml;r die <b>Meldungen protokollieren <\/b>nat&uuml;rlich zuvor auf <b>Ja <\/b>eingestellt werden muss:<\/p>\n<pre>SELECT 1;\r\nPRINT ''''Eine Meldung vom SQL Server'''';\r\nPRINT ''''Noch eine Meldung vom SQL Server'''';<\/pre>\n<p>Beim Ausf&uuml;hren zeigt die Datenblattansicht das Ergebnis der Abfrage an, also den Wert <b>1 <\/b>in der ersten Zeile des ersten Datensatzes. Au&szlig;erdem tut sich etwas im Navigationsbereich von Access. Hier erscheint eine neue Tabelle mit dem Namen des aktuellen Benutzers sowie einer laufenden Nummer &#8211; in diesem Fall <b>Admin &#8211; 00<\/b>. Die Tabelle k&ouml;nnen wir aktuell noch nicht &ouml;ffnen, da diese gesperrt ist, solange die ausgef&uuml;hrte Abfrage noch angezeigt wird.<\/p>\n<p>Nach dem Schlie&szlig;en des betroffenen Fensters k&ouml;nnen wir diese jedoch &ouml;ffnen (siehe Bild 12). Sie enth&auml;lt jeweils einen Datensatz f&uuml;r jede Meldung. <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2019_01\/pic_1172_008.png\" alt=\"Tabelle mit den Meldungen vom SQL Server\" width=\"499,6607\" height=\"140,9104\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Tabelle mit den Meldungen vom SQL Server<\/span><\/b><\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>GespeicherteProzedurenMitPassthroughAbfragen.accdb<\/p>\n<p>Suedsturm_SQL.sql<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/12C03F4C-F886-4630-AAC0-45C35D1C9CA0\/aiu_1172.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>F&uuml;r den Zugriff auf die Daten einer SQL Server-Datenbank gibt es mehrere Methoden. Die erste ist das Einbinden der Tabellen per ODBC. Sie greifen dann &#8211; oberfl&auml;chlich betrachtet &#8211; genau wie auf lokale Daten zu. Die andere, performantere und auch f&uuml;r den Mehrbenutzerbetrieb effizientere Variante, ist der Zugriff &uuml;ber Pass-Through-Abfragen auf gespeicherte Prozeduren. Gespeicherte Prozeduren sind Skripte, die Anweisungen auf dem SQL Server ausgeben und die ihre Ergebnisse, also zum Beispiel gefundene Datens&auml;tze, zur&uuml;ckgeben k&ouml;nnen. Zugriff auf solche gespeicherten Prozeduren erhalten Sie &uuml;ber die Nutzung sogenannter Pass-Through-Abfragen. Wie Sie die gespeicherte Abfragen und Pass-Through-Abfragen kombinieren, um Daten vom SQL Server in Ihre Access-Datenbank zu bekommen, zeigt dieser Beitrag.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66012019,662019,44000029],"tags":[],"class_list":["post-55001172","post","type-post","status-publish","format-standard","hentry","category-66012019","category-662019","category-Abfragetechnik_und_SQL"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Gespeicherte Prozeduren mit Pass-Through-Abfragen - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gespeicherte Prozeduren mit Pass-Through-Abfragen\" \/>\n<meta property=\"og:description\" content=\"F&uuml;r den Zugriff auf die Daten einer SQL Server-Datenbank gibt es mehrere Methoden. Die erste ist das Einbinden der Tabellen per ODBC. Sie greifen dann - oberfl&auml;chlich betrachtet - genau wie auf lokale Daten zu. Die andere, performantere und auch f&uuml;r den Mehrbenutzerbetrieb effizientere Variante, ist der Zugriff &uuml;ber Pass-Through-Abfragen auf gespeicherte Prozeduren. Gespeicherte Prozeduren sind Skripte, die Anweisungen auf dem SQL Server ausgeben und die ihre Ergebnisse, also zum Beispiel gefundene Datens&auml;tze, zur&uuml;ckgeben k&ouml;nnen. Zugriff auf solche gespeicherten Prozeduren erhalten Sie &uuml;ber die Nutzung sogenannter Pass-Through-Abfragen. Wie Sie die gespeicherte Abfragen und Pass-Through-Abfragen kombinieren, um Daten vom SQL Server in Ihre Access-Datenbank zu bekommen, zeigt dieser Beitrag.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-13T21:05:29+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg06.met.vgwort.de\/na\/d771c225208e44dbbab7c46da42734be\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"13\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Gespeicherte Prozeduren mit Pass-Through-Abfragen\",\"datePublished\":\"2020-05-13T21:05:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/\"},\"wordCount\":2434,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/d771c225208e44dbbab7c46da42734be\",\"articleSection\":[\"1\\\/2019\",\"2019\",\"Abfragetechnik und SQL\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/\",\"name\":\"Gespeicherte Prozeduren mit Pass-Through-Abfragen - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/d771c225208e44dbbab7c46da42734be\",\"datePublished\":\"2020-05-13T21:05:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/d771c225208e44dbbab7c46da42734be\",\"contentUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/d771c225208e44dbbab7c46da42734be\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gespeicherte Prozeduren mit Pass-Through-Abfragen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Gespeicherte Prozeduren mit Pass-Through-Abfragen - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/","og_locale":"de_DE","og_type":"article","og_title":"Gespeicherte Prozeduren mit Pass-Through-Abfragen","og_description":"F&uuml;r den Zugriff auf die Daten einer SQL Server-Datenbank gibt es mehrere Methoden. Die erste ist das Einbinden der Tabellen per ODBC. Sie greifen dann - oberfl&auml;chlich betrachtet - genau wie auf lokale Daten zu. Die andere, performantere und auch f&uuml;r den Mehrbenutzerbetrieb effizientere Variante, ist der Zugriff &uuml;ber Pass-Through-Abfragen auf gespeicherte Prozeduren. Gespeicherte Prozeduren sind Skripte, die Anweisungen auf dem SQL Server ausgeben und die ihre Ergebnisse, also zum Beispiel gefundene Datens&auml;tze, zur&uuml;ckgeben k&ouml;nnen. Zugriff auf solche gespeicherten Prozeduren erhalten Sie &uuml;ber die Nutzung sogenannter Pass-Through-Abfragen. Wie Sie die gespeicherte Abfragen und Pass-Through-Abfragen kombinieren, um Daten vom SQL Server in Ihre Access-Datenbank zu bekommen, zeigt dieser Beitrag.","og_url":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-13T21:05:29+00:00","og_image":[{"url":"http:\/\/vg06.met.vgwort.de\/na\/d771c225208e44dbbab7c46da42734be","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"13\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Gespeicherte Prozeduren mit Pass-Through-Abfragen","datePublished":"2020-05-13T21:05:29+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/"},"wordCount":2434,"commentCount":1,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/d771c225208e44dbbab7c46da42734be","articleSection":["1\/2019","2019","Abfragetechnik und SQL"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/","url":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/","name":"Gespeicherte Prozeduren mit Pass-Through-Abfragen - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/d771c225208e44dbbab7c46da42734be","datePublished":"2020-05-13T21:05:29+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/#primaryimage","url":"http:\/\/vg06.met.vgwort.de\/na\/d771c225208e44dbbab7c46da42734be","contentUrl":"http:\/\/vg06.met.vgwort.de\/na\/d771c225208e44dbbab7c46da42734be"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Gespeicherte_Prozeduren_mit_PassThroughAbfragen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Gespeicherte Prozeduren mit Pass-Through-Abfragen"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55001172"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001172\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}