{"id":55000260,"date":"2005-02-01T00:00:00","date_gmt":"2020-05-06T15:17:54","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=260"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"AccessFAQ_Rund_um_Abfragen","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/","title":{"rendered":"Access-FAQ: Rund um Abfragen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg02.met.vgwort.de\/na\/8a6359a558d3413287cf4caff389002f\" width=\"1\" height=\"1\" alt=\"\"><\/p>\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 f&uuml;nften Teil lernen Sie die L&ouml;sungen zu den meistgenannten Problemen der Teilnehmer der deutschsprachigen Access-Newsgroups im Zusammenhang mit Abfragen kennen.<\/b><\/p>\n<p>Eine recht h&auml;ufige Aufgabe bei der Arbeit mit Datenbanken ist der Vergleich der Daten zweier Tabellen. Dabei gibt es zwei &uuml;bliche Szenarien. Im ersten geht es um den Vergleich zweier &#8222;gleichrangiger&#8220; Tabellen, die &auml;hnlich aufgebaut sind &#8211; zum Beispiel wenn beim Import von externen Daten gepr&uuml;ft werden muss, ob und welche Daten in der bestehenden Tabelle bereits vorhanden beziehungsweise welche Datens&auml;tze in der Importtabelle neu sind. Das zweite Szenario ist die 1:n-Beziehung, bei der man feststellen m&ouml;chte, welche Daten der Mastertabelle in der Detailtabelle bereits vorkommen oder welche noch nicht. Typische Anwendungsf&auml;lle sind etwa, aus einer Adresstabelle (Mastertabelle) jene Adressen herauszufinden, die nicht in der Bestelltabelle (Detailtabelle) vorkommen, oder Firmen (Mastertabelle), bei denen es noch keine Ansprechpartner (Detailtabelle) gibt.<\/p>\n<p><IMG height=\"243\" src=\"..\/fileadmin\/_temp_\/{33982D6F-2B24-4E16-9D30-1424E2BA5566}\/pic001.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Verkn&uuml;pfungseigenschaften<\/span><\/b><\/p>\n<p>In beiden Szenarien l&auml;sst sich die Aufgabe im Prinzip darauf reduzieren herauszufinden, welche Daten sich in Tabelle A befinden, aber nicht in Tabelle B. <\/p>\n<p>Bild 1 zeigt eine Abfrage aus der Beispiel-Datenbank zu diesem Artikel mit der Firmen- und der Ansprechpartnertabelle.<\/p>\n<p>Wenn die Beziehungen in der Datenbank richtig gesetzt wurden, dann zeigt Access in der Abfrage mit den beteiligten Tabellen automatisch f&uuml;r die Verkn&uuml;pfungsfelder (hier FirmenId) eine Verkn&uuml;pfung ohne Pfeil an.<\/p>\n<p>Ohne Beziehungen auf Datenbankebene m&uuml;ssen Sie selber mit der Maus durch Ziehen und Fallenlassen eines Verkn&uuml;pfungsfeldes &uuml;ber dem anderen eine solche pfeillose Verkn&uuml;pfungslinie erzeugen. Mit dieser Verkn&uuml;pfung (INNER JOIN in SQL) bekommt man im Ergebnis nur jene Firmen, f&uuml;r die es bereits Ansprechpartner gibt.<\/p>\n<h3>Hinweis<\/h3>\n<p>Auf der beiliegenden Heft-CD finden Sie Beispiel-Datenbanken f&uuml;r Access 97 und Access 2000 und h&ouml;her mit den Quellcodes und Beispielen aus diesem Beitrag. <\/p>\n<p>Durch Doppelklick auf die Beziehungslinie &ouml;ffnet sich das Dialogfenster &#8222;Verkn&uuml;pfungseigenschaften&#8220;. Option 1 ist der bereits angef&uuml;hrte INNER JOIN, Option 2 der LEFT JOIN, Option 3 der RIGHT JOIN. Im Beispiel ist ein LEFT JOIN gefragt, also Pfeil von links, denn es geht im ersten Schritt darum, alle Firmen anzuzeigen, egal, ob es bereits Ansprechpartner gibt oder nicht. Welche Felder aus der Firmentabelle zur Anzeige ausgew&auml;hlt werden, ist an sich egal. Im Beispiel ist es nur der Firmenname. Der zweite wichtige Schritt &#8211; neben der richtigen Einstellung der Verkn&uuml;pfung &#8211; ist die Auswahl des Verkn&uuml;pfungsfeldes der n-Seite (im Beispiel FirmenId aus der Tabelle tbl_Ansprechpartner) mit dem Kriterium Ist Null.<\/p>\n<p>Als Ergebnis erscheinen nur noch jene Firmennamen, f&uuml;r die es keine Ansprechpartner gibt. Der SQL-Text dieser Abfrage lautet:<\/p>\n<pre>SELECT tbl_Firmen.Firma\r\nFROM tbl_Firmen LEFT JOIN tbl_AnsprechPartner ON tbl_Firmen.FirmenId = tbl_AnsprechPartner.FirmenId\r\nWHERE tbl_AnsprechPartner.FirmenId Is Null;<\/pre>\n<p>oder schematisch:<\/p>\n<pre>SELECT A.*\r\nFROM A LEFT JOIN B ON A.ID = B.ID\r\nWHERE B.ID Is Null<\/pre>\n<p>Es gibt verschiedene Methoden, um f&uuml;r die Ergebnis-Datens&auml;tze einer Abfrage eine laufende Nummer zu erzeugen. Zwei davon stelle ich hier vor. Eine, die reines SQL verwendet, und eine andere, die auf die Dom&auml;nenaggregatfunktionen von Access zugreift. Welche der beiden Varianten Sie w&auml;hlen, sollten Sie vor allem von einem Geschwindigkeitstest mit Ihren konkreten Daten abh&auml;ngig machen.<\/p>\n<p>In der Beispiel-Datenbank finden Sie eine Tabelle tblArtikel mit den Feldern ArtikelId, Bezeichnung, Stueck und Preis. Im ersten Beispiel soll die Nummerierung nach ArtikelId aufsteigend erfolgen. ArtikelId ist ein Autowertfeld mit den &uuml;blichen L&uuml;cken durch gel&ouml;schte Datens&auml;tze. F&uuml;r die laufende Nummer ist in der Abfrage ein neues Feld notwendig, in dem sich eine Unterabfrage befindet. Der Text im Feld lautet:<\/p>\n<pre>RowNum: (SELECT COUNT (*) FROM [tblArtikel] AS Temp WHERE [Temp].[ArtikelId] &lt; [tblArtikel].[ArtikelId])+1<\/pre>\n<p><IMG height=\"181\" src=\"..\/fileadmin\/_temp_\/{33982D6F-2B24-4E16-9D30-1424E2BA5566}\/pic002.png\" width=\"378\" border=\"0\"><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Laufende Nummer &uuml;ber ArtikelId<\/span><\/b><\/p>\n<p>Das Ergebnis sehen Sie in Bild 2. RowNum ist dabei ein beliebiger Name f&uuml;r das berechnete Feld, Temp ein beliebiger Name f&uuml;r die tempor&auml;re Tabelle in der Unterabfrage, die eine Kopie der echten Tabelle darstellt. Der SQL-Text z&auml;hlt, wie viele Datens&auml;tze es in dieser tempor&auml;ren Tabelle gibt, deren ArtikelId kleiner ist als die ArtikelId der echten Tabelle im aktuellen Abfrage-Datensatz. Zu diesem Wert wird dann au&szlig;erhalb der Unterabfrage noch 1 addiert.<\/p>\n<p>Beispiele: Im ersten Datensatz ist die aktuelle ArtikelId 1. Es gibt 0 Datens&auml;tze in der Tabellenkopie mit kleineren Werten f&uuml;r ArtikelId. Der Ausdruck [tblArtikel].[ArtikelId])+1 ergibt also den Wert 1 f&uuml;r das Feld RowNum. Im zweiten Datensatz hat das Feld ArtikelId den Wert 2. Es gibt einen Datensatz mit einem kleineren Wert f&uuml;r das Feld ArtikelId. Der Ausdruck [tblArtikel].[ArtikelId])+1 ergibt also in diesem Fall den Wert 2. Im dritten Datensatz hat das Feld ArtikelId den Wert 5. Es gibt aber nur zwei Datens&auml;tze mit kleineren Werten f&uuml;r das Feld ArtikelId, der entsprechende Ausdruck ergibt also den Wert 3. Die L&uuml;cke im Feldwert spielt f&uuml;r den neuen Z&auml;hler also keine Rolle.<\/p>\n<p>Eine andere Variante ist die Verwendung der DomAnzahl-Funktion (englisch: DCount). In der Beispiel-Datenbank finden Sie jede Abfrage einmal mit SQL- einmal mit DCount-Z&auml;hler. Das Prinzip ist hier das gleiche wie bei der SQL-Variante. Das Feld f&uuml;r den laufenden Z&auml;hler nach ArtikelId sieht dann jedoch so aus:<\/p>\n<pre>RowNum: DomAnzahl(\"ArtikelId\";\r\n\"tblArtikel\";\"ArtikelId &lt; \" & \r\n[ArtikelId])+1<\/pre>\n<p>Bei gleichen Werten in zwei Datens&auml;tzen wird der Rang zweimal vergeben und der n&auml;chste ausgelassen. Im folgenden Beispiel gibt es zweimal den Preis 300,00. Um einen Z&auml;hler aufgrund der Preise zu erzeugen, muss man die Unterabfrage nur leicht ab&auml;ndern:<\/p>\n<pre>RowNum: (SELECT COUNT (*) FROM \r\n[tblArtikel] AS Temp WHERE [Temp].[Preis] &lt; [tblArtikel].[Preis] )+1<\/pre>\n<p>beziehungsweise:<\/p>\n<pre>RowNum: DomAnzahl(\"Preis\";\r\n\"tblArtikel\";\"Preis &lt; \" & [Preis])+1<\/pre>\n<p>Bild 3 zeigt das Ergebnis mit dem doppelt auftretenden Wert 2 und dem ausgelassenen Wert 3 im Z&auml;hler. <\/p>\n<p>Die fortlaufende Nummer entspricht also der Wertung bei Sportereignissen, die auch einer der praktischen Anwendungsf&auml;lle f&uuml;r diese Technik ist.<\/p>\n<p>Wenn es eine andere Sortierung oder andere einschr&auml;nkende Kriterien f&uuml;r die Datens&auml;tze gibt, so m&uuml;ssen diese auch in der Unterabfrage beziehungsweise im DomAnzahl-Ausdruck vorgenommen werden. Lautet zum Beispiel das Kriterium in der Preis-Spalte &gt;300, dann muss das Feld f&uuml;r die laufende Nummer so aussehen:<\/p>\n<pre>RowNum: (SELECT COUNT (*) FROM [tblArtikel] AS Temp WHERE [Temp].[Preis] &gt; 300 AND [Temp].[Preis] &lt; [tblArtikel].[Preis] )+1<\/pre>\n<p>beziehungsweise mit DomAnzahl:<\/p>\n<pre>RowNum: DomAnzahl(\"Preis\";\"tblArtikel\";\r\n\"Preis &gt; 300 AND Preis &lt; \" & [Preis])+1<\/pre>\n<p><IMG height=\"179\" src=\"..\/fileadmin\/_temp_\/{33982D6F-2B24-4E16-9D30-1424E2BA5566}\/pic003.png\" width=\"372\" border=\"0\"><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Fortlaufende Nummer mit doppelten Werten<\/span><\/b><\/p>\n<p>Bild 4 zeigt das Ergebnis. Die weggefilterten Datens&auml;tze spielen f&uuml;r die laufende Nummer also keine Rolle.<\/p>\n<p><IMG height=\"129\" src=\"..\/fileadmin\/_temp_\/{33982D6F-2B24-4E16-9D30-1424E2BA5566}\/pic004.png\" width=\"374\" border=\"0\"><\/p>\n<p><!--30percent--><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Laufende Nummer mit Kriterien<\/span><\/b><\/p>\n<p>Nach &auml;hnlichem Muster funktioniert die Berechnung von laufenden Summen in Abfragen. Folgender Ausdruck in einem berechneten Feld summiert die Preise in der Artikeltabelle zeilenweise auf:<\/p>\n<pre>LaufSumme: nz([Preis])+\r\nnz(DomSumme(\"Preis\";\"tblArtikel\";\r\n\"ArtikelId &lt; \" & [ArtikelId]))<\/pre>\n<p>Dabei wird der Preis im aktuellen Datensatz addiert mit der Summe aller Preise, deren ArtikelId kleiner ist als die aktuelle. Die Nz-Funktion sorgt dabei daf&uuml;r, dass auch in jenen Datens&auml;tzen ein Preis erscheint, bei denen einer der Operanden fehlt, also zum Beispiel im ersten Datensatz, in dem die DomSumme noch keinen Wert liefert. Bild 5 zeigt die entsprechende Abfrage aus der Beispiel-Datenbank.<\/p>\n<p><IMG height=\"196\" src=\"..\/fileadmin\/_temp_\/{33982D6F-2B24-4E16-9D30-1424E2BA5566}\/pic005.png\" width=\"392\" border=\"0\"><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Laufende Summe<\/span><\/b><\/p>\n<p>Nach all der Ordnung beim vorherigen Thema folgt nun das Gegenteil, n&auml;mlich die zuf&auml;llige Reihenfolge der Datens&auml;tze, die sich bei jedem Ausf&uuml;hren der Abfrage &auml;ndert. Praktische Anwendungsf&auml;lle sind zum Beispiel Testverfahren, Auslosungen oder auch Vokabeltrainer, bei denen sich die Reihenfolge der zu &uuml;bersetzenden Vokabeln immer wieder &auml;ndern soll.<\/p>\n<p>F&uuml;r die Erzeugung von Zufallszahlen gibt es die VBA-Funktion Rnd() (f&uuml;r Randomize), die in Abfragen ZZG() hei&szlig;t. Am einfachsten ist die Verwendung mit einem Autowert-Feld. Sie k&ouml;nnen einer Abfrage einfach ein neues Feld hinzuf&uuml;gen und nach diesem Feld sortieren lassen:<\/p>\n<pre>ZZG([NameDesAutowertFeldes])<\/pre>\n<p>Bei jedem &ouml;ffnen der Abfrage wird sich die Reihenfolge &auml;ndern. Ein Beispiel daf&uuml;r finden Sie ebenfalls in der Beispieldatenbank unter dem Namen qryZufaelligeReihenfolge.<\/p>\n<p>Wie man in Access das Alter einer Person korrekt berechnet, habe ich bereits in einem fr&uuml;heren FAQ-Artikel beschrieben.<\/p>\n<p>Eine verwandte, aber anders zu l&ouml;sende Aufgabe sind Geburtstags- oder Jubil&auml;umslisten. Die konkrete Aufgabenstellung lautet in der Praxis meist herauszufinden, wer in einem bestimmten Zeitraum ab jetzt Geburtstag hat, damit noch entsprechende Vorbereitungen m&ouml;glich sind.<\/p>\n<p>In der Beispiel-Datenbank gibt es die Abfrage qryGeburtstage, die aus den Geburtsdaten der Tabelle tblAnsprechpartner ermittelt, welcher Ansprechpartner in den n&auml;chsten 14 Tagen Geburtstag hat. In einem berechneten Feld GebHeute wird dazu das Geburtsdatum in das aktuelle Jahr transferiert. Der Ausdruck lautet:<\/p>\n<pre>GebHeute: DatAdd(\"jjjj\";\r\nnz(DatDiff(\"jjjj\";[GeburtsDatum];\r\nDatum()));[GeburtsDatum])<\/pre>\n<p>Die innere Funktion DatDiff() errechnet die Differenz in Jahren zwischen dem Geburtsdatum und dem aktuellen Datum. Die &auml;u&szlig;ere Funktion DatAdd() addiert diese Jahre dann zum Geburtsdatum. Als Ergebnis erh&auml;lt man Monat und Tag des Geburtsdatums, aber im aktuellen Jahr.<\/p>\n<p>Bei Datumsberechnungen treten h&auml;ufig Probleme mit Schaltjahren auf. Hier jedoch k&uuml;mmert sich Access darum. Falls jemand an einem 29. Februar in einem Schaltjahr geboren ist und das aktuelle Jahr kein Schaltjahr ist, wird das Datum im aktuellen Jahr automatisch in den 28. Februar umgewandelt.<\/p>\n<p>Das Kriterium f&uuml;r die Geburtstage in den n&auml;chsten 14 Tagen lautet:<\/p>\n<pre>Zwischen Datum() Und Datum()+14<\/pre>\n<p>Ein weiteres h&auml;ufiges Problem neben den Schaltjahren ist der Jahreswechsel. Bei der gezeigten Methode werden die Geburtstage in das aktuelle Jahr transferiert. Was aber, wenn Sie am 31. Dezember wissen m&ouml;chten, wer Anfang Januar Geburtstag hat In diesem Fall hilft ein zweites, sehr &auml;hnliches Feld:<\/p>\n<pre>GebFolgeJahr: DatAdd(\"jjjj\";\r\nnz(DatDiff(\"jjjj\";[GeburtsDatum];\r\nDatum()))+1;[GeburtsDatum])<\/pre>\n<p>Der einzige Unterschied liegt im Teil &#8222;+1&#8220;. Damit wird ein Jahr mehr addiert und somit sind die Geburtstage f&uuml;r das n&auml;chste Jahr berechnet. Das Kriterium ist das gleiche wie beim Feld f&uuml;r das aktuelle Jahr, wird aber im Abfrage-Entwurf eine Zeile tiefer platziert, denn es ist ein Oder-Kriterium. Bild 6 zeigt diese Anordnung in der Beispiel-Abfrage. Mithilfe dieser Technik k&ouml;nnen Sie nat&uuml;rlich nicht nur Geburtstage ermitteln, sondern ebenso Mitarbeiter-Dienstjubil&auml;en oder j&auml;hrlich wiederkehrende Wartungstermine.<\/p>\n<p><IMG height=\"284\" src=\"..\/fileadmin\/_temp_\/{33982D6F-2B24-4E16-9D30-1424E2BA5566}\/pic006.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Geburtstage ermitteln<\/span><\/b><\/p>\n<p>In einer Access-Abfrage k&ouml;nnen Sie bis auf wenige Ausnahmen alle VBA-Funktionen verwenden als seien sie SQL-Befehle. Ebenso k&ouml;nnen Sie selbst erstellte VBA-Funktionen einsetzen.<\/p>\n<p>Als &#8222;&uuml;bersetzer&#8220; fungiert dabei der so genannte &#8222;Expression Service&#8220; (ES), eine Komponente von Access, genauer seiner Datenbank-Engine JET.<\/p>\n<p>Im Gegensatz dazu ist es nicht m&ouml;glich, Variablen, die Sie irgendwo im VBA-Code deklariert haben, direkt in Abfragen einzusetzen, obwohl das bei vielen Aufgaben praktisch w&auml;re, zum Beispiel in einem Kriterium. Der ES hat keinen Zugriff auf Variablen, er kann nur mit Funktionen umgehen. Darin liegt aber auch schon die L&ouml;sung f&uuml;r das Variablen-Problem.<\/p>\n<p>Deklarieren Sie die Variable global, das hei&szlig;t im Deklarationsbereich eines Standardmoduls. Dann reicht es &#8211; ebenfalls in einem Standardmodul -, eine Funktion zu schreiben, die nichts anderes macht, als den Wert der Variablen zur&uuml;ckzugeben. Ein Beispiel f&uuml;r eine Textvariable:<\/p>\n<pre>Public strMeineVariable As String\r\nPublic Function fctSendVar() As String\r\n   fctSendVar = strMeineVariable\r\nEnd Function<\/pre>\n<p>Diese Variable versorgen Sie, wie bisher auch, irgendwo im Code mit einem Wert. In der Abfrage schreiben Sie einfach den Namen der Funktion, um den aktuellen Wert der Variablen weiter zu verwenden.<\/p>\n<p>&uuml;brigens k&ouml;nnen Sie auf die gleiche Weise den Wert einer Variablen auch in Steuerelementinhalten in Formularen und Berichten einsetzen.<\/p>\n<p>Kriterien in Abfragen dienen normalerweise dazu, die Ergebnis-Datens&auml;tze einzuschr&auml;nken. Das ist aber nicht immer der Fall. Es kommt oft vor, dass in Kriterien Formularbez&uuml;ge oder Parameter verwendet werden, f&uuml;r die es aktuell keinen Wert gibt. Gehen wir von einer einfachen Parameterabfrage aus, in der beim Feld Nachname als Kriterium [Welcher Name] eingegeben wird. Der SQL-Text k&ouml;nnte so aussehen:<\/p>\n<pre>SELECT Nachname, Vorname, GeburtsDatum\r\nFROM tblAnsprechpartner\r\nWHERE Nachname = [Welcher Name]<\/pre>\n<p>Beim &ouml;ffnen dieser Abfrage kennt Access [Welcher Name] nicht und &ouml;ffnet daher ein Parameterfenster. Entspricht der eingegebene Wert einem Nachnamen in der Tabelle, so liefert Access den passenden Datensatz zur&uuml;ck beziehungsweise bei mehrfachem Vorkommen alle passenden Datens&auml;tze.<\/p>\n<p>Wird kein Wert eingegeben, gibt es im Ergebnis keine Datens&auml;tze, auch nicht solche ohne Nachnamen oder mit einem Leerstring (&#8222;&#8220;) als Nachnamen.<\/p>\n<p>Dasselbe gilt f&uuml;r einen Formularbezug, also zum Beispiel:<\/p>\n<p><IMG height=\"308\" src=\"..\/fileadmin\/_temp_\/{33982D6F-2B24-4E16-9D30-1424E2BA5566}\/pic007.png\" width=\"397\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Formular zur Parametereingabe<\/span><\/b><\/p>\n<pre>[Forms]![frmParameter]![txtSuchName]<\/pre>\n<p>als kompletter SQL-String:<\/p>\n<pre>SELECT Nachname, Vorname, GeburtsDatum\r\nFROM tblAnsprechpartner\r\nWHERE Nachname=\r\nForms!frmParameter!txtSuchName<\/pre>\n<p>In der Praxis ist es meist so, dass man alle Datens&auml;tze sehen m&ouml;chte, wenn kein einschr&auml;nkender Parameterwert vorhanden ist. Der erste Einfall oder Tipp dazu ist meistens, den Parameter mit &#8222;Wie&#8220; und Asterisken zu versehen. Im Abfrage-Entwurfsfenster sieht er dann so aus:<\/p>\n<pre>Wie \"*\" & [Welcher Name] & \"*\"<\/pre>\n<p>Der entsprechende SQL-Text sieht folgenderma&szlig;en aus:<\/p>\n<pre>SELECT Nachname, Vorname, GeburtsDatum\r\nFROM tblAnsprechpartner\r\nWHERE Nachname Like \"*\" & [Welcher Name] & \"*\"<\/pre>\n<p>Das funktioniert auch weitgehend. Ohne Parameterwert werden fast alle Datens&auml;tze angezeigt. &#8222;Fast&#8220;, weil damit keine Datens&auml;tze gefunden werden, bei denen der Nachname fehlt. Das Sternchen (*) findet also keine NULL-Werte. M&ouml;chten Sie im praktischen Anwendungsfall auch NULL-Werte sehen, hilft folgendes Kriterium:<\/p>\n<pre>[Welcher Name] Oder [Welcher Name] Ist Null<\/pre>\n<p>Wenn Sie hier einen Parameterwert eingeben, wird der entsprechende Datensatz gefunden.<\/p>\n<p>Wenn Sie keinen Wert eingeben, trifft die Oder-Bedingung zu und Access macht nichts weiter mit dem kompletten Kriterium. Daher stehen im Ergebnis alle Datens&auml;tze, auch jene ohne Nachnamen.<\/p>\n<p>Genauso funktioniert es im Beispiel mit dem Formularbezug. Das Kriterium lautet hier:<\/p>\n<pre>[Forms]![frmParameter]![txtSuchName] Oder [Forms]![frmParameter]![txtSuchName] Ist Null<\/pre>\n<p>Diese Technik bietet noch weitere M&ouml;glichkeiten. Soll der Anwender einen bestimmten Wert eingeben, etwa ein Sternchen (*) oder das Wort &#8222;Alle&#8220;, um alle Datens&auml;tze zu erhalten, brauchen Sie das Kriterium nur entsprechend anzupassen:<\/p>\n<pre>[Welcher Name] Oder\r\n[Welcher Name] = \"*\"<\/pre>\n<p>Alternativ k&ouml;nnen Sie auch den folgenden Ausdruck verwenden:<\/p>\n<p>[Welcher Name] Oder<\/p>\n<p>[Welcher Name] = &#8222;Alle&#8220;<\/p>\n<p>Bild 7 zeigt das Beispielformular frmParameterAusFormular, in dem die Variante mit dem Sternchen (*) als Symbol f&uuml;r alle Datens&auml;tze eingesetzt wird.<\/p>\n<p>Datenherkunft des Formulars ist die Abfrage qryParameterAusFormular. Das Kriterium f&uuml;r die Nachname-Spalte in der Abfrage lautet:<\/p>\n<pre>[Forms]![frmParameter]![txtSuchName] Oder [Forms]![frmParameter]![txtSuchName]=\"*\"<\/pre>\n<p><IMG height=\"303\" src=\"..\/fileadmin\/_temp_\/{33982D6F-2B24-4E16-9D30-1424E2BA5566}\/pic008.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Oder-Kriterium von Access umgestellt<\/span><\/b><\/p>\n<p>So habe ich das zumindest eingegeben. In der Beispiel-Datenbank werden Sie dies allerdings nicht so zu sehen bekommen. Der Access-Abfrage-Editor hat die unangenehme Eigenschaft, dass er beim Schlie&szlig;en und erneuten &ouml;ffnen der Abfrage solche Oder-Statements zerlegt, das hei&szlig;t, eine neue Spalte f&uuml;r die Bedingung nach dem &#8222;Oder&#8220; erzeugt und den Vergleichswert als Oder-Kriterium in eine neue Zeile schreibt.<\/p>\n<p>Bild 8 zeigt das Ergebnis dieser eigenm&auml;chtigen Umstellung am aktuellen Beispiel.<\/p>\n<p>Das hat zur Folge, dass bei mehreren Parametern der Abfrage-Entwurf schnell un&uuml;bersichtlich wird.<\/p>\n<p>Generell sollten Sie die beschriebene Technik nur f&uuml;r wenige Parameter in der Abfrage anwenden. Bei vielen Parametern, die zum Teil leer sein k&ouml;nnen, ist es wesentlich flexibler und im SQL-Resultat besser, den SQL-Text per VBA zu basteln.<\/p>\n<p>Der Ausdruck =Datum() mit oder ohne Gleichheitszeichen ist sicher das h&auml;ufigste Kriterium bei Datumsfeldern, um den Feldwert mit dem aktuellen Systemdatum zu vergleichen. Dabei kann es vorkommen, dass Felder, die augenscheinlich dem aktuellen Datum entsprechen, trotzdem im Ergebnis nicht zur&uuml;ckgegeben werden. Das Gleiche kann passieren, wenn man im Kriterium ein fixes Datum pr&uuml;ft, also zum Beispiel: 1.1.2005.<\/p>\n<p>Die Ursache liegt darin, dass in einem Datumsfeld in Access nie ein Datum alleine steht, sondern immer Datum und Uhrzeit gemeinsam. Dabei kommt es nicht darauf an, wie die Anzeige des Feldes formatiert ist. Wenn keine Uhrzeit eingegeben wurde, entspricht der Wert im Datumsfeld eben 00:00 Uhr dieses Tages.<\/p>\n<p>Das angesprochene Problem in Abfragen muss nicht durch eine absichtliche Uhrzeit-Angabe entstanden sein. Oft ist es die Folge eines kleinen Fehlers beim automatischen F&uuml;llen des Feldes, zum Beispiel, wenn die Eigenschaft &#8222;Standardwert&#8220; eines Steuerelementes in einem Formular =Jetzt() lautet oder wenn Sie im VBA-Code das Feld mit der Funktion Now bef&uuml;llen.<\/p>\n<p>In diesen F&auml;llen steht im Feld sehr wahrscheinlich eine Zeit &gt;00:00 Uhr, auch wenn sie durch die Ausgabeformatierung nicht angezeigt werden sollte. Beim Vergleich mit Datum() pr&uuml;ft man jedoch immer gegen 00:00 Uhr des aktuellen Tages. Daher werden Datens&auml;tze mit einer anderen Uhrzeit nicht gefunden.<\/p>\n<p>Es gibt verschiedene Methoden, das Problem zu l&ouml;sen oder zu umgehen. Wenn Sie wirklich nur ein Datum und keine Uhrzeit in ein Feld schreiben m&ouml;chten, dann verwenden Sie nicht die Funktion Jetzt() beziehungsweise Now in VBA, sondern die Funktion Datum() beziehungsweise Date in VBA.<\/p>\n<p>Wenn die Uhrzeit im Feld gewollt ist und dennoch alle Datens&auml;tze des heutigen Datums gefunden werden sollen, k&ouml;nnen Sie als Kriterium folgenden Ausdruck verwenden:<\/p>\n<pre>&gt;= Datum() Und &lt; Datum()+1<\/pre>\n<p>Kreuztabellenabfragen sind eine Spezialit&auml;t von Access. Den daf&uuml;r zust&auml;ndigen SQL-Befehl TRANSFORM gibt es in Standard-SQL nicht.<\/p>\n<p>Es ist auch nicht genau dokumentiert, was Access und seine Datenbank-Engine JET zur Erzeugung einer Kreuztabelle intern anstellen.<\/p>\n<p>Der Access-Anwender oder Entwickler ist in der Regel aber froh &uuml;ber diese Erweiterung des Standards, weil sie die Umkehrung von Zeilen und Spalten gegen&uuml;ber anderen Datenbanksystemen erheblich erleichtert.<\/p>\n<p>Ein h&auml;ufiges Problem bei Kreuztabellenabfragen ergibt sich bei der Verwendung von Parametern, egal ob der Parameterwert &uuml;ber ein Parameterfenster eingegeben wird oder es sich um einen Formularbezug handelt.<\/p>\n<p>Diese Parameter funktionieren in anderen Abfragetypen tadellos, indem man schlicht<\/p>\n<pre>[ParameterName]<\/pre>\n<p>oder<\/p>\n<pre>Forms!FormularName!SteuerelementName<\/pre>\n<p>irgendwo im Abfrageentwurf eingibt.<\/p>\n<p>Bei einer Kreuztabellenabfrage erscheint in solchen F&auml;llen jedoch die folgende Fehlermeldung:<\/p>\n<p>&#8222;Das Microsoft Jet-Datenbankmodul erkennt &lt;Name&gt; nicht als g&uuml;ltigen Feldnamen oder Ausdruck. (Fehler 3070)&#8220;<\/p>\n<p>Die Ursache liegt in einer weiteren Besonderheit von Kreuztabellenabfragen.<\/p>\n<p>Bei allen anderen Abfragetypen pr&uuml;ft Access vor der Ausf&uuml;hrung, ob es einen der Begriffe in eckigen Klammern nicht als Feldnamen erkennt, und &ouml;ffnet in diesem Fall ein Parameterfenster. Bei einer Kreuztabellenabfrage aber werden die Spaltennamen dynamisch erzeugt. Access wei&szlig; nicht, ob es sich um einen Parameter oder einen Feldnamen handelt.<\/p>\n<p>Erst sp&auml;ter, beim Versuch der Datenbank-Engine JET, den vermeintlichen Feldnamen an ein Tabellenfeld zu binden, kommt es zu diesem Fehler.<\/p>\n<p>Die L&ouml;sung des Problems ist einfach:<\/p>\n<p>Tragen Sie den Parameternamen oder Formularbezug samt Datentyp in die Parameterliste der Kreuztabellenabfrage ein.<\/p>\n<p>Das etwas zu schmal geratene Dialogfenster f&uuml;r die Eingabe der Parameter (siehe Bild 9) erreichen Sie im Abfrage-Entwurfsfenster &uuml;ber den Men&uuml;punkt Abfrage\/Parameter.<\/p>\n<p><IMG height=\"252\" src=\"..\/fileadmin\/_temp_\/{33982D6F-2B24-4E16-9D30-1424E2BA5566}\/pic009.png\" width=\"218\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><IMG height=\"0\" src=\"..\/fileadmin\/_temp_\/{33982D6F-2B24-4E16-9D30-1424E2BA5566}\/pic010.png\" width=\"0\" border=\"0\"><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9:   Parameterliste einer Abfrage<\/span><\/b><\/p>\n<p>Access stellt daraufhin dem eigentlichen SQL-Text der Abfrage eine Parameterliste voran.<\/p>\n<p>Die erste Zeile des SQL-Textes mit der Parameterliste aus Bild 9 lautet beispielsweise:<\/p>\n<pre>PARAMETERS Forms!frmParameter!txtSuchNr Long, [Welcher Name] Text;<\/pre>\n<p>Durch diese Eintragung und die Erg&auml;nzung des SQL-Textes kennen Access und JET den Namen und Typ des Parameters von Anfang an und gehen richtig damit um.<\/p>\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 f&uuml;nften Teil lernen Sie die L&ouml;sungen zu den meistgenannten Problemen der Teilnehmer der deutschsprachigen Access-Newsgroups im Zusammenhang mit Abfragen kennen. Die Themen im Detail:<br \/>\n&#8211; Datens&auml;tze aus Tabelle A, die nicht in Tabelle B sind<br \/>\n&#8211; Laufende Nummer oder Summe<br \/>\n&#8211; Zuf&auml;llige Reihenfolge der Datens&auml;tze erreichen<br \/>\n&#8211; Geburtstagsliste erstellen<br \/>\n&#8211; Variablen in Abfragen verwenden<br \/>\n&#8211; Kriterium f&uuml;r alle Datens&auml;tze<br \/>\n&#8211; Datumskriterium funktioniert nicht<br \/>\n&#8211; Parameter in Kreuztabellenabfragen<\/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":[66012005,662005,44000004],"tags":[],"class_list":["post-55000260","post","type-post","status-publish","format-standard","hentry","category-66012005","category-662005","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 Abfragen - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/\" \/>\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 Abfragen\" \/>\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 f&uuml;nften Teil lernen Sie die L&ouml;sungen zu den meistgenannten Problemen der Teilnehmer der deutschsprachigen Access-Newsgroups im Zusammenhang mit Abfragen kennen. Die Themen im Detail: - Datens&auml;tze aus Tabelle A, die nicht in Tabelle B sind - Laufende Nummer oder Summe - Zuf&auml;llige Reihenfolge der Datens&auml;tze erreichen - Geburtstagsliste erstellen - Variablen in Abfragen verwenden - Kriterium f&uuml;r alle Datens&auml;tze - Datumskriterium funktioniert nicht - Parameter in Kreuztabellenabfragen\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:17:54+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg02.met.vgwort.de\/na\/8a6359a558d3413287cf4caff389002f\" \/>\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_Abfragen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Abfragen\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Access-FAQ: Rund um Abfragen\",\"datePublished\":\"2020-05-06T15:17:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Abfragen\\\/\"},\"wordCount\":3029,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Abfragen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/8a6359a558d3413287cf4caff389002f\",\"articleSection\":[\"1\\\/2005\",\"2005\",\"Tipps und Tricks\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Abfragen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Abfragen\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Abfragen\\\/\",\"name\":\"Access-FAQ: Rund um Abfragen - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Abfragen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Abfragen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/8a6359a558d3413287cf4caff389002f\",\"datePublished\":\"2020-05-06T15:17:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Abfragen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Abfragen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Abfragen\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/8a6359a558d3413287cf4caff389002f\",\"contentUrl\":\"http:\\\/\\\/vg02.met.vgwort.de\\\/na\\\/8a6359a558d3413287cf4caff389002f\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/AccessFAQ_Rund_um_Abfragen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Access-FAQ: Rund um Abfragen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Access-FAQ: Rund um Abfragen - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/","og_locale":"de_DE","og_type":"article","og_title":"Access-FAQ: Rund um Abfragen","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 f&uuml;nften Teil lernen Sie die L&ouml;sungen zu den meistgenannten Problemen der Teilnehmer der deutschsprachigen Access-Newsgroups im Zusammenhang mit Abfragen kennen. Die Themen im Detail: - Datens&auml;tze aus Tabelle A, die nicht in Tabelle B sind - Laufende Nummer oder Summe - Zuf&auml;llige Reihenfolge der Datens&auml;tze erreichen - Geburtstagsliste erstellen - Variablen in Abfragen verwenden - Kriterium f&uuml;r alle Datens&auml;tze - Datumskriterium funktioniert nicht - Parameter in Kreuztabellenabfragen","og_url":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:17:54+00:00","og_image":[{"url":"http:\/\/vg02.met.vgwort.de\/na\/8a6359a558d3413287cf4caff389002f","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_Abfragen\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Access-FAQ: Rund um Abfragen","datePublished":"2020-05-06T15:17:54+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/"},"wordCount":3029,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg02.met.vgwort.de\/na\/8a6359a558d3413287cf4caff389002f","articleSection":["1\/2005","2005","Tipps und Tricks"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/","url":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/","name":"Access-FAQ: Rund um Abfragen - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg02.met.vgwort.de\/na\/8a6359a558d3413287cf4caff389002f","datePublished":"2020-05-06T15:17:54+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/#primaryimage","url":"http:\/\/vg02.met.vgwort.de\/na\/8a6359a558d3413287cf4caff389002f","contentUrl":"http:\/\/vg02.met.vgwort.de\/na\/8a6359a558d3413287cf4caff389002f"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/AccessFAQ_Rund_um_Abfragen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Access-FAQ: Rund um Abfragen"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000260","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=55000260"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000260\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}