{"id":55000329,"date":"2006-02-01T00:00:00","date_gmt":"2020-05-06T15:18:16","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=329"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"AccessFAQ_Rund_um_Access","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/","title":{"rendered":"Access-FAQ: Rund um Access"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/dff5f17892f7459ea8e5388b0fe3957a\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<h3>Zusammenfassung<\/h3>\n<p>Lernen Sie die L&ouml;sung zu den h&auml;ufigsten VBA-Problemen kennen.<\/p>\n<h3>Techniken<\/h3>\n<p>VBA, DAO, ADO, SQL<\/p>\n<h3>Voraussetzungen<\/h3>\n<p>Access 97 und h&ouml;her<\/p>\n<h3>Beispieldateien<\/h3>\n<p><a href=''fileadmin\/files\/acc0106tt01.zip''>FAQ12_A97.mdb (Access 97)FAQ12_A00.mdb (Access 2000 und h&ouml;her)<\/a><\/p>\n<h3><\/h3>\n<p><b>Karl Donaubauer, Wien<\/b><\/p>\n<p><b>In der Access-FAQ von Karl Donaubauer (www.donkarl.com) finden Sie die meistgestellten Fragen und Anworten zum Thema Microsoft Access. In dieser Beitragsreihe stellt Karl Donaubauer die wichtigsten Eintr&auml;ge im Detail vor und zeigt Ihnen entsprechende L&ouml;sungen anhand praxisnaher Beispiele. Im zw&ouml;lften Teil werden L&ouml;sungen f&uuml;r die h&auml;ufigsten Probleme in VBA vorgestellt.<\/b><\/p>\n<p>Jahrelang war eine der h&auml;ufigsten Fragen zum Thema Access-Programmierung, ob nun DAO oder ADO als Datenzugriffstechnik zu lernen und zu verwenden sei. Heute kommt die Frage etwas seltener, auch, weil das Match inzwischen entschieden ist. Microsoft hat von cirka 1999 bis 2001\/2002, das hei&szlig;t, ab der Ver&ouml;ffentlichung von Access 2000 bis in die Zeit von Access XP hinein, versucht, das althergebrachte DAO loszuwerden und durch ADO und ADOX zu ersetzen. Viele Buchautoren sind dem MS-Marketingwirbel erlegen und haben dieses Anliegen freudig weiterpropagiert. Allein, die &uuml;berw&auml;ltigende Mehrheit der Access-Programmierer ist MS hier nicht gefolgt, sondern bei DAO geblieben. ADO konnte sich nur in Nischen durchsetzen, etwa bei ADPs und beim Zugriff auf JET-Dateien im klassischen ASP.<\/p>\n<p>Bei der reinen Entwicklungsarbeit mit Access, JET und MDBs hatte ADO keine Chance, weil DAO und JET als Duo gewachsen, besser integriert und meist performanter sind und waren. Da half es auch nichts, dass der Zugriff auf manche Erweiterungen in JET 4.0 nur f&uuml;r ADO erm&ouml;glicht wurde, w&auml;hrend DAO von MS bewusst vernachl&auml;ssigt wurde. Bei der t&auml;glichen Brotarbeit war und ist DAO einfach beliebter. Microsoft hat diese Realit&auml;t sp&auml;t, aber doch akzeptiert. Wenn man in Access 2000 oder XP eine neue Datenbank anlegt, ist standardm&auml;&szlig;ig nur der Verweis auf ADO vorhanden. Das f&uuml;hrte zu millionenfachen Verweisproblemen und ebenso vielen Fragen in Access-Foren. Bei einer neuen Datenbank in Access 2003 hingegen ist nicht nur der DAO-Verweis wieder vorhanden, sondern er steht in der Reihenfolge &uuml;ber dem ADO-Verweis. In der n&auml;chsten Version von Access gibt es sogar zum ersten Mal nach vielen Jahren wieder Anpassungen und Neuerungen in DAO.<\/p>\n<p>Das ist nicht nur die Konsequenz der Beharrlichkeit der Access-Gemeinde. Das MS-Marketing konzentriert sich seit Jahren ausschlie&szlig;lich auf .NET und damit ADO.NET. Der Name ist mehr oder weniger eine Finte, denn diese Zugriffstechnologie hat nicht sehr viel mit dem klassischen ADO zu tun. ADO ist also auch aus Marketingsicht bereits wieder veraltet. Fazit der jahrelangen Schlacht:<\/p>\n<li>DAO ist ein Evergreen und K&ouml;nigin f&uuml;r Access\/JET\/MDBs.<\/li>\n<li>ADO regiert bei ADPs, also Access-Projekten mit dem MS SQL Server als Backend.<\/li>\n<li>ADOX , die ADO-Erweiterung f&uuml;r JET, war nur eine Episode.<\/li>\n<li>ADO.NET k&ouml;nnte die Zukunft in allen MS-Anwendungen sein. MS hat es aber noch nicht geschafft, .NET ernsthaft in die Office-Welt und -Programmierung zu integrieren. Sie sollten auch als vielleicht reiner Access-Entwickler diese interessante Technologie im Auge behalten. Sie ist aber noch nicht mit Access oder VBA nutzbar.<\/li>\n<p>Eines der ersten Probleme jedes Access-VBA-Programmierers ist ebenso ein beliebtes Streitthema unter erfahrenen Programmierern: Wann ist bei Bez&uuml;gen der Punkt, wann das Ausrufezeichen als Trennzeichen voranzusetzen oder ist die Verwendung der String-Schreibweise generell vorzuziehen<\/p>\n<p>Eine einfache Grundregel ist: vor Objekten ein Ausrufezeichen, vor Auflistungen und Eigenschaften ein Punkt. Eine andere bekannte Merkregel lautet: Wenn nach dem Trennzeichen ein Element folgt, das fix in Access eingebaut ist, dann geh&ouml;rt der Punkt dorthin. Wenn das Element benutzerdefiniert ist, dann verwendet man das Ausrufezeichen. Ein Beispiel (in einer Zeile):<\/p>\n<pre>Application.Forms!frmKunden.Controls!Nachname.Visible<\/pre>\n<p>Die Forms-Auflistung ist von Access vorgegeben, deshalb wird hier der Punkt vorangestellt. Das Formular frmKunden wurde vom Entwickler erstellt, deshalb kommt hier das Ausrufezeichen zum Zuge. Die Controls-Auflistung ist wieder ein eingebautes Element von Access. Nachname ist ein benutzerdefinierter Steuerelementname. Die Eigenschaft Visible stammt wiederum von Access.<\/p>\n<p>Diese Regel gilt auch f&uuml;r die meistangewandte Kurzform:<\/p>\n<pre>Forms!frmKunden!Nachname.Visible<\/pre>\n<p>So einfach diese Grundregeln sind, so diffizil wird es im Detail, weil VBA sehr variabel ist und oft mehrere Varianten zul&auml;sst. Eine Quelle der Unsicherheit und der h&auml;ufigste Streitpunkt ist dabei Punkt oder Ausrufezeichen nach dem Schl&uuml;sselwort Me. Mit Me bezieht man sich auf das Objekt, das hei&szlig;t die Instanz der Klasse, in der der aktuelle Code ausgef&uuml;hrt wird. In Access ist das meist ein Formular oder ein Bericht. Nach den oben angef&uuml;hrten Regeln m&uuml;sste man sich auf Steuerelemente mit Ausrufezeichen beziehen, also: Me!MeinSteuerelement.<\/p>\n<p>Steuerelemente sind in VB und VBA aber nicht nur Objekte, sondern auch Eigenschaften von Formularen. Deshalb funktioniert ebenso: Me.MeinSteuerelement.<\/p>\n<p>Manche Programmierer bevorzugen diese Schreibweise, weil sie damit im VBA-Editor Intellisense nutzen k&ouml;nnen, ihnen also automatisch die Liste der im jeweiligen Kontext verf&uuml;gbaren Objekte und Eigenschaften angezeigt wird (siehe Bild 1).<\/p>\n<p><IMG height=\"202\" src=\"..\/fileadmin\/_temp_\/{2DC8127F-1149-46CC-A335-396671E44353}\/pic001.png\" width=\"357\" border=\"0\"><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Punkt bringt Intellisense im Kontext.<\/span><\/b><\/p>\n<p>Bei Verwendung des Ausrufezeichens tritt Intellisense nicht in Aktion. Sie k&ouml;nnen zwar mit der Tastenkombination STRG + Leertaste die Auswahlliste erzwingen, diese zeigt dann aber nicht die in diesem Kontext verf&uuml;gbaren Eintr&auml;ge, sondern alle f&uuml;r den VBA-Code in der aktuellen Anwendung verf&uuml;gbaren Schl&uuml;sselworte und Objekte an (siehe Bild 2).<\/p>\n<p><IMG height=\"193\" src=\"..\/fileadmin\/_temp_\/{2DC8127F-1149-46CC-A335-396671E44353}\/pic002.png\" width=\"368\" border=\"0\"><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Auswahlliste ohne Kontext<\/span><\/b><\/p>\n<p>Die Punkt-Schreibweise hat also einen unbestreitbaren Vorteil. Der Nachteil ist jedoch, dass manchmal unvorhersehbare und von Microsoft nicht dokumentierte Probleme damit auftauchen. So kommt es vor, dass nach einer Konvertierung in eine h&ouml;here Access-Version oder auch einfach nach einer Neukompilierung die Bez&uuml;ge nicht mehr funktionieren. Oft passiert diese Art Korruption, wenn f&uuml;r die Steuerelemente dieselben Namen wie f&uuml;r die Felder der Datenquelle verwendet werden. Das scheint aber nur eine der m&ouml;glichen Mitverursacher zu sein. Jedenfalls treten derartige Probleme mit Ausrufezeichen nicht auf. Deshalb ist es sicherer, auch hier das Ausrufezeichen zu verwenden, oder die ebenfalls zuverl&auml;ssige String-Schreibweise mit Klammern:<\/p>\n<pre>Me(\"MeinSteuerelement\")<\/pre>\n<p>oder<\/p>\n<pre>Me.Controls(\"MeinSteuerelement\")<\/pre>\n<p>F&uuml;r viele Aufgaben in der VBA-Programmieung ist es von Vorteil oder unbedingt notwendig, statt fixer Objektnamen Variablen verwenden zu k&ouml;nnen. Das betrifft sowohl Steuerelemente in Formularen und Berichten als auch Felder in Recordsets von DAO oder ADO. Die L&ouml;sung f&uuml;r diese Anforderung ist die Schreibweise mit runden Klammern.<\/p>\n<p>Ein Steuerelement k&ouml;nnen Sie zum Beispiel so ansprechen:<\/p>\n<pre>Forms(\"Formularname\")(StringVariable)<\/pre>\n<p>Ebenso funktioniert es mit einem Feld in einem Recordset:<\/p>\n<pre>rs(StringVariable)<\/pre>\n<p>Die h&auml;ufigste Verwendung findet die eben behandelte Klammer-Schreibweise in Schleifen zum Durchlaufen von Controls- oder Fields-Auflistungen. Meistens geht es darum, per Code mehrere oder alle Steuerelemente eines Formulares oder Berichtes zu durchlaufen, um eine bestimmte Eigenschaft f&uuml;r diese Elemente in einem Rutsch zu pr&uuml;fen oder zu &auml;ndern.<\/p>\n<p><!--30percent--><\/p>\n<p>Eine beliebte L&ouml;sungsvariante daf&uuml;r ist, gleichartige Steuerelemente mit denselben Namen und einer fortlaufenden Nummer zu benennen: Liste1, Liste2, Liste3&#8230; oder Combo1, Combo2&#8230;<\/p>\n<p>Mit dieser Voraussetzung ist es dann einfach, zum Beispiel die Eigenschaft Sichtbar der Steuerelemente zu &auml;ndern:<\/p>\n<pre>Dim i As Integer\r\nFor i = 1 To 5\r\n  Me(\"Liste\" & i).Visible = False\r\nNext<\/pre>\n<p>Eine andere Variante, um bestimmte Steuerelemente zu kennzeichnen, ist die Verwendung ihrer Eigenschaft Marke (Tag). <\/p>\n<p>Die Eigenschaft ist genau f&uuml;r diesen Zweck vorhanden, also eine kennzeichnende Information oder irgendeinen Memo-Text f&uuml;r Objekte zu hinterlegen, der ansonsten keine Auswirkungen auf die Funktionalit&auml;t oder die Eigenschaften des Objektes hat.<\/p>\n<p>Um sie f&uuml;r Steuerelemente zu n&uuml;tzen, k&ouml;nnen Sie sie per Code durch die Controls-Auflistung von Formularen und Berichten schleifen und Tag pr&uuml;fen:<\/p>\n<pre>Dim ctl As Control\r\nFor Each ctl In Me.Controls\r\n  If ctl.Tag = \"Suchtext\" Then ctl.Visible = False\r\nNext ctl<\/pre>\n<p>Wenn Sie ein Meldungsfenster &ouml;ffnen, so wird der Code angehalten, bis die Box wieder geschlossen wird. Damit k&ouml;nnen Sie im Code nach dem Aufruf des Meldungsfensters sofort auf die im Meldungsfenster gew&auml;hlte Schaltfl&auml;che reagieren. Bild 3 zeigt eine solche Anordnung.<\/p>\n<p><IMG height=\"268\" src=\"..\/fileadmin\/_temp_\/{2DC8127F-1149-46CC-A335-396671E44353}\/pic003.png\" width=\"382\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Meldungsfenster als Dialogformular<\/span><\/b><\/p>\n<p>Im Formular frmDialogAufruf wird per Schaltfl&auml;che ein Meldungsfenster aufgerufen. Im Meldungsfenster klickt der Benutzer auf Ja oder Nein. Danach erst l&auml;uft der Code im aufrufenden Formular weiter und zeigt dabei das Ergebnis der MsgBox-Funktion an. Der Code hinter der Schaltfl&auml;che zum Aufruf des Meldungsfensters sieht dabei so aus:<\/p>\n<pre>Dim intAntwort As Integer\r\nintAntwort = MsgBox(\"Bitte klicken \" _    \"Sie auf Ja oder Nein.\", vbYesNo Or _    vbQuestion, \"Msgbox als Dialog\")\r\nSelect Case intAntwort\r\n    Case vbYes\r\n        Me!txtErgebnis = \"Ja\"\r\n    Case vbNo\r\n        Me!txtErgebnis = \"Nein\"\r\nEnd Select<\/pre>\n<p>Der Grund f&uuml;r das Anhalten des Codes ist, dass das Meldungsfenster modal ist. Es muss zuerst geschlossen werden, bevor Access die aufrufende Prozedur fortf&uuml;hrt und wieder Anwenderaktionen in anderen Objekten zul&auml;sst.<\/p>\n<p>Die M&ouml;glichkeiten eines Meldungsfensters sind auf wenige, fix vorgegebene Schaltfl&auml;chen begrenzt. Sie k&ouml;nnen die Dialog-Funktionalit&auml;t aber auch mit einem selbst definierten modalen Formular programmieren (siehe Bild 4)<\/p>\n<p><IMG height=\"270\" src=\"..\/fileadmin\/_temp_\/{2DC8127F-1149-46CC-A335-396671E44353}\/pic004.png\" width=\"442\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Modales Formular als Dialog<\/span><\/b><\/p>\n<p>Das Dialogformular ist dabei im Vergleich zum Meldungsfenster um weitere Schaltfl&auml;chen erg&auml;nzt. Es k&ouml;nnte aber auch Eingabefelder und so weiter enthalten. Der Code hinter den Schaltfl&auml;chen im Dialogformular besteht nur aus einer schlanken Anweisung:<\/p>\n<pre>Me.Visible = False<\/pre>\n<p>Das Dialogformular wird also unsichtbar gemacht. Damit hat das aufrufende Formular wieder den Fokus, sein Code l&auml;uft weiter und kann auf die Benutzereingaben im Dialogformular zugreifen. Der entsprechende aufrufende und reagierende Code lautet:<\/p>\n<pre>DoCmd.OpenForm \"frmDialog\", , , , , _    acDialog\r\ntxtErgebnis = _    Forms!frmDialog.ActiveControl.Caption\r\nDoCmd.Close acForm, \"frmDialog\"<\/pre>\n<p>Das Dialogformular wird mit dem Wert acDialog im Parameter Fenstermodus ge&ouml;ffnet. Damit h&auml;lt der Code an, bis das Dialogformular entweder geschlossen oder unsichtbar gemacht wird. Danach l&auml;uft der Code weiter und es wird ein Textfeld im aufrufenden Formular mit der Beschriftung der im Dialogformular gew&auml;hlten Schaltfl&auml;che versorgt. Am Ende wird das Dialogformular geschlossen, damit es nicht dauerhaft unsichtbar ge&ouml;ffnet bleibt.<\/p>\n<p><IMG height=\"365\" src=\"..\/fileadmin\/_temp_\/{2DC8127F-1149-46CC-A335-396671E44353}\/pic005.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Der Parameter wird nicht erkannt<\/span><\/b><\/p>\n<p>Mit dieser Technik k&ouml;nnen Sie universell einsetzbare Dialogformulare gestalten, die unabh&auml;ngig vom aufrufenden Formular gestaltet sein k&ouml;nnen, denn der gesamte auswertende Code steht nicht im Dialogformular, sondern im aufrufenden Formular.<\/p>\n<p>Einer der gro&szlig;en Vorteile von Access gegen&uuml;ber anderen Datenbankprogrammen ist die sehr einfache und m&auml;chtige Erstellung und Nutzung von Parameterabfragen. Es reicht ja f&uuml;r unerfahrene Benutzer bereits, in einer Abfrage als Kriterium einen Text in eckigen Klammern einzugeben, und Access bringt keine Fehlermeldung, sondern fragt brav nach dem Wert f&uuml;r diesen Parameter und verwendet ihn dann als Filter.<\/p>\n<p>Ebenfalls sehr einfach ist die Verwendung von Bez&uuml;gen auf Formularfelder als Kriterium:<\/p>\n<pre>Formulare!Formularname!SteuerelementName<\/pre>\n<p>holt den Wert im angegebenen Steuerelement und filtert danach.<\/p>\n<p>Ich empfehle allerdings bei solchen Bez&uuml;gen in Abfragen grunds&auml;tzlich die englische Schreibweise, also:<\/p>\n<pre>Forms!Formularname!SteuerelementName<\/pre>\n<p>Dabei geht es nicht so sehr um die vier eingesparten Buchstaben, obwohl das auch nett ist. Wenn die Datenbank irgendwann einmal in einem nicht deutschen Access laufen soll, wird Formulare leider oft nicht automatisch &uuml;bersetzt und verursacht eine Fehlermeldung.<\/p>\n<p>Ein Problem mit Formularbez&uuml;gen in Abfragen gibt es, wenn Sie versuchen, eine solche Parameterabfrage als Recordset zu &ouml;ffnen.<\/p>\n<p>DAO greift anders auf JET zu als der Abfrageeditor von Access. Deshalb werden Formularbez&uuml;ge nicht erkannt. Im frmParameter der Beispieldatenbank wird mit folgendem Code auf eine Parameterabfrage zugegriffen:<\/p>\n<pre>Dim db As DAO.Database\r\nDim rs As DAO.Recordset\r\nSet db = CurrentDb\r\nSet rs = db.OpenRecordset _    (\"qryParameterAccess\", dbOpenDynaset)<\/pre>\n<p>In der Abfrage qryParameterAccess steht ein Bezug auf das Kombinationsfeld im ge&ouml;ffneten Formular:<\/p>\n<pre>[Forms]![frmParameter]![cboBezeichnung]<\/pre>\n<p>Bild 5 zeigt die Fehlermeldung, die aus diesem Zugriffsversuch resultiert.<\/p>\n<p>Der Fehler Nummer 3061 besagt, dass ein Parameter erwartet, aber zu wenige &uuml;bergeben wurden.<\/p>\n<p>Die Zahl der nicht erkannten Parameter in der Fehlermeldung erh&ouml;ht sich mit jedem Formularbezug und mit jedem Text-Parameter in eckigen Klammern in der Abfrage. Beides funktioniert an der Access-Oberfl&auml;che, nicht aber mit DAO.<\/p>\n<p><b>Quellcode 1: Parameterabfragen per VBA &ouml;ffnen<\/b><\/p>\n<pre>Private Sub btnParameterCode1_Click()\r\n    On Error GoTo myError\r\n    Dim db As DAO.Database\r\n    Dim rs As DAO.Recordset\r\n    Dim qdf As DAO.QueryDef    \r\n    Set db = CurrentDb    \r\n    Set qdf = db.QueryDefs(\"qryParameterCode\")\r\n    qdf.Parameters(\"Forms!frmParameter!cboBezeichnung\") = Me!cboBezeichnung\r\n    qdf.Parameters(\"Wie lautet die Bezeichnung\") = \"Beamer\"    \r\n    Set rs = qdf.OpenRecordset(dbOpenDynaset)    \r\n    Do Until rs.EOF\r\n        Debug.Print rs!Bezeichnung\r\n        rs.MoveNext\r\n    Loop    \r\nmyExit:\r\n    If Not qdf Is Nothing Then\r\n        qdf.Close\r\n        Set qdf = Nothing\r\n    End If    \r\n    If Not rs Is Nothing Then\r\n        rs.Close\r\n        Set rs = Nothing\r\n    End If        \r\n    Exit Sub    \r\nmyError:\r\n    Select Case Err.Number\r\n        Case 99999 ''spezifische Fehler abfangen\r\n        Case Else\r\n            MsgBox \"Exception Nr. \" & Err.Number & \" \" & Err.Description\r\n    End Select\r\n    Resume myExit    \r\nEnd Sub<\/pre>\n<p>Abhilfe f&uuml;r den Formularbezug bringt der folgenderma&szlig;en ge&auml;nderte Parameter in der Abfrage (in einer Zeile):<\/p>\n<pre>Eval(\"[Forms]![frmParameter]![cboBezeichnung]\")<\/pre>\n<p>Mit diesem Ausdruck l&auml;sst sich wieder ohne Probleme per Recordset auf die Abfrage zugreifen, denn die Funktion Eval sorgt f&uuml;r die Auswertung des Formularbezuges, bevor die Abfrage von JET weiterverarbeitet wird.<\/p>\n<p>Wichtig ist auch hier wieder die Verwendung der englischen Schreibweise &#8222;Forms&#8220;. Das deutsche &#8222;Formulare&#8220; wird innerhalb von Eval nicht erkannt.<\/p>\n<p>Das ist &uuml;brigens ein Stolperstein bei der Konvertierung von alten Datenbanken im Format von Access 2 in neuere Access-Versionen. <\/p>\n<p>Bis zur Version Access 2 wurde Formulare in diesem Fall akzeptiert, ab Access 95 nicht mehr.<\/p>\n<p>Es gibt noch eine andere und leistungsf&auml;higere M&ouml;glichkeit, Parameterabfragen per VBA zu &ouml;ffnen. Sie besteht darin, die Parameter, egal ob Formularbez&uuml;ge oder Textparameter, aktiv an die Parameters-Auflistung der Abfrage zu &uuml;bergeben. Quellcode 1 zeigt, wie das im Beispielformular frmParameter funktioniert.<\/p>\n<p>In der DAO-Auflistung Parameters stehen alle Parameter der Abfrage, egal ob sie in der Abfrage explizit als Parameter deklariert oder einfach verwendet werden. Mit folgender Anweisung k&ouml;nnen Sie eine Wertzuweisung vornehmen und dann ein Recordset auf Basis der Abfrage &ouml;ffnen (in einer Zeile): <\/p>\n<pre>qdf.Parameters(\"ParameterbezeichnungOderText\") = \"Gew&uuml;nschterWert\"<\/pre>\n<p>Nicht nur diese aktive Wertzuweisung ist ein Vorteil. Wie im Beispielcode gezeigt, erreicht man &uuml;ber die Parameters-Auflistung, im Unterschied zum zuvor erl&auml;uterten Eval-Trick, nicht nur Bez&uuml;ge auf Access-Objekte, sondern auch Textparameter und gewinnt zudem deutlich  Geschwindigkeit bei der Ausf&uuml;hrung der Abfrage.<\/p>\n<p>Aktionsabfragen lassen sich ebenfalls auf die beschriebene Art mit Parametern versorgen und danach zum Beispiel mit qdf.Execute ausf&uuml;hren.<\/p>\n<p>Das Basteln und Ausf&uuml;hren von SQL-Strings ist eine der m&auml;chtigsten Funktionalit&auml;ten von VBA. Zu den h&auml;ufigsten Fehlerquellen dabei z&auml;hlt die &uuml;bergabe von Dezimalzahlen von VBA an SQL.<\/p>\n<p>Egal in welchem Bereich eine Dezimalzahl an SQL &uuml;bergeben werden soll, ob im WHERE-, SET-, INSERT INTO-Abschnitt oder per VALUES:<\/p>\n<p>Durch die amerikanische Herkunft von SQL muss sie immer den Punkt als Dezimaltrennzeichen haben, ansonsten gibt es unweigerlich einen Syntaxfehler.<\/p>\n<p>Das sind Sie ja auch von VBA her gewohnt. Heimt&uuml;ckisch ist jedoch, dass im Code zwar der Punkt als Dezimaltrennzeichen verwendet und angezeigt wird, bei der &uuml;bergabe an einen SQL-String dieser Punkt aufgrund der deutschen L&auml;ndereinstellungen jedoch stillschweigend in ein Komma umgewandelt wird. Die erste Schaltfl&auml;che im Beispielformular frmSQL (siehe Bild 6) enth&auml;lt einen solchen harmlos wirkenden Code:<\/p>\n<pre>Dim curGehalt As Currency\r\ncurGehalt = 2345.9\r\nDoCmd.RunSQL \"UPDATE tblPersonen SETMonatsgehalt = \" & curGehalt & \" WHERE PersonId= \" & Me!cboPerson<\/pre>\n<p>Damit soll dem im Kombinationsfeld cboPerson ausgew&auml;hlten Mitarbeiter ein Monatsgehalt von 2345.9 zugewiesen werden. Das Ergebnis beim Ausf&uuml;hren dieses Codes ist jedoch die Fehlermeldung 3144 &#8222;Fehler in UPDATE-Anweisung&#8220;. Erst eine kleine &auml;nderung am Code bringt Abhilfe:<\/p>\n<p><IMG height=\"187\" src=\"..\/fileadmin\/_temp_\/{2DC8127F-1149-46CC-A335-396671E44353}\/pic006.png\" width=\"356\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Beispielformular f&uuml;r Wert&uuml;bergaben an SQL<\/span><\/b><\/p>\n<pre>DoCmd.RunSQL \"UPDATE tblPersonen SET Monatsgehalt = \" & Str(curGehalt) & \" WHERE PersonId = \" & Me!cboPerson<\/pre>\n<p>Die Neuerung ist die Verwendung der Str-Funktion. Sie wandelt die &uuml;bergebene Zahl in den Typ Variant (Untertyp String) um und hat die Besonderheit, dass sie den Punkt als Dezimaltrennzeichen braucht und bei der Konvertierung bewahrt. Dadurch landet dann der Punkt auch richtig im SQL-String und die Aktualisierungsabfrage funktioniert.<\/p>\n<p>&auml;hnlich gelagerte Probleme, die sogar noch h&auml;ufiger auftreten, gibt es bei der &uuml;bergabe von Datumswerten. Mit SQL-Strings hat man es nicht nur als erfahrener Codierer von komplexen SQL-Anweisungen zu tun, sondern auch schon bei der Formulierung der Bedingung von Dom&auml;nenaggregatfunktionen wie DLookUp oder DMax, die ja einem SQL-WHERE-Abschnitt entsprechen muss.<\/p>\n<p>Im Beispielformular frmSQL gibt es eine Schaltfl&auml;che mit folgendem Code:<\/p>\n<pre>Dim dteGeburtstag As Date\r\ndteGeburtstag = #12\/31\/1979#\r\nMsgBox DCount(\"*\", \"tblPersonen\", _    \"GeburtsDatum &gt; \" & dteGeburtstag)<\/pre>\n<p><IMG height=\"256\" src=\"..\/fileadmin\/_temp_\/{2DC8127F-1149-46CC-A335-396671E44353}\/pic007.png\" width=\"455\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Scheinbar richtiges Datum bringt einen Fehler<\/span><\/b><\/p>\n<p>Der Code soll in einem Meldungsfenster die Anzahl der Mitarbeiter ausgeben, die nach dem 31.12.1979 geboren sind. Das Ergebnis ist jedoch die Syntax-Fehlermeldung aus Bild 7.<\/p>\n<p>Am Text der Fehlermeldung sieht man, dass das Datum korrekt als 31.12.1979 erkannt wurde. Die Umstellung von Monat und Tag nimmt VBA &uuml;brigens automatisch vor. Wenn Sie also im Code eintippen #31\/12\/1979#, wandelt der Code-Editor beim Verlassen der Zeile automatisch um in das amerikanische Datumsformat #12\/31\/1979#.<\/p>\n<p>Bei der &uuml;bergabe an den SQL-String oder hier an die DCount-Funktion wird aber das Datum noch einmal entsprechend der Sprach- und Regionseinstellungen in der Systemsteuerung umgewandelt.<\/p>\n<p>Abhilfe bringt wieder nur die sichere &uuml;bergabe in einem f&uuml;r SQL lesbaren Datumsformat. Man liest &ouml;fter, dass JET-SQL durch seine amerikanische Herkunft nur das amerikanische Datumsformat, also mmddyy akzeptieren w&uuml;rde.<\/p>\n<p>Das stimmt so nicht, denn immerhin akzeptiert es auch das universellere und f&uuml;r alle unmissverst&auml;ndlich lesbare Datumsformat nach der ISO-Norm 8601 (yyyy-mm-dd). <\/p>\n<p>Der Beispielcode daf&uuml;r im Formular frmSQL lautet:<\/p>\n<pre>Dim strDatum As String\r\nstrDatum = Format(#12\/31\/1979#, _    \"\\#yyyy\\-mm\\-dd\\#\")\r\nMsgBox DCount(\"*\", _    \"tblPersonen\", _    \"GeburtsDatum &gt; \" _    & strDatum)<\/pre>\n<p>Das Datum wird damit in einen String umgewandelt und in das ISO-Format gebracht. Die Schr&auml;gstriche im Formatausdruck bewirken dabei, dass das jeweils nachfolgende Zeichen als Literal behandelt wird. Das bedeutet, dass es von der Format-Funktion nicht symbolisch umgedeutet wird, sondern ein Rautezeichen ein Rautezeichen und ein Bindestrich ein Bindestrich bleibt, nicht etwa zu einem Minus wird.<\/p>\n<p>Alternativ funktioniert, wie gesagt, auch das amerikanische Datumsformat:<\/p>\n<pre>strDatum = Format(#12\/31\/1979#, \"\\#mm\\\/dd\\\/yy\\#\")<\/pre>\n<p>Eine weitere, einfacher zu schreibende M&ouml;glichkeit ist die Umwandlung des Datums in eine Zahl. JET verwaltet Datumswerte intern ja als Doublezahl, wobei vor dem Komma die Anzahl der Tage ab dem 30.12.1899 steht und nach dem Komma die Uhrzeit als Bruchteil eines Tages. Im Beispiel funktioniert also auch die Umwandlung mit einer Konvertierungsfunktion:<\/p>\n<pre>MsgBox DCount(\"*\", \"tblPersonen\", _\"GeburtsDatum &gt; \" & CLng(#12\/31\/1979#))<\/pre>\n<p>Aufpassen m&uuml;ssen Sie, wenn Sie auch eine Uhrzeit &uuml;bergeben m&ouml;chten. Es reicht dann nicht, blo&szlig; die Verwendung des richtigen Zahlentyps Double:<\/p>\n<pre>CDbl(#12\/31\/1979 12:00:00 PM#)<\/pre>\n<p>12:00 Uhr wird hier zu &#8222;0,5&#8220; umgewandelt, womit wir wieder beim Problem des Dezimaltrennzeichens w&auml;ren.<\/p>\n<p>Die L&ouml;sung daf&uuml;r kennen Sie bereits: <\/p>\n<pre>Str(CDbl(#12\/31\/1979 12:00:00 PM#))<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In der Access-FAQ von Karl Donaubauer (www.donkarl.com) finden Sie die meistgestellten Fragen und Anworten zum Thema Microsoft Access. In dieser Beitragsreihe stellt Karl Donaubauer die wichtigsten Eintr&auml;ge im Detail vor und zeigt Ihnen entsprechende L&ouml;sungen anhand praxisnaher Beispiele. Im zw&ouml;lften Teil werden L&ouml;sungen f&uuml;r die h&auml;ufigsten Probleme in VBA vorgestellt.<\/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":[66012006,662006,44000004],"tags":[],"class_list":["post-55000329","post","type-post","status-publish","format-standard","hentry","category-66012006","category-662006","category-Tipps_und_Tricks"],"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>Access-FAQ: Rund um Access - 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\/AccessFAQ_Rund_um_Access\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Access-FAQ: Rund um Access\" \/>\n<meta property=\"og:description\" content=\"In der Access-FAQ von Karl Donaubauer (www.donkarl.com) finden Sie die meistgestellten Fragen und Anworten zum Thema Microsoft Access. In dieser Beitragsreihe stellt Karl Donaubauer die wichtigsten Eintr&auml;ge im Detail vor und zeigt Ihnen entsprechende L&ouml;sungen anhand praxisnaher Beispiele. Im zw&ouml;lften Teil werden L&ouml;sungen f&uuml;r die h&auml;ufigsten Probleme in VBA vorgestellt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:18:16+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg08.met.vgwort.de\/na\/dff5f17892f7459ea8e5388b0fe3957a\" \/>\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=\"16\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Access-FAQ: Rund um Access\",\"datePublished\":\"2020-05-06T15:18:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/\"},\"wordCount\":2856,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/dff5f17892f7459ea8e5388b0fe3957a\",\"articleSection\":[\"1\\\/2006\",\"2006\",\"Tipps und Tricks\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/\",\"name\":\"Access-FAQ: Rund um Access - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/dff5f17892f7459ea8e5388b0fe3957a\",\"datePublished\":\"2020-05-06T15:18:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/dff5f17892f7459ea8e5388b0fe3957a\",\"contentUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/dff5f17892f7459ea8e5388b0fe3957a\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Access\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Access-FAQ: Rund um Access\"}]},{\"@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":"Access-FAQ: Rund um Access - 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\/AccessFAQ_Rund_um_Access\/","og_locale":"de_DE","og_type":"article","og_title":"Access-FAQ: Rund um Access","og_description":"In der Access-FAQ von Karl Donaubauer (www.donkarl.com) finden Sie die meistgestellten Fragen und Anworten zum Thema Microsoft Access. In dieser Beitragsreihe stellt Karl Donaubauer die wichtigsten Eintr&auml;ge im Detail vor und zeigt Ihnen entsprechende L&ouml;sungen anhand praxisnaher Beispiele. Im zw&ouml;lften Teil werden L&ouml;sungen f&uuml;r die h&auml;ufigsten Probleme in VBA vorgestellt.","og_url":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:18:16+00:00","og_image":[{"url":"http:\/\/vg08.met.vgwort.de\/na\/dff5f17892f7459ea8e5388b0fe3957a","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"16\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Access-FAQ: Rund um Access","datePublished":"2020-05-06T15:18:16+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/"},"wordCount":2856,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/#primaryimage"},"thumbnailUrl":"http:\/\/vg08.met.vgwort.de\/na\/dff5f17892f7459ea8e5388b0fe3957a","articleSection":["1\/2006","2006","Tipps und Tricks"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/","url":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/","name":"Access-FAQ: Rund um Access - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/#primaryimage"},"thumbnailUrl":"http:\/\/vg08.met.vgwort.de\/na\/dff5f17892f7459ea8e5388b0fe3957a","datePublished":"2020-05-06T15:18:16+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/#primaryimage","url":"http:\/\/vg08.met.vgwort.de\/na\/dff5f17892f7459ea8e5388b0fe3957a","contentUrl":"http:\/\/vg08.met.vgwort.de\/na\/dff5f17892f7459ea8e5388b0fe3957a"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Access\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Access-FAQ: Rund um Access"}]},{"@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\/55000329","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=55000329"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000329\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000329"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000329"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}