{"id":55001061,"date":"2016-12-01T00:00:00","date_gmt":"2020-05-22T13:34:38","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1061"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"SQL_ServerTools","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/","title":{"rendered":"SQL Server-Tools"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg09.met.vgwort.de\/na\/392418820fac431da0493950e63b273b\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Wenn Sie mit Access als Frontend arbeiten und mit dem SQL Server als Backend, kommen Sie nicht umhin, sich mit Verbindungszeichenfolgen, dem Verkn&uuml;pfen von Tabellen oder dem Ausprobieren und Absetzen von SQL-Abfragen direkt an den SQL Server auseinanderzusetzen. Dieser Beitrag stellt drei Tools vor, die Sie direkt in Ihre Access-Anwendung importieren k&ouml;nnen und mit denen Sie komfortabel Verbindungen definieren, Tabellen verkn&uuml;pfen und SQL-Abfragen an den SQL Server schicken k&ouml;nnen.<\/b><\/p>\n<h2>Verbindungszeichenfolgen verwalten<\/h2>\n<p>Optimalerweise gibt es immer nur eine Verbindungszeichenfolge innerhalb einer Datenbank. Wenn Sie jedoch eine Anwendung entwickeln, von der Sie immer wieder Zwischenst&auml;nde an die Benutzer verteilen, sei es zum Testen oder f&uuml;r den Produktivbetrieb, werden Sie mehrere verschiedene Verbindungszeichenfolgen nutzen m&uuml;ssen &#8211; also etwa eine f&uuml;r das Entwicklungssystem und eine f&uuml;r die Produktivsysteme.<\/p>\n<p>&uuml;blicherweise macht das Zusammenstellen von Verbindungszeichenfolgen immer wieder M&uuml;he, denn wer kann sich schon die verschiedenen Namen von SQL Server-Instanzen, die Parameter f&uuml;r die Windows- und die SQL Server-Authentifizierung oder die in der Verbindungszeichenfolge anzugebene Bezeichnung f&uuml;r den Treiber merken<\/p>\n<p>Hier setzt das Formular <b>frmVerbindungszeichenfolgen<\/b> aus Bild 1 an, das Sie ganz einfach in die gew&uuml;nschte Datenbank ziehen k&ouml;nnen &#8211; nebst einigen weiteren Objekten, die wir weiter unten noch auff&uuml;hren.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_001.png\" alt=\"Das Formular frmVerbindungszeichenfolgen\" width=\"499,6607\" height=\"352,431\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Das Formular frmVerbindungszeichenfolgen<\/span><\/b><\/p>\n<p>In diesem Formular k&ouml;nnen Sie mit den Schaltfl&auml;chen im unteren Bereich die aktuelle Verbindungszeichenfolge testen, die Verbindungszeichenfolge als Standard setzen, eine neue Verbindungszeichenfolge erstellen, die aktuelle Verbindungszeichenfolge als neue Verbindungszeichenfolge kopieren oder den aktuellen Eintrag einfach l&ouml;schen.<\/p>\n<p>Dar&uuml;ber finden Sie beispielsweise das Kombinationsfeld <b>Schnellauswahl<\/b>, mit dem Sie direkt eines der bereits angelegten Elemente ausw&auml;hlen und seine Daten im Formular anzeigen k&ouml;nnen (s. Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_002.png\" alt=\"Auswahl einer Verbindungszeichenfolge &uuml;ber die Bezeichnung\" width=\"499,6607\" height=\"129,8401\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Auswahl einer Verbindungszeichenfolge &uuml;ber die Bezeichnung<\/span><\/b><\/p>\n<p>Mit dem Feld <b>Bezeichnung <\/b>legen Sie die Bezeichnung fest, &uuml;ber die Sie die einzelnen Eintr&auml;ge per Schnellauswahl selektieren k&ouml;nnen. Das Feld <b>SQL Server <\/b>erwartet den Namen des Servers, im Falle der <b>LocalDB<\/b>-Standardinstanz also beispielsweise <b>(localdb)\\MSSQLLocalDB<\/b>.<\/p>\n<p>Die Option <b>Port <\/b>erwartet die Angabe des Ports, &uuml;ber den auf den SQL Server zugegriffen wird. Dies ist standardm&auml;&szlig;ig der Wert <b>3306<\/b>. Das Kontrollk&auml;stchen <b>LocalDB <\/b>k&ouml;nnen Sie aktivieren, wenn Sie &uuml;ber eine <b>LocalDB<\/b>-Instanz statt &uuml;ber eine SQL Server-Instanz auf die Datenbank zugreifen wollen.<\/p>\n<p>Das darunter liegende Kombinatonsfeld <b>Datenbank <\/b>erlaubt die Auswahl der Datenbanken f&uuml;r den aktuellen SQL Server. Um dieses Kombinationsfeld zu f&uuml;llen, klicken Sie auf die Schaltfl&auml;che rechts vom Kombinationsfeld. Anschlie&szlig;end k&ouml;nnen Sie unter den verf&uuml;gbaren Datenbanken w&auml;hlen (s. Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_003.png\" alt=\"Auswahl einer Datenbank\" width=\"499,6607\" height=\"352,431\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Auswahl einer Datenbank<\/span><\/b><\/p>\n<p>Die folgenden Eingestellungen betreffen die Sicherheit. Hier w&auml;hlen Sie zun&auml;chst, ob Sie die Windows-Authentifizierung oder die SQL Server-Authentifizierung nutzen wollen. Zur Erl&auml;uterung nochmal der Unterschied: Wenn Sie die Windows-Authentifizierung nutzen, werden die Windows-Anmeldedaten als Benutzerdaten verwendet. Dies ist praktischer, da Sie sich auf diese nicht noch einmal separat mit weiteren Daten am SQL Server anmelden m&uuml;ssen. Die SQL Server-Authentifizierung verlangt genau dies: In diesem Fall werden im SQL Server f&uuml;r jeden Benutzer, der auf die Daten zugreifen soll, nochmals neue Benutzerdaten inklusive Kennwort angelegt. Diese m&uuml;ssen dann entweder beim Zugriff angegeben werden oder Sie speichern diese irgendwo in der Frontend-Datenbank, um sie f&uuml;r den Zugriff in die Verbindungszeichenfolge zu integrieren.<\/p>\n<p>Wenn Sie die SQL Server-Authentifizierung w&auml;hlen, k&ouml;nnen Sie die Zugangsdaten, also den <b>Benutzernamen <\/b>und das <b>Kennwort<\/b>, in die beiden gleichnamigen Felder im Formular <b>frmVerbindungszeichenfolgen <\/b>eintragen.<\/p>\n<p>Mit dem Kombinationsfeld <b>Treiber <\/b>w&auml;hlen Sie den Treiber f&uuml;r den Zugriff auf die Datenbank aus. Hier k&ouml;nnen Sie nicht nur SQL Server-Treiber angeben, sondern auch Treiber etwa f&uuml;r MySQL (s. Bild 4). Die Treiber werden &uuml;brigens in der Tabelle <b>tblTreiber <\/b>gespeichert, die Sie manuell pflegen m&uuml;ssen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_005.png\" alt=\"Auswahl des gew&uuml;nschten Treibers\" width=\"549,6265\" height=\"432,8311\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Auswahl des gew&uuml;nschten Treibers<\/span><\/b><\/p>\n<p>Mit dem Kontrollk&auml;stchen <b>Log <\/b>geben Sie an, ob der Parameter, der festlegt, ob die Interaktion mit dem Server geloggt werden soll, hinzugef&uuml;gt werden soll. Dieser Teil lautet dann so:<\/p>\n<pre>LOG_QUERY=1<\/pre>\n<p>Diese Option ist nur f&uuml;r MySQL vorgesehen, nicht f&uuml;r den SQL Server.<\/p>\n<p>Das Textfeld <b>Verbindungszeichenfolge <\/b>zeigt dann jeweils den aktuellen, den Angaben entsprechenden String f&uuml;r die Verbindungszeichenfolge.<\/p>\n<p>Mit einem Klick auf die Schaltfl&auml;che <b>Testen <\/b>pr&uuml;fen Sie, ob die Verbindungszeichenfolge funktioniert. Ist dies der Fall, haben Sie die Grundlage geschaffen, mit den &uuml;brigen beiden Tools entweder Verkn&uuml;pfungen zu Tabellen herzustellen oder direkt SQL-Befehle an die festgelegte Datenbank zu schicken.<\/p>\n<p>Au&szlig;erdem k&ouml;nnen Sie die in den Beitr&auml;gen <b>RDBMS-Zugriff per VBA: Verbindungen <\/b>(<b>www.access-im-unternehmen.de\/1054<\/b>) und <b>RDBMS-Zugriff per VBA: Daten abfragen <\/b>(<b>www.access-im-unternehmen.de\/1062<\/b>) vorgestellten Techniken nutzen, die auf die Funktionen <b>Standardverbindungszeichenfolge<\/b> oder <b>VerbindungszeichenfolgeNachID <\/b>zugreifen. Diese nutzen n&auml;mlich die Tabelle <b>tblVerbindungszeichenfolgen<\/b>, die auch vom Formular <b>frmVerbindungszeichenfolgen <\/b>gef&uuml;llt wird.<\/p>\n<h2>Tabellen verkn&uuml;pfen<\/h2>\n<p><!--30percent--><\/p>\n<p>Das zweite sehr praktische Formular der Tool-Sammlung ist das Formular <b>frmTabellenVerknuepfen <\/b>aus Bild 5. Es erlaubt im oberen Bereich die Auswahl einer der in der Tabelle <b>tblVerbindungszeichenfolgen <\/b>gespeicherten Verbindungen. Nach der Auswahl liest sie automatisch alle Tabellen der dort festgelegten Datenbank ein und zeigt diese im Listenfeld mit der Bezeichnung <b>Tabellen <\/b>an. Rechts neben dem Kombinationsfeld finden Sie noch eine kleine Schaltfl&auml;chen mit drei Punkten (<b>&#8230;<\/b>) als Beschriftung. Wenn Sie darauf klicken, &ouml;ffnen Sie automatisch das bereits erw&auml;hnte Formular <b>frmVerbindungszeichenfolgen<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_006.png\" alt=\"Verkn&uuml;pfen von Tabellen \" width=\"549,6265\" height=\"339,4754\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Verkn&uuml;pfen von Tabellen <\/span><\/b><\/p>\n<p>Dieses erscheint dann neben dem aufrufenden Formular und zeigt die Daten der aktuell im Formular <b>frmTabellenVerknuepfen <\/b>ausgew&auml;hlten Verbindungszeichenfolge an. Sie k&ouml;nnen die Daten nun bearbeiten, aber auch &uuml;ber die Schnellauswahl eine andere Verbindungszeichenfolge im Formular <b>frmVerbindungszeichenfolgen <\/b>ausw&auml;hlen. Wenn Sie das Formular <b>frmVerbindungszeichenfolgen <\/b>dann schlie&szlig;en, wird die gew&auml;hlte Verbindungszeichenfolge im entsprechenden Kombinationsfeld des Formulars <b>frmTabellenVerknuepfen <\/b>angezeigt (s. Bild 6).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_007.png\" alt=\"&ouml;ffnen des Formulars frmVerbindungszeichenfolgen zur Ansicht und Auswahl einer Verbindungszeichenfolge\" width=\"599,593\" height=\"399,4494\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: &ouml;ffnen des Formulars frmVerbindungszeichenfolgen zur Ansicht und Auswahl einer Verbindungszeichenfolge<\/span><\/b><\/p>\n<p>Wenn die Datenbank noch keine verkn&uuml;pften Tabellen enth&auml;lt, k&ouml;nnen Sie diese nun hinzuf&uuml;gen. Dazu markieren Sie einfach die zu verkn&uuml;pfenden Tabellen im Listenfeld. Nach Abschluss der Auswahl klicken Sie auf die Schaltfl&auml;che <b>Tabellen verkn&uuml;pfen<\/b>, um die Verkn&uuml;pfungen hinzuzuf&uuml;gen. Das Listenfeld hat ein paar interessante Features. Das erste ist, dass Sie damit mehrere Tabellen gleichzeitig ausw&auml;hlen k&ouml;nnen, und zwar wie bei der Auswahl im Windows Explorer. Um mehrere zusammenh&auml;ngende Eintr&auml;ge zu selektieren, klicken Sie den ersten Eintrag an und dann bei gedr&uuml;ckter Umschalttaste den letzten Eintrag. Wenn Sie nicht zusammenh&auml;ngende Eintr&auml;ge ausw&auml;hlen m&ouml;chten, halten Sie einfach die <b>Strg<\/b>-Taste gedr&uuml;ckt. Dann k&ouml;nnen Sie durch Anklicken einzelne Eintr&auml;ge ausw&auml;hlen, aber auch wieder aus der Auswahl entfernen.<\/p>\n<p>Das zweite, wesentlich interessantere Feature offenbart sich erst, wenn Sie das erste Mal einige Tabellenverkn&uuml;pfungen zur Datenbank hinzugef&uuml;gt haben. Wenn Sie dann das Formular <b>frmTabellenVerknuepfen <\/b>&ouml;ffnen, hebt es die Tabellennamen der Tabellen, die bereits als Verkn&uuml;pfung in der Datenbank vorhanden sind, direkt mit einer entsprechenden Markierung hervor (s. Bild 7). Wozu das n&uuml;tzlich ist Wenn Sie mit einer Frontend-Datenbank auf eine SQL Server- oder auch MySQL-Datenbank zugreifen, die sehr viele Tabellen enth&auml;lt, brauchen Sie nicht immer Zugriff auf alle Tabellen des Backends.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_008.png\" alt=\"Das Listenfeld zeigt die bereits vorhandenen Verkn&uuml;pfungen schwarz hinterlegt an.\" width=\"649,559\" height=\"395,418\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Das Listenfeld zeigt die bereits vorhandenen Verkn&uuml;pfungen schwarz hinterlegt an.<\/span><\/b><\/p>\n<p>Bei mir ist das beispielsweise der Fall bei der Kundenverwaltung, die &uuml;ber einige Verkn&uuml;pfungen zu den Tabellen meines Webshopsystems verf&uuml;gt &#8211; aber ich muss l&auml;ngst nicht auf alle Backendtabellen zugreifen! Wenn ich dann das Formular <b>frmTabellenverknuep-fungen<\/b> aufrufe, um die Verkn&uuml;pfungen beispielsweise nach einer &auml;nderung der Adresse des Internetservers wieder zu aktualisieren, dann brauche ich nicht immer alle Tabellen neu auszuw&auml;hlen, sondern das Listenfeld selektiert mir die bisher verwendeten Tabellen direkt vor. Auf diese Weise brauche ich nur noch einen Mausklick auf die Schaltfl&auml;che <b>Tabellen verkn&uuml;pfen<\/b>, um die Tabellen neu einzubinden.<\/p>\n<h2>SQL-Anweisungen zum SQL Server schicken<\/h2>\n<p>Das dritte und letzte Formular im Bunde ist das Formular <b>frmSQLBefehle <\/b>(s. Bild 8). Seine Aufgabe ist das Erfassen und Absenden von SQL-Anweisungen direkt zum SQL Server.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_004.png\" alt=\"Formular zum Senden von SQL-Anweisungen direkt zum SQL Server\" width=\"649,559\" height=\"575,814\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Formular zum Senden von SQL-Anweisungen direkt zum SQL Server<\/span><\/b><\/p>\n<p>Bevor eine solche Abfrage abgesendet werden kann, sind zwei Schritte n&ouml;tig. Als Erstes m&uuml;ssen Sie die Verbindung ausw&auml;hlen, &uuml;ber welche die Abfrage geschickt werden soll. Dazu enth&auml;lt das Formular ein Kombinationsfeld, wie Sie es auch schon im Formular <b>frmTabellenVerknuepfen <\/b>kennen gelernt haben. Auch hier k&ouml;nnen Sie nicht nur die gew&uuml;nschte Verbindungszeichenfolge ausw&auml;hlen, sondern per Klick auf die Schaltfl&auml;che mit den drei Punkten (<b>&#8230;<\/b>) das Formular <b>frmVerbindungszeichenfolgen<\/b> &ouml;ffnen, um die Verbindung zu bearbeiten oder zu &auml;ndern.<\/p>\n<p>Danach kann es losgehen: Sie tragen die gew&uuml;nschte SQL-Anweisung in das Feld <b>SQL <\/b>ein und klicken auf die Schaltfl&auml;che <b>Ausf&uuml;hren<\/b>. Wenn Sie dort beispielsweise eine Abfrage &uuml;ber die drei Tabellen <b>tblArtikel<\/b>, <b>tblKategorien <\/b>und <b>tblLieferanten <\/b>wie im Screenshot eingeben, liefert das Unterformular im unteren Bereich des Formulars genau die gew&uuml;nschten Daten. Diese sind, da sie mit einer Pass-Through-Abfrage geliefert wurden, nat&uuml;rlich schreibgesch&uuml;tzt.<\/p>\n<p>Aber Sie k&ouml;nnen mit diesem Formular auch Daten bearbeiten. Dazu geben Sie einfach eine entsprechende <b>INSERT INTO<\/b>-Abfrage (zum Anlegen von Datens&auml;tzen), eine <b>UPDATE<\/b>-Abfrage (zum &auml;ndern) oder eine <b>DELETE<\/b>-Abfrage (zum L&ouml;schen von Datens&auml;tzen) ein und f&uuml;hren diese dann mit der Schaltfl&auml;che <b>Ausf&uuml;hren <\/b>aus.<\/p>\n<p>Das Beispiel aus Bild 9 zeigt, wie es gelingt. Hier selektieren wir im ersten Anlauf zun&auml;chst alle Datens&auml;tze der Tabelle <b>tblBestelldetails<\/b>, um zu schauen, welche Datens&auml;tze wir zu Beispielzwecken l&ouml;schen k&ouml;nnen:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_009.png\" alt=\"L&ouml;schen von Datens&auml;tzen per Formular\" width=\"700\" height=\"349,2538\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: L&ouml;schen von Datens&auml;tzen per Formular<\/span><\/b><\/p>\n<pre>SELECT * FROM tblBestelldetails<\/pre>\n<p>Danach geben wir im SQL-Textfeld die folgende Anweisung ein, um alle Bestelldetails zu der Bestellung mit der ID <b>10248 <\/b>zu l&ouml;schen:<\/p>\n<pre>DELETE FROM tblBestelldetails WHERE BestellungID = 10248<\/pre>\n<p>Das praktische an diesem Formular ist, dass auch das Ergebnis dieser Aktionsabfrage im Ergebnisfenster ausgegeben wird &#8211; in diesem Fall in einem Feld namens <b>AnzahlGeloescht <\/b>mit dem Wert <b>3<\/b>.<\/p>\n<h2>Anzeige von Fehlern beim Ausf&uuml;hren<\/h2>\n<p>Weiterhin ist praktisch, dass in diesem unteren Bereich auch eventuell bei der Ausf&uuml;hrung auftretende Fehler aufgef&uuml;hrt werden. Wenn Sie beispielsweise einen Artikel nach seinem Artikelnamen l&ouml;schen wollen, aber versehentlich den Feldnamen <b>Artikel <\/b>statt <b>Artikelname <\/b>eingeben, erfahren Sie im Ergebnis direkt, was beim Ausf&uuml;hren schiefgelaufen ist (s. Bild 10).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_010.png\" alt=\"Ausgabe der beim Ausf&uuml;hren aufgetretenen Fehler\" width=\"599,593\" height=\"449,9214\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Ausgabe der beim Ausf&uuml;hren aufgetretenen Fehler<\/span><\/b><\/p>\n<h2>Ausf&uuml;hren mehrerer SQL-Anweisungen<\/h2>\n<p>Sie m&uuml;ssen sich nicht wie in der SQL-Ansicht von Abfragen unter Access auf die Eingabe einer einzigen Abfrage beschr&auml;nken, sondern Sie k&ouml;nnen auch mehrere Abfragen hintereinander eingeben und diese in der entsprechenden Reihenfolge mit der Schaltfl&auml;che <b>Ausf&uuml;hren <\/b>an den SQL Server schicken.<\/p>\n<p>Dies sieht dann etwa wie in Bild 11 aus, wo wir nacheinander die Details zu einer Bestellung aus der Tabelle <b>tblBestelldetails <\/b>l&ouml;schen und dann den Bestelldatensatz aus der Tabelle <b>tblBestellungen <\/b>selbst. Einziger Haken an dieser Vorgehensweise ist, dass das Ergebnis-Datenblatt nur noch das Resultet der zuletzt ausgef&uuml;hrten Anweisung liefert.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_011.png\" alt=\"Ausf&uuml;hren mehrerer SQL-Anweisungen\" width=\"599,593\" height=\"353,0147\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Ausf&uuml;hren mehrerer SQL-Anweisungen<\/span><\/b><\/p>\n<h2>Markieren der auszuf&uuml;hrenden Zeile<\/h2>\n<p>Das ist aber auch kein Problem, denn wir haben noch ein Feature aus dem Editor des SQL Server Management Studios &uuml;bernommen: Damit k&ouml;nnen Sie zwar mehrere Abfragen untereinander in das Textfeld <b>SQL <\/b>eingeben.<\/p>\n<p>Sie m&uuml;ssen diese aber nicht zwingend in einem Rutsch hintereinander ausf&uuml;hren! Stattdessen k&ouml;nnen Sie den jeweils auszuf&uuml;hrenden Teil markieren und dann die Schaltfl&auml;che <b>Ausf&uuml;hren <\/b>bet&auml;tigen.<\/p>\n<p>Der markierte Teil wird zur Sicherheit hinter der Schaltfl&auml;che <b>Ausf&uuml;hren <\/b>angezeigt, wie in Bild 12 gut zu erkennen ist. Auf diese Weise k&ouml;nnen Sie, was gerade beim Testen einer Anwendung praktisch ist, mehrere Test-Anweisungen in ein Textfeld schreiben und die Anweisungen nach Bedarf markieren und ausf&uuml;hren.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_012.png\" alt=\"Schrittweises Ausf&uuml;hren von SQL-Anweisungen\" width=\"599,593\" height=\"349,4668\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Schrittweises Ausf&uuml;hren von SQL-Anweisungen<\/span><\/b><\/p>\n<p>Das ist nat&uuml;rlich nicht auf Aktionsabfragen beschr&auml;nkt, Sie k&ouml;nnen dort auch mehrere <b>SELECT<\/b>-Anweisungen hintereinander eintragen und nach entsprechender Markierung ausf&uuml;hren.<\/p>\n<h2>Tastenk&uuml;rzel zum Ausf&uuml;hren<\/h2>\n<p>Um das Feeling aus dem VBA-Editor her&uuml;berzuholen, haben wir noch die Taste <b>F5 <\/b>so belegt, dass Sie diese statt der Schaltfl&auml;che <b>Ausf&uuml;hren <\/b>zum Absenden der SQL-Anweisung nutzen k&ouml;nnen.<\/p>\n<h2>Speichern von Abfragen<\/h2>\n<p>Als weiteres interessantes Feature haben wir eine Tabelle hinterlegt, welche die jeweils verwendete Verbindungszeichenfolge sowie die in das Feld SQL eingebenen SQL-Anweisungen speichert. Diese Tabelle hei&szlig;t <b>tblSQLBefehle <\/b>und ist als Datenherkunft des Formulars <b>frmSQLBefehle <\/b>hintelegt. Die jeweils eingegebenen Daten werden direkt in dieser Tabelle gespeichert und werden dementsprechend beim Schlie&szlig;en und erneuten &ouml;ffnen des Formulars direkt wieder angezeigt.<\/p>\n<p>Sie k&ouml;nnen auch mehrere S&auml;tze von Anweisungen definieren und diese unter verschiedenen Bezeichnungen in jeweils eigenen Datens&auml;tzen speichern.<\/p>\n<h2>Einsatz in eigenen Anwendungen<\/h2>\n<p>Wenn Sie die drei Formulare und die &uuml;brigen Tools in eigenen Anwendungen einsetzen m&ouml;chten, m&uuml;ssen Sie lediglich einige Datenbankobjekte aus der Beispieldatenbank in die Zieldatenbank importieren. Es handelt sich um diese Elemente:<\/p>\n<ul>\n<li>Tabelle <b>tblFehler<\/b><\/li>\n<li>Tabelle <b>tblSQLBefehle<\/b><\/li>\n<li>Tabelle <b>tblTreiber<\/b><\/li>\n<li>Tabelle <b>tblVerbindungszeichenfolgen<\/b><\/li>\n<li>Formular <b>frmLogin<\/b><\/li>\n<li>Formular <b>frmSQLBefehle<\/b><\/li>\n<li>Formular <b>frmTabellenVerknuepfen<\/b><\/li>\n<li>Formular <b>frmVerbindungszeichenfolgen<\/b><\/li>\n<li>Formular <b>sfmSQLBefehle<\/b><\/li>\n<li>Modul <b>mdlTools<\/b><\/li>\n<li>Modul <b>mdlToolsSQLServer<\/b><\/li>\n<\/ul>\n<p>Die Tabellen sind in der Beispieldatenbank als ausgeblendet gekennzeichnet. Wenn Sie diese sichtbar machen wollen, aktivieren Sie die Anzeige der ausgeblendeten Objekte f&uuml;r die relevanten Objekte wie in Bild 13.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_06\/pic_1061_013.png\" alt=\"Einblenden ausgeblendeter Tabellen\" width=\"649,559\" height=\"525,9925\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: Einblenden ausgeblendeter Tabellen<\/span><\/b><\/p>\n<p>Sie k&ouml;nnen die Objekte am einfachsten in Ihre eigene Datenbank importieren, indem Sie beide Datenbanken &ouml;ffnen und die Objekte per Drag and Drop von der einen in die andere Datenbank ziehen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>SQLServerTools.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/D6771524-184E-4CC6-8500-7A779B109C20\/aiu_1061.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn Sie mit Access als Frontend arbeiten und mit dem SQL Server als Backend, kommen Sie nicht umhin, sich mit Verbindungszeichenfolgen, dem Verkn&uuml;pfen von Tabellen oder dem Ausprobieren und Absetzen von SQL-Abfragen direkt an den SQL Server auseinanderzusetzen. Dieser Beitrag stellt drei Tools vor, die Sie direkt in Ihre Access-Anwendung importieren k&ouml;nnen und mit denen Sie komfortabel Verbindungen definieren, Tabellen verkn&uuml;pfen und SQL-Abfragen an den SQL Server schicken k&ouml;nnen.<\/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":[662016,66062016,44000022],"tags":[],"class_list":["post-55001061","post","type-post","status-publish","format-standard","hentry","category-662016","category-66062016","category-SQL_Server_und_Co"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SQL Server-Tools - 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\/SQL_ServerTools\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server-Tools\" \/>\n<meta property=\"og:description\" content=\"Wenn Sie mit Access als Frontend arbeiten und mit dem SQL Server als Backend, kommen Sie nicht umhin, sich mit Verbindungszeichenfolgen, dem Verkn&uuml;pfen von Tabellen oder dem Ausprobieren und Absetzen von SQL-Abfragen direkt an den SQL Server auseinanderzusetzen. Dieser Beitrag stellt drei Tools vor, die Sie direkt in Ihre Access-Anwendung importieren k&ouml;nnen und mit denen Sie komfortabel Verbindungen definieren, Tabellen verkn&uuml;pfen und SQL-Abfragen an den SQL Server schicken k&ouml;nnen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T13:34:38+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg09.met.vgwort.de\/na\/392418820fac431da0493950e63b273b\" \/>\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=\"12\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"SQL Server-Tools\",\"datePublished\":\"2020-05-22T13:34:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/\"},\"wordCount\":2384,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/392418820fac431da0493950e63b273b\",\"articleSection\":[\"2016\",\"6\\\/2016\",\"SQL Server und Co.\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/\",\"name\":\"SQL Server-Tools - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/392418820fac431da0493950e63b273b\",\"datePublished\":\"2020-05-22T13:34:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/392418820fac431da0493950e63b273b\",\"contentUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/392418820fac431da0493950e63b273b\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerTools\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server-Tools\"}]},{\"@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":"SQL Server-Tools - 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\/SQL_ServerTools\/","og_locale":"de_DE","og_type":"article","og_title":"SQL Server-Tools","og_description":"Wenn Sie mit Access als Frontend arbeiten und mit dem SQL Server als Backend, kommen Sie nicht umhin, sich mit Verbindungszeichenfolgen, dem Verkn&uuml;pfen von Tabellen oder dem Ausprobieren und Absetzen von SQL-Abfragen direkt an den SQL Server auseinanderzusetzen. Dieser Beitrag stellt drei Tools vor, die Sie direkt in Ihre Access-Anwendung importieren k&ouml;nnen und mit denen Sie komfortabel Verbindungen definieren, Tabellen verkn&uuml;pfen und SQL-Abfragen an den SQL Server schicken k&ouml;nnen.","og_url":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T13:34:38+00:00","og_image":[{"url":"http:\/\/vg09.met.vgwort.de\/na\/392418820fac431da0493950e63b273b","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"12\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"SQL Server-Tools","datePublished":"2020-05-22T13:34:38+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/"},"wordCount":2384,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/392418820fac431da0493950e63b273b","articleSection":["2016","6\/2016","SQL Server und Co."],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/","url":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/","name":"SQL Server-Tools - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/392418820fac431da0493950e63b273b","datePublished":"2020-05-22T13:34:38+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/#primaryimage","url":"http:\/\/vg09.met.vgwort.de\/na\/392418820fac431da0493950e63b273b","contentUrl":"http:\/\/vg09.met.vgwort.de\/na\/392418820fac431da0493950e63b273b"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerTools\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"SQL Server-Tools"}]},{"@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\/55001061","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=55001061"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001061\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}