{"id":55000354,"date":"2006-06-01T00:00:00","date_gmt":"2020-05-06T15:18:21","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=354"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"DAO_Teil_1_Database_und_RecordsetObjekt","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/","title":{"rendered":"DAO, Teil 1: Database- und Recordset-Objekt"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg05.met.vgwort.de\/na\/5904d0e3a3f44c98b786ee410f147733\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<h3>Zusammenfassung<\/h3>\n<p>Lernen Sie die DAO-Objekte Database und Recordset kennen.<\/p>\n<h3>Techniken<\/h3>\n<p>VBA, DAO<\/p>\n<h3>Voraussetzungen<\/h3>\n<p>Access 97 und h&ouml;her<\/p>\n<h3>Beispieldatei<\/h3>\n<p>DAO.mdb<\/p>\n<h3><\/h3>\n<p><b>Andr&eacute; Minhorst, Duisburg<\/b><\/p>\n<p><b>Die Bibliothek DAO (Data Access Objects) liefert dem VBA-Entwickler alles, was er f&uuml;r den Zugriff auf die in einer Datenbank enthaltenen Daten ben&ouml;tigt. Dar&uuml;ber hinaus offeriert diese Bibliothek Funktionen zum Bearbeiten des Tabellenentwurfs oder f&uuml;r den Zugriff auf Abfragen. Access im Unternehmen stellt die wichtigsten Techniken dieser Bibliothek vor.<\/b><\/p>\n<p>Access erscheint seit Version 2000 mit zwei Bibliotheken f&uuml;r den Datenzugriff unter VBA. Die neuere namens ADO ist vor allem f&uuml;r den Einsatz in Access-Projekten (ADPs) geeignet. Anwendungen, die nicht auf SQL-Server-Datenbanken wie den Microsoft SQL Server und die MSDE zugreifen sollen, sondern die JET-Engine verwenden, sind mit DAO besser bedient.<\/p>\n<p>DAO existiert bereits seit sehr langer Zeit, ist stabil und ADO performance-technisch beim Einsatz mit .mdb-Datenbanken meist &uuml;berlegen. Wenn also nicht absehbar ist, dass aus einer Datenbank eine Client-Server-Datenbank wird, sollten Sie DAO in Ihrer Datenbank einsetzen.<\/p>\n<h3>Verweise<\/h3>\n<p>Access 97 besitzt standardm&auml;&szlig;ig nur einen Verweis auf DAO, Access 2000 nur einen auf ADO. Seit Access 2002 sind beide im Boot. Beide Bibliotheken lassen sich parallel in einer Datenbankanwendung einsetzen. Dabei ist zu beachten, dass einige Elemente wie etwa das Recordset-Objekt in beiden Bibliotheken vorhanden sind.<\/p>\n<p>Bild 1 zeigt den Verweise-Dialog von Access 2003: Hier ist der Verweis auf die DAO-Bibliothek &uuml;ber dem der ADO-Bibliothek angeordnet. In vorhergehenden Versionen war dies noch anders, aber Microsoft hat offensichtlich erkannt, dass der Gro&szlig;teil der Datenbanken auf JET basiert und die Entwickler dabei DAO einsetzen. Auch im Internet finden sich viel mehr DAO- als ADO-Beispiele.<\/p>\n<p><IMG height=\"365\" src=\"..\/fileadmin\/_temp_\/{C969E0B7-CA1E-4573-AD4D-4184C8E1759C}\/pic001.png\" width=\"467\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Verweise-Dialog mit DAO- und ADO-Bibliothek<\/span><\/b><\/p>\n<p>Leider handelt es sich dabei nicht um die gleichen Objekte; sie enthalten je nach Bibliothek unterschiedliche Methoden und Eigenschaften. Daher m&uuml;ssen Sie genau darauf achten, auch die richtige Version einzusetzen. Global l&auml;sst sich dies festlegen, indem Sie im Verweise-Dialog die bevorzugte Bibliothek weiter oben platzieren. Access durchsucht die Bibliotheken immer nach ihrer Reihenfolge im Verweise-Dialog.<\/p>\n<p>Auf Nummer Sicher gehen Sie, wenn Sie den jeweiligen Objekten die Bibliothek durch einen Punkt getrennt voranstellen, also etwa so:<\/p>\n<pre>Dim rst As DAO.Recordset\r\nDim rst As ADODB.Recordset<\/pre>\n<p>Bevor Sie die Kommandos der DAO-Bibliothek auf die Daten Ihrer Tabelle loslassen, m&uuml;ssen Sie diese zun&auml;chst einmal referenzieren. Die meistbenutzte Variante ist folgende:<\/p>\n<pre>Dim db As DAO.Database\r\nSet db = CurrentDB<\/pre>\n<p>Diese Anweisungen deklarieren und instanzieren ein Database-Objekt und f&uuml;llen es mit einer neuen Instanz der aktuellen Datenbank, die die CurrentDB-Funktion erzeugt.<\/p>\n<p>Die zweite Variante geht so:<\/p>\n<pre>Dim db As DAO.Database\r\nSet db = DBEngine(0)(0)<\/pre>\n<p>Die zweite Zeile erzeugt keine neue Instanz der aktuellen Datenbank, sondern verweist auf die bestehende Instanz &#8211; eben DBEngine(0)(0).<\/p>\n<p>Letzteres ist eine Abk&uuml;rzung f&uuml;r folgenden Ausdruck:<\/p>\n<pre>DBEngine.Workspaces(0).Databases(0)<\/pre>\n<p>Microsoft empfiehlt in der Onlinehilfe, die CurrentDB-Funktion f&uuml;r den Zugriff auf die aktuelle Datenbank zu verwenden (siehe Onlinehilfe, Stichwort CurrentDB).<\/p>\n<h3>Zugriff auf externe Datenbanken<\/h3>\n<p>Wenn Sie auf eine externe Datenbank zugreifen m&ouml;chten, verwenden Sie die OpenDatabase-Methode. Ein Beispielaufruf sieht wie folgt aus (in einer Zeile):<\/p>\n<pre>Set db = DBEngine.Workspaces(0).OpenDatabase(\"&lt;Datenbankname\")<\/pre>\n<p>Der Zugriff auf Daten erfolgt unter DAO immer &uuml;ber eine Datensatzgruppe, die im Code durch ein Objekt des Typs Recordset repr&auml;sentiert wird.<\/p>\n<p>Ein Recordset-Objekt ist mit einer Tabelle oder dem Ergebnis einer Abfrage vergleichbar: Es enth&auml;lt keinen, einen oder mehrere Datens&auml;tze und ein oder mehrere Felder. Der einzige Unterschied ist, dass Sie diese Repr&auml;sentation per VBA bearbeiten und nicht in der Datenblattansicht einer Tabelle oder Abfrage oder in einem Formular.<\/p>\n<h2>Datensatzgruppe &ouml;ffnen<\/h2>\n<p>In den meisten F&auml;llen werden Sie eine Datensatzgruppe mit der OpenRecordset-Methode des Database-Objekts &ouml;ffnen (was Sie wiederum, wie oben beschrieben, per CurrentDB oder DBEngine(0)(0) erhalten).<\/p>\n<h3>&ouml;ffnen auf Basis eines Objekts oder einer SQL-Abfrage<\/h3>\n<p><!--30percent--><\/p>\n<p>Als Grundlage f&uuml;r das &ouml;ffnen eines Recordset-Objekts eignen sich Tabellen, Abfragen oder SQL-Ausdr&uuml;cke. Der Name der Tabelle oder Abfrage beziehungsweise der SQL-Ausdruck ist das erste Argument der OpenRecordset-Anweisung. Die einfachste Variante sieht wie folgt aus:<\/p>\n<pre>Dim db As DAO.Database\r\nDim rst As DAO.Recordset\r\nSet db = CurrentDb\r\nSet rst = db.OpenRecordset(\"Artikel\")<\/pre>\n<p>Diese einfachste Variante &ouml;ffnet das Recordset mit dem Standardparameter dbOpenTable. Diese Variante funktioniert allerdings nur bei Recordsets auf Basis von Tabellen.<\/p>\n<p><b>Quellcode 1: Erstellen eines Recordsets auf Basis eines Recordset-Objekts<\/b><\/p>\n<pre>Public Sub RecordsetOeffnenAusRecordset()\r\n    Dim db As DAO.Database\r\n    Dim rst As DAO.Recordset\r\n    Dim rstGefiltert As DAO.Recordset\r\n    Set db = CurrentDb\r\n    Set rst = db.OpenRecordset(\"Artikel\", dbOpenDynaset)\r\n    rst.Filter = \"Artikelname LIKE ''A*''\"\r\n    Set rstGefiltert = rst.OpenRecordset\r\n    ''etwas mit rstGefiltert tun\r\n    rstGefiltert.Close\r\n    rst.Close\r\n    Set rstGefiltert = Nothing\r\n    Set rst = Nothing\r\n    Set db = Nothing\r\nEnd Sub<\/pre>\n<p>Die OpenRecordset-Methode hat neben der Quelle eigentlich drei Parameter, von denen in den meisten F&auml;llen aber nur einer verwendet wird:<\/p>\n<pre>&lt;Database&gt;.OpenRecordset &lt;Quelle&gt;, &lt;Typ&gt;, &lt;Optionen&gt;, &lt;Sperren&gt;<\/pre>\n<p>Generell werden Sie f&uuml;r den Parameter &lt;Typ&gt; h&auml;ufig die Konstante dbOpenDynaset verwenden. Er erlaubt das &ouml;ffnen der allen Typen zugrunde liegenden Daten (Tabelle, Abfrage, SQL-Ausdruck) und hat einen weiteren Vorteil:<\/p>\n<p>Recordsets, die mit dbOpenDynaset ge&ouml;ffnet wurden und auf mehreren verkn&uuml;pften Tabellen basieren, enthalten zun&auml;chst nur die Verweise auf die Datens&auml;tze der verkn&uuml;pften Tabellen. Die eigentlichen Daten werden erst bei Bedarf nachgeladen. Beispiel (in einer Zeile):<\/p>\n<pre>Set rst = db.OpenRecordset(\"SELECT Artikel.* FROM Artikel INNER JOIN Kategorien ON Artikel.[Kategorie-Nr] =Kategorien.[Kategorie-Nr]\", dbOpenDynaset)<\/pre>\n<h3>Typ-Parameter<\/h3>\n<p>Es gibt insgesamt vier Recordset-Typen:<\/p>\n<li>dbOpenTable: &ouml;ffnet Tabellen der lokalen Datenbank, Daten k&ouml;nnen bearbeitet werden, Seek-Methode m&ouml;glich.<\/li>\n<li>dbOpenDynaset: &ouml;ffnet verkn&uuml;pfte Tabellen, Abfragen, SQL-Ausdr&uuml;cke, Daten k&ouml;nnen meist bearbeitet werden, kein Seek m&ouml;glich.<\/li>\n<li>dbOpenSnapshot: &ouml;ffnet ein Recordset mit dem aktuellen Stand der Daten in der angegebenen Tabelle, Abfrage oder SQL-Ausdruck. Die Daten k&ouml;nnen nicht bearbeitet werden.<\/li>\n<li>dbOpenForwardOnly: Wie dbOpenSnapShot, kann aber nur vorw&auml;rts durchlaufen werden.<\/li>\n<p>Die weiteren Parameter &lt;Optionen&gt; und &lt;Sperren&gt; kommen eher selten zum Einsatz, weitere Informationen finden Sie in der Online-Hilfe.<\/p>\n<h2>Recordsets auf Basis von Recordsets<\/h2>\n<p>Recordsets k&ouml;nnen nicht nur auf Tabellen, Abfragen oder SQL-Ausdr&uuml;cken, sondern auch auf bestehenden Recordsets basieren. Quellcode 1 zeigt ein Beispiel daf&uuml;r.<\/p>\n<p>Das erste Recordset-Objekt rst enth&auml;lt alle Datens&auml;tze der Tabelle Artikel. Die enthaltenen Datens&auml;tze werden nach dem Ausdruck &#8222;Artikelname LIKE &#8220;A*&#8220;&#8220; gefiltert und das Ergebnis wird in ein neues Recordset namens rstGefiltert &uuml;bertragen.<\/p>\n<h2>Recordset auf Basis von Abfragen<\/h2>\n<p>Wenn Sie ein Recordset auf Basis einer gespeicherten Abfrage &ouml;ffnen m&ouml;chten, haben Sie zwei M&ouml;glichkeiten: Sie k&ouml;nnen die OpenRecordset-Methode mit dem Namen der Abfrage einsetzen oder ein Recordset-Objekt auf Basis eines QueryDef-Objekts erstellen.<\/p>\n<p><IMG height=\"419\" src=\"..\/fileadmin\/_temp_\/{C969E0B7-CA1E-4573-AD4D-4184C8E1759C}\/pic002.png\" width=\"454\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Abfrage auf Basis zweier Tabellen<\/span><\/b><\/p>\n<p><b>Quellcode 2: Recordset auf Basis einer gespeicherten Abfrage erstellen<\/b><\/p>\n<pre>Public Sub RecordsetAusAbfrage()\r\n    Dim db As DAO.Database\r\n    Dim rst As DAO.Recordset\r\n    Set db = CurrentDb\r\n    Set rst = db.OpenRecordset( _        \"qryKategorien\", dbOpenDynaset)\r\n    ''etwas mit rst tun\r\n    rst.Close\r\n    Set rst = Nothing\r\n    Set db = Nothing\r\nEnd Sub<\/pre>\n<p><b>Quellcode 3: Zugriff auf die in der aktuellen Datenbank enthaltenen Abfragen<\/b><\/p>\n<pre>Public Sub QueryDefsAuflisten()\r\n    Dim db As DAO.Database\r\n    Dim qdf As DAO.QueryDef\r\n    Set db = CurrentDb\r\n    For Each qdf In db.QueryDefs\r\n        Debug.Print qdf.Name\r\n    Next qdf\r\n    Set qdf = Nothing\r\n    Set db = Nothing\r\nEnd Sub<\/pre>\n<h3>Recordset per Abfragename<\/h3>\n<p>Die erste Methode ist prinzipiell mit dem &ouml;ffnen einer Tabelle identisch: Sie geben in der OpenRecordset-Methode einfach den Namen der Abfrage statt des Tabellennamens an.<\/p>\n<p>Wenn Sie beispielsweise ein Recordset auf Basis der Abfrage aus Bild 2 erstellen m&ouml;chten, verwenden Sie die Routine aus Quellcode 2.<\/p>\n<h3>Recordset per QueryDef<\/h3>\n<p>Alle im Datenbankfenster befindlichen Abfragen k&ouml;nnen Sie auch &uuml;ber die QueryDefs-Auflistung referenzieren. <\/p>\n<p>Quellcode 3 zeigt beispielhaft den Zugriff auf die Auflistung der QueryDef-Objekte und gibt die Namen aller in der aktuellen Datenbank enthaltenen Abfragen aus. Quellcode 4 zeigt, wie Sie ein Recordset auf Basis einer Abfrage in Form eines QueryDef-Objekts erzeugen. Dazu erstellen Sie zun&auml;chst das QueryDef-Objekt unter Angabe des Namens der gew&uuml;nschten Abfrage und erzeugen darauf basierend ein Recordset-Objekt.<\/p>\n<p><b>Quellcode 4: Erzeugen eines Recordsets auf Basis eines QueryDef-Objekts<\/b><\/p>\n<pre>Public Sub RecordsetAusQueryDef()\r\n    Dim db As DAO.Database\r\n    Dim qdf As DAO.QueryDef\r\n    Dim rst As DAO.Recordset\r\n    Set db = CurrentDb\r\n    Set qdf = _        db.QueryDefs(\"qryArtikelMitKategorie\")\r\n    Set rst = qdf.OpenRecordset(dbOpenDynaset)\r\n    ''etwas mit rst tun\r\n    rst.Close\r\n    Set rst = Nothing\r\n    Set qdf = Nothing\r\n    Set db = Nothing\r\nEnd Sub<\/pre>\n<h2>Recordsets mit dynamischen Parametern<\/h2>\n<p>Es kommt oft vor, dass man zur Laufzeit einen SQL-Ausdruck zusammensetzt und dann ein<\/p>\n<p><IMG height=\"320\" src=\"..\/fileadmin\/_temp_\/{C969E0B7-CA1E-4573-AD4D-4184C8E1759C}\/pic003.png\" width=\"460\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Eine einfache Parameterabfrage<\/span><\/b><\/p>\n<p><b>Quellcode 5: Recordset auf Basis eines zusammengesetzten SQL-Ausdrucks<\/b><\/p>\n<pre>Public Sub SQLAusdruckZusammensetzen(strArtikelname As String)\r\n    Dim db As DAO.Database\r\n    Dim rst As DAO.Recordset\r\n    Dim strSQL As String\r\n    Set db = CurrentDb\r\n    strSQL = \"SELECT * FROM Artikel WHERE Artikelname LIKE ''\" _        & strArtikelname & \"''\"\r\n    Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)\r\n    ''etwas mit rst tun:\r\n    Do While Not rst.EOF\r\n        Debug.Print rst!Artikelname\r\n        rst.MoveNext\r\n    Loop\r\n    rst.Close\r\n    Set rst = Nothing\r\n    Set db = Nothing\r\nEnd Sub<\/pre>\n<p><b>Quellcode 6: Recordset auf Basis einer Parameterabfrage<\/b><\/p>\n<pre>Public Sub RecordsetAufParameterabfrage()\r\n    Dim db As DAO.Database\r\n    Dim qdf As DAO.QueryDef\r\n    Dim prm As DAO.Parameter\r\n    Dim rst As DAO.Recordset\r\n    Set db = CurrentDb\r\n    Set qdf = db.QueryDefs(\"qryArtikelMitParameter\")\r\n    Set prm = qdf.Parameters(\"strArtikelname\")\r\n    prm.Value = \"A*\"\r\n    Set rst = qdf.OpenRecordset(dbOpenDynaset)\r\n    ''etwas mit rst tun:\r\n    Do While Not rst.EOF\r\n        Debug.Print rst!Artikelname\r\n        rst.MoveNext\r\n    Loop\r\n    rst.Close\r\n    Set rst = Nothing\r\n    Set prm = Nothing\r\n    Set qdf = Nothing\r\n    Set db = Nothing\r\nEnd Sub<\/pre>\n<p>Recordset-Objekt mit den angegebenen Daten f&uuml;llt &#8211; etwa, indem man Abfrageparameter aus einem Formular einliest und diese in den SQL-Ausdruck integriert.<\/p>\n<p>Quellcode 5 zeigt ein Beispiel f&uuml;r diese Vorgehensweise: Die Routine &ouml;ffnet ein Recordset auf Basis der Tabelle Artikel, wobei der Artikelname der enthaltenen Datens&auml;tze einen bestimmten Wert aufweisen muss. Dieser wird der Routine per Parameter &uuml;bergeben und in einen SQL-Ausdruck integriert.<\/p>\n<p>Wenn Sie eine solche Technik oft einsetzen, kann dies zu Geschwindigkeitseinbu&szlig;en f&uuml;hren. Es gibt einen eleganteren Weg, der das vorherige Erstellen einer passenden Parameterabfrage erfordert. Die Parameterabfrage sieht wie in Bild 3 aus.<\/p>\n<p>Quellcode 6 zeigt, wie Sie ein Recordset auf Basis einer gespeicherten Abfrage mit Parametern erzeugen.<\/p>\n<p>Wenn Sie Daten per VBA einlesen, anlegen, &auml;ndern oder l&ouml;schen m&ouml;chten, ist DAO ein unverzichtbares Hilfsmittel. Im vorliegenden Beitrag haben Sie erfahren, wie Sie sich die Daten in Form eines Recordsets verf&uuml;gbar machen.<\/p>\n<p>Im n&auml;chsten Teil dieser Beitragsreihe zum Thema DAO erfahren Sie, was Sie alles mit Recordsets anfangen k&ouml;nnen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Bibliothek DAO (Data Access Objects) liefert dem VBA-Entwickler alles, was er f&uuml;r den Zugriff auf die in einer Datenbank enthaltenen Daten ben&ouml;tigt. Dar&uuml;ber hinaus offeriert diese Bibliothek Funktionen zum Bearbeiten des Tabellenentwurfs oder f&uuml;r den Zugriff auf Abfragen. Access im Un-ternehmen stellt die wichtigsten Techniken dieser Bibliothek vor.<\/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":[662006,66032006,44000035,44000025],"tags":[],"class_list":["post-55000354","post","type-post","status-publish","format-standard","hentry","category-662006","category-66032006","category-Datenzugriff_programmieren","category-VBA_und_Programmiertechniken"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>DAO, Teil 1: Database- und Recordset-Objekt - 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\/DAO_Teil_1_Database_und_RecordsetObjekt\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DAO, Teil 1: Database- und Recordset-Objekt\" \/>\n<meta property=\"og:description\" content=\"Die Bibliothek DAO (Data Access Objects) liefert dem VBA-Entwickler alles, was er f&uuml;r den Zugriff auf die in einer Datenbank enthaltenen Daten ben&ouml;tigt. Dar&uuml;ber hinaus offeriert diese Bibliothek Funktionen zum Bearbeiten des Tabellenentwurfs oder f&uuml;r den Zugriff auf Abfragen. Access im Un-ternehmen stellt die wichtigsten Techniken dieser Bibliothek vor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:18:21+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg05.met.vgwort.de\/na\/5904d0e3a3f44c98b786ee410f147733\" \/>\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=\"9\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"DAO, Teil 1: Database- und Recordset-Objekt\",\"datePublished\":\"2020-05-06T15:18:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/\"},\"wordCount\":1391,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/5904d0e3a3f44c98b786ee410f147733\",\"articleSection\":[\"2006\",\"3\\\/2006\",\"Datenzugriff programmieren\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/\",\"name\":\"DAO, Teil 1: Database- und Recordset-Objekt - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/5904d0e3a3f44c98b786ee410f147733\",\"datePublished\":\"2020-05-06T15:18:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/5904d0e3a3f44c98b786ee410f147733\",\"contentUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/5904d0e3a3f44c98b786ee410f147733\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/DAO_Teil_1_Database_und_RecordsetObjekt\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DAO, Teil 1: Database- und Recordset-Objekt\"}]},{\"@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":"DAO, Teil 1: Database- und Recordset-Objekt - 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\/DAO_Teil_1_Database_und_RecordsetObjekt\/","og_locale":"de_DE","og_type":"article","og_title":"DAO, Teil 1: Database- und Recordset-Objekt","og_description":"Die Bibliothek DAO (Data Access Objects) liefert dem VBA-Entwickler alles, was er f&uuml;r den Zugriff auf die in einer Datenbank enthaltenen Daten ben&ouml;tigt. Dar&uuml;ber hinaus offeriert diese Bibliothek Funktionen zum Bearbeiten des Tabellenentwurfs oder f&uuml;r den Zugriff auf Abfragen. Access im Un-ternehmen stellt die wichtigsten Techniken dieser Bibliothek vor.","og_url":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:18:21+00:00","og_image":[{"url":"http:\/\/vg05.met.vgwort.de\/na\/5904d0e3a3f44c98b786ee410f147733","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"9\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"DAO, Teil 1: Database- und Recordset-Objekt","datePublished":"2020-05-06T15:18:21+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/"},"wordCount":1391,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/5904d0e3a3f44c98b786ee410f147733","articleSection":["2006","3\/2006","Datenzugriff programmieren","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/","url":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/","name":"DAO, Teil 1: Database- und Recordset-Objekt - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/5904d0e3a3f44c98b786ee410f147733","datePublished":"2020-05-06T15:18:21+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/#primaryimage","url":"http:\/\/vg05.met.vgwort.de\/na\/5904d0e3a3f44c98b786ee410f147733","contentUrl":"http:\/\/vg05.met.vgwort.de\/na\/5904d0e3a3f44c98b786ee410f147733"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/DAO_Teil_1_Database_und_RecordsetObjekt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"DAO, Teil 1: Database- und Recordset-Objekt"}]},{"@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\/55000354","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=55000354"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000354\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000354"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000354"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}