{"id":55000085,"date":"2002-12-01T00:00:00","date_gmt":"2021-02-10T20:17:57","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=85"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Google_per_WebService_abfragen","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/","title":{"rendered":"Google per Web-Service abfragen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg06.met.vgwort.de\/na\/c109640f05d24e3e82b3cba63710339d\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Christoph Spielmann, D&uuml;sseldorf<\/b><\/p>\n<p><b>Die Kommunikation zwischen Anwendungen spielt bei modernen Datenbanken eine wesentliche Rolle. H&auml;ufig ist es beispielsweise notwendig, dass eine Anwendung auf eine Datenbank zugreifen soll, hierbei jedoch keinen direkten Zugriff auf die Tabellen haben darf. Zudem kann der Fall eintreten, dass die Datenbank nicht auf dem lokalen PC oder im lokalen Netzwerk, sondern irgendwo im Internet untergebracht ist. Um hier eine Kommunikation zu erm&ouml;glichen, bietet sich der Einsatz von Web-Services an. Dieser Artikel zeigt Ihnen, wie Sie mit Access auf den Web-Service der Suchmaschine &#8222;Google&#8220; zugreifen und die abgefragten Suchergebnisse in einer Datenbank speichern.<\/b><\/p>\n<p>Bei Web-Services handelt es sich um Anwendungen, die ihre Dienste &uuml;ber ein standardisiertes Protokoll zur Verf&uuml;gung stellen. Hinter diesem Protokoll verbirgt sich nichts anderes als eine Textdatei im XML-Format.<\/p>\n<p>Der Hintergrund ist, dass XML-Dateien von modernen Browsern wie herk&ouml;mmlicher HTML-Code interpretiert werden k&ouml;nnen. Dementsprechend gelangen XML-Dateien z. B. problemlos durch Firewalls, sofern diese f&uuml;r den normalen Transfer von Web-Seiten freigeschaltet sind. Die Kommunikation findet &uuml;ber den Port 80 statt, der f&uuml;r Web-Server reserviert ist.<\/p>\n<p>Nun gen&uuml;gt es nicht zu definieren, dass die Daten per XML &uuml;bertragen werden. Wichtig ist au&szlig;erdem noch, dass eine spezielle XML-Struktur zum Einsatz kommt. Diese Strukturdefinition tr&auml;gt den Namen SOAP (Simple Object Access Protocol). Bei der Entwicklung von SOAP war das Ziel, die Kommunikation f&uuml;r den Benutzer m&ouml;glichst einfach zu gestalten. Zudem sollte SOAP alle m&ouml;glichen Programmier-Werkzeuge und Plattformen (z. B. Windows, Linux oder Macintosh) unterst&uuml;tzen.<\/p>\n<p>Herausgekommen ist ein standardisiertes Protokoll zum Abruf von Objektmethoden &uuml;ber das Internet. Sie kennen dies bereits von VBA und Access: Wenn Sie ein Klassenmodul namens clsDienst in Ihrer Anwendung haben, k&ouml;nnen Sie die darin enthaltene Methode Start &uuml;ber die folgende Syntax aufrufen:<\/p>\n<pre>Dim MeinDienst as new clsDienst\r\nMeinDienst.Start<\/pre>\n<p>&auml;hnlich einfach ist der Aufruf mit Hilfe von SOAP, wenn sich die Klasse Dienst auf einem Rechner im Internet befindet.<\/p>\n<p>Da Web-Services eine relativ neue Technologie sind, stellt Access noch keine eingebauten Funktionen zum Aufruf von Web-Services zur Verf&uuml;gung. Sie ben&ouml;tigen daf&uuml;r ein spezielles Toolkit namens Microsoft Office XP Web Services Toolkit 2.0. Um die hier vorgestellte L&ouml;sung nachvollziehen zu k&ouml;nnen, m&uuml;ssen Sie dieses Toolkit unter der folgenden Adresse herunterladen:<\/p>\n<p><IMG height=\"343\" src=\"..\/fileadmin\/_temp_\/{FC35C1A8-83BF-4351-963F-D884C6A7FA5B}\/pic001.png\" width=\"430\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Registrierung bei Google<\/span><\/b><\/p>\n<pre>http:\/\/download.microsoft.com\/download\/OfficeXPDev\/Install\/2.0\/W982KMeXP\/DE\/setup.exe<\/pre>\n<p>Achten Sie darauf, dass Sie nicht versehentlich die Version 1.0 herunterladen, auf die Microsoft noch von den Office-Startseiten verlinkt.<\/p>\n<h3>Hinweis<\/h3>\n<p>Von dem Zusatz XP sollten Sie sich &uuml;brigens nicht verwirren lassen: Das Toolkit funktioniert sowohl mit Access 2000 als auch mit Access XP. &auml;ltere Versionen wie z. B. Access 97 werden allerdings nicht unterst&uuml;tzt. <\/p>\n<p>Nach dem Download starten Sie die EXE-Datei und installieren das Toolkit.<\/p>\n<p>Wie bereits erw&auml;hnt, greift das hier vorgestellte Beispiel auf die Suchmaschine Google zu. Die Google-Betreiber m&ouml;chten hierbei sicherstellen, dass der Zugriff nicht missbraucht wird.<\/p>\n<p>Schlie&szlig;lich w&auml;re es denkbar, eine eigene Suchmaschine im Internet zu ver&ouml;ffentlichen, die in Wirklichkeit per Web-Service auf Google zugreift. Aus diesem Grund ist eine vorhergehende Registrierung bei Google erforderlich, bei der Sie einen Schl&uuml;ssel erhalten. Dieser Schl&uuml;ssel berechtigt Sie, t&auml;glich maximal 1000 Suchergebnisse abzufragen, was in der Praxis mehr als genug sein d&uuml;rfte.<\/p>\n<p>Zur Durchf&uuml;hrung der Registrierung gehen Sie wie folgt vor:<\/p>\n<li>Rufen Sie den Internet-Explorer auf und wechseln Sie zu der Seite http:\/\/www.google.de\/apis\/.<\/li>\n<li>Klicken Sie auf create a google account.<\/li>\n<li>Geben Sie Ihre E-Mail-Adresse und ein beliebiges Passwort ein.<\/li>\n<li>Erzeugen Sie Ihr Konto &uuml;ber die entsprechende Schaltfl&auml;che.<\/li>\n<li>Warten Sie auf die Best&auml;tigungs-E-Mail, die Google automatisch an die angegebene Adresse sendet.<\/li>\n<li>Klicken Sie den in der Best&auml;tigungs-E-Mail enthaltenen Link an. Hierdurch teilen Sie Google mit, dass Sie eine korrekte E-Mail-Adresse angegeben haben.<\/li>\n<li>Wechseln Sie wieder zu der Seite http:\/\/www.google.de\/apis\/ und klicken Sie erneut auf create a google account.<\/li>\n<li>Klicken Sie anschlie&szlig;end auf Sign in here und geben Sie Ihre E-Mail-Adresse und das Passwort an. Best&auml;tigen Sie mit Sign in (siehe Bild 1). (<\/li>\n<p>Nach dem letzten Schritt erhalten Sie von Google eine erneute E-Mail, die Ihren Schl&uuml;ssel zum Zugriff auf den Web-Service enth&auml;lt. Bewahren Sie diesen gut auf.<\/p>\n<p><IMG height=\"373\" src=\"..\/fileadmin\/_temp_\/{FC35C1A8-83BF-4351-963F-D884C6A7FA5B}\/pic002.png\" width=\"430\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Der Startbildschirm des Web-Service-Toolkits<\/span><\/b><\/p>\n<p><IMG height=\"373\" src=\"..\/fileadmin\/_temp_\/{FC35C1A8-83BF-4351-963F-D884C6A7FA5B}\/pic003.png\" width=\"430\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Die Suche nach Web-Services zum Thema Wetter.<\/span><\/b><\/p>\n<p>Um nun eine Verbindung zu Google herzustellen, legen Sie zun&auml;chst eine neue Access-Datenbank an. Klicken Sie anschlie&szlig;end auf Module und danach auf Neu, um ein neues Modul anzulegen. Dieser Schritt ist erforderlich, da die Funktionen des Web-Service-Toolkits nur vom VBA-Editor aus zur Verf&uuml;gung stehen.<\/p>\n<p>Nachdem Sie nun den VBA-Editor auf dem Bildschirm haben, w&auml;hlen Sie den Men&uuml;punkt Extras\/Webdienstverweise aus. Dieser Men&uuml;punkt startet das Toolkit (siehe Bild 2).<\/p>\n<p>Auf der linken Seite des Startfensters haben Sie die M&ouml;glichkeit, nach Web-Services zu suchen. Hierbei kommen spezielle Suchmaschinen zum Einsatz. Wenn Sie beispielsweise unter Schl&uuml;sselw&ouml;rter den Text weather eingeben und anschlie&szlig;end auf Suchen klicken, erscheint einige Zeit sp&auml;ter eine Liste aller Web-Services zum Thema Wetter (siehe Bild 3). Voraussetzung f&uuml;r die erfolgreiche Suche ist nat&uuml;rlich, dass Sie mit dem Internet verbunden sind.<\/p>\n<p>Anhand der Liste k&ouml;nnen Sie bereits die Struktur der einzelnen Dienste erkennen. Der Dienst WeatherRetriever unterst&uuml;tzt beispielsweise zwei Methoden namens GetTemperature und GetWeather. Um den Web-Service auszuprobieren, markieren Sie diesen in der Liste und klicken auf Testen.<\/p>\n<p>Das Toolkit &ouml;ffnet nun den Internet-Explorer und ruft eine spezielle Seite auf, die der Anbieter zum Test des Web-Services zur Verf&uuml;gung stellt. Auf dieser Seite werden auch die beiden Methoden GetTemperature und GetWeather aufgef&uuml;hrt (siehe Bild 4).<\/p>\n<h3>Hinweis<\/h3>\n<p>Dieser Web-Service wurde mit Hilfe der Microsoft .NET-Technologie entwickelt. Wenn Sie einen mit einem anderen Werkzeug entwickelten Web-Service aufrufen, hat die Testseite einen anderen Aufbau. <\/p>\n<p><IMG height=\"358\" src=\"..\/fileadmin\/_temp_\/{FC35C1A8-83BF-4351-963F-D884C6A7FA5B}\/pic004.png\" width=\"430\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Die Hauptseite zum Test eines Web-Service<\/span><\/b><\/p>\n<p><IMG height=\"159\" src=\"..\/fileadmin\/_temp_\/{FC35C1A8-83BF-4351-963F-D884C6A7FA5B}\/pic005.png\" width=\"430\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Auswahl des Ortes zur Ermittlung der Temperatur<\/span><\/b><\/p>\n<p><IMG height=\"144\" src=\"..\/fileadmin\/_temp_\/{FC35C1A8-83BF-4351-963F-D884C6A7FA5B}\/pic006.png\" width=\"314\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Das Ergebnis der Temperatur-Abfrage<\/span><\/b><\/p>\n<p><IMG height=\"185\" src=\"..\/fileadmin\/_temp_\/{FC35C1A8-83BF-4351-963F-D884C6A7FA5B}\/pic007.png\" width=\"314\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Die URL des Google Web-Service<\/span><\/b><\/p>\n<p>Klicken Sie auf der Testseite auf GetTemperature. Sie gelangen hierdurch auf eine zweite Seite, in der Sie den US-ZIP-Code des Ortes eingeben k&ouml;nnen, von dem Sie die aktuelle Temperatur wissen m&ouml;chten. Geben Sie hier 20000 ein und best&auml;tigen Sie mit Invoke (siehe Bild 5).<\/p>\n<p>Es erscheint eine weitere Web-Seite, die das Ergebnis in Form einer XML-Datei anzeigt (siehe Bild 6).<\/p>\n<p>Das Ergebnis wird in Fahrenheit ausgegeben.<\/p>\n<p>Nachdem Sie nun den ersten Test mit einem Web-Service durchgef&uuml;hrt haben, soll nun eine Verbindung zu Google hergestellt werden. Zu diesem Zweck klicken Sie in dem Startbildschirm des Web-Service-Toolkits auf Webdienst-URL und geben folgende URL ein (siehe Bild 7). Beachten Sie dabei Gro&szlig;- und Kleinschreibung:<\/p>\n<pre>http:\/\/api.google.com\/GoogleSearch.wsdl<\/pre>\n<p>Dieser Link zeigt auf eine WSDL-Datei (Web Service Definition Language), die den Aufbau und die Struktur des Web-Services beschreibt. Hier ist beispielsweise hinterlegt, welche Parameter zur Suche in Google erforderlich sind und wie das Suchergebnis strukturiert ist.<\/p>\n<p><!--30percent--><\/p>\n<p>Klicken Sie nach der Eingabe auf Suchen und warten Sie, bis der Web-Service in der rechten oberen Liste erscheint. Hier kreuzen Sie den Web-Service an und klicken anschlie&szlig;end auf Hinzuf&uuml;gen (siehe Bild 8).<\/p>\n<p>Access liest nun die WSDL-Datei ein und erstellt daraus automatisch eine Reihe von Klassen-modulen in Ihrer Datenbank, welche die Kommunikation mit dem Web-Service &uuml;bernehmen. Diese Klassen werden auch als Proxies bezeichnet. Sie erzeugen unter Access das Objektmodell, das dem des Web-Service von Google entspricht und erm&ouml;glichen so eine einfache Nutzung von Access aus.<\/p>\n<p><IMG height=\"270\" src=\"..\/fileadmin\/_temp_\/{FC35C1A8-83BF-4351-963F-D884C6A7FA5B}\/pic008.png\" width=\"314\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Auswahl des Google Web-Service<\/span><\/b><\/p>\n<h3>Hinweis<\/h3>\n<p>Nach der Anlage sollten Sie alle Proxy-Klassen speichern. &uuml;bernehmen Sie hierbei die von dem Web-Service-Toolkit vorgegebenen Namen. <\/p>\n<p>Um nun sicherzustellen, dass der Web-Service korrekt aufgerufen werden kann, legen Sie in dem neuen Modul die folgende Testprozedur an:<\/p>\n<pre>Sub Test()\r\n    Const c_Key = \"GOOGLEKEY\"\r\n    Dim GoogleService As New _        clsws_GoogleSearchService\r\n    GoogleService.wsm_doGoogleSearch _        c_Key, \"Access\", 1, 10, False, _        \"\", True, \"\", \"\", \"\"\r\nEnd Sub<\/pre>\n<p>Beachten Sie hierbei, dass Sie anstelle von GOOGLEKEY den Schl&uuml;ssel angeben, den Sie von Google erhalten haben. Danach starten Sie die Prozedur, indem Sie beispielsweise im Direktfenster den Ausdruck Test eingeben.<\/p>\n<p>Direkt nach dem Start legt die Prozedur eine neue Instanz des Objekts clsws_GoogleSearchService an. Hierbei handelt es sich um das Haupt-Objekt des Web-Services, das vom Web-Service-Toolkit automatisch angelegt wurde. Anschlie&szlig;end erfolgt der Start des Suchvorgangs. In diesem Beispiel wird nach dem Stichwort Access gesucht. Die Bedeutungen der einzelnen Parameter entnehmen Sie der Tabelle 1. Eine vollst&auml;ndige Beschreibung der Parameter finden Sie in der Referenz des Google SDKs, das Sie ebenfalls auf der Google-Seite herunterladen k&ouml;nnen.<\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Parameter<\/b><\/p>\n<\/td>\n<td>\n<p><b>Funktion<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Key<\/p>\n<\/td>\n<td>\n<p>Ihr Schl&uuml;ssel<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Q<\/p>\n<\/td>\n<td>\n<p>Der Suchbegriff. Hierbei k&ouml;nnen Sie die von Google her bekannten Suchausdr&uuml;cke mit AND, OR, &#8222;+&#8220; und &#8222;-&#8220; verwenden.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Start<\/p>\n<\/td>\n<td>\n<p>Index des ersten Ergebnisses<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>maxResults<\/p>\n<\/td>\n<td>\n<p>Maximale Anzahl der Ergebnisse. Diese ist auf 10 begrenzt. Indem der Service jedoch mehrmals hintereinander mit anderen Start-Indizes aufgerufen wird, k&ouml;nnen jedoch bis maximal 1000 Suchergebnisse pro Tag abgerufen werden.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Filter<\/p>\n<\/td>\n<td>\n<p>Er bestimmt, ob &auml;hnliche Seiten des gleichen Hosts ausgeblendet werden sollen.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Restrict<\/p>\n<\/td>\n<td>\n<p>Hiermit kann das Suchergebnis beispielsweise auf bestimmte L&auml;nder eingeschr&auml;nkt werden.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>safeSearch<\/p>\n<\/td>\n<td>\n<p>Filtert Inhalte f&uuml;r Erwachsene aus dem Suchergebnis.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Lr<\/p>\n<\/td>\n<td>\n<p>Limitiert das Suchergebnis auf eine bestimmte Sprache.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Ie<\/p>\n<\/td>\n<td>\n<p>Dieser Parameter ist f&uuml;r sp&auml;tere Zwecke reserviert. Er hat momentan noch keine Funktion.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>oe<\/p>\n<\/td>\n<td>\n<p>Dieser Parameter ist ebenfalls reserviert.<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 1: Suchparameter<\/b><\/p>\n<p>Tritt w&auml;hrend der Abarbeitung der Prozedur kein Fehler auf, war der Aufruf des Web-Service erfolgreich.<\/p>\n<p>Zur Anzeige des Suchergebnisses bietet es sich nat&uuml;rlich an, dieses vorher in eine Access-Tabelle einzulesen und dann innerhalb eines Formulars anzuzeigen. Die Beispieldatenbank zu diesem Artikel enth&auml;lt zu diesem Zweck zwei Tabellen.<\/p>\n<p><b>Die Tabelle tblQueries<\/b><\/p>\n<p>Die Tabelle tblQueries speichert komplette Suchanfragen. Die Tabelle enth&auml;lt daf&uuml;r eine QueryID sowie den gew&uuml;nschten Suchausdruck. Zus&auml;tzlich wird die maximale Anzahl der Suchergebnisse gespeichert. Es k&ouml;nnen also mehrere Suchanfragen vorbereitend in der Tabelle hinterlegt werden, die dann beispielsweise in der Mittagspause als Batch abgearbeitet werden.<\/p>\n<p>Nach Abschluss einer einzelnen Suchanfrage werden pro Datensatz das Ausf&uuml;hrungsdatum, die Anzahl der gefundenen Sucheintr&auml;ge sowie die Anzahl der verf&uuml;gbaren Sucheintr&auml;ge erg&auml;nzt. Letzteres ist beispielsweise bei der Suche nach Access sinnvoll, bei der Google ca. 58.400.000 Web-Seiten findet, aber von Access eventuell nur die ersten 100 Ergebnisse abgerufen wurden.<\/p>\n<p>Eine vollst&auml;ndige Beschreibung der Felder finden Sie in Tabelle 2.<\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Feld<\/b><\/p>\n<\/td>\n<td>\n<p><b>Beschreibung<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>QueryID<\/p>\n<\/td>\n<td>\n<p>Prim&auml;rschl&uuml;ssel<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>QueryString<\/p>\n<\/td>\n<td>\n<p>Suchtext<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>ExecutedOn<\/p>\n<\/td>\n<td>\n<p>Zeitpunkt der Suche<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>MaxResults<\/p>\n<\/td>\n<td>\n<p>maximal gew&uuml;nschte Anzahl der Suchergebnisse<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Found<\/p>\n<\/td>\n<td>\n<p>Anzahl der tats&auml;chlich zur&uuml;ckgelieferten Suchergebnisse<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Stimated<\/p>\n<\/td>\n<td>\n<p>Von Google gesch&auml;tzte Anzahl aller Seiten mit dem angegebenen Suchwort<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 2: Aufbau der Tabelle tblQueries<\/b><\/p>\n<p><b>Die Tabelle tblQueryResults<\/b><\/p>\n<p>Die Tabelle tblQueryResults nimmt die einzelnen Suchergebnisse auf. Pro Suchergebnis werden hierbei ein Titel, eine Zusammenfassung sowie eine URL gespeichert.<\/p>\n<p>&uuml;ber das Feld QueryID steht diese Tabelle in einer 1:n-Beziehung mit der Tabelle tblQueries, sodass pro Suchanfrage mehrere Ergebnisse gespeichert werden k&ouml;nnen.<\/p>\n<p>Bild 9 zeigt die beiden Tabellen im Beziehungen-Fenster. Den Aufbau der Tabelle entnehmen Sie Tabelle 3.<\/p>\n<p><IMG height=\"188\" src=\"..\/fileadmin\/_temp_\/{FC35C1A8-83BF-4351-963F-D884C6A7FA5B}\/pic009.png\" width=\"314\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9:  Das Datenmodell der Beispieldatenbank<\/span><\/b><\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Feld<\/b><\/p>\n<\/td>\n<td>\n<p><b>Beschreibung<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>QueryResultID<\/p>\n<\/td>\n<td>\n<p>Prim&auml;rschl&uuml;ssel<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>QueryID<\/p>\n<\/td>\n<td>\n<p>Fremdschl&uuml;ssel auf die Tabelle tblQueries<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Title<\/p>\n<\/td>\n<td>\n<p>Titel der gefundenen Seite<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Summary<\/p>\n<\/td>\n<td>\n<p>Zusammenfassung der Teststelle, an der der Suchbegriff aufgetaucht ist<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>URL<\/p>\n<\/td>\n<td>\n<p>URL der gefundenen Seite<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 3: Aufbau der Tabelle tblQueries<\/b><\/p>\n<p>Das Einlesen des Suchergebnisses in die Tabellen wird von dem Klassenmodul clsQuery bewerkstelligt. Diese Klasse enth&auml;lt die Methode PerformAllOpenQueries (s. Quellcode 1).<\/p>\n<pre>Public Sub PerformAllOpenQueries()\r\n    Dim QueryData As New ADODB.Recordset\r\n    With QueryData\r\n        Set .ActiveConnection = _            CurrentProject.Connection\r\n        .LockType = adLockOptimistic\r\n        .CursorLocation = adUseClient\r\n        .CursorType = adOpenDynamic\r\n        .Source = \"SELECT * FROM tblQueries \" _             & \"WHERE ExecutedOn IS NULL\"\r\n        .Open\r\n        While Not .EOF\r\n            Me.PerformQuery .Fields(\"QueryID\")\r\n            .MoveNext\r\n        Wend\r\n    End With\r\nEnd Sub<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<pre>Public Sub PerformQuery(QueryID As Long)\r\n    Dim QueryData As New ADODB.Recordset\r\n    With QueryData\r\n        Set .ActiveConnection = _            CurrentProject.Connection\r\n        .LockType = adLockOptimistic\r\n        .CursorLocation = adUseClient\r\n        .CursorType = adOpenDynamic\r\n        .Source = \"SELECT * FROM tblQueries \" _             & \"WHERE QueryID=\" & QueryID\r\n        .Open\r\n    End With\r\n    Dim ResultData As New ADODB.Recordset\r\n    With ResultData\r\n        Set .ActiveConnection = _            CurrentProject.Connection\r\n        .LockType = adLockOptimistic\r\n        .CursorLocation = adUseClient\r\n        .CursorType = adOpenDynamic\r\n        .MaxRecords = 1\r\n        .Source = \"SELECT * FROM tblQueryResults \" _             & \"WHERE False\"\r\n        .Open\r\n    End With<\/pre>\n<p><b>Quellcode 2 (erster Teil)<\/b><\/p>\n<p><b>Durchf&uuml;hren einer einzelnen Suche<\/b><\/p>\n<p>Die Methode macht nichts anderes, als alle noch nicht durchgef&uuml;hrten Suchvorg&auml;nge abzufragen und diese zu starten.<\/p>\n<p>Der Start der Suche erfolgt durch Aufruf der Methode PerformQuery, wobei hierbei die ID des Suchvorgangs &uuml;bergeben werden muss. Den Aufbau der Methode PerformQuery finden Sie in Quellcode 2.<\/p>\n<p>Zun&auml;chst einmal &ouml;ffnet die Prozedur die betreffende Suchanfrage aus der Tabelle tblQueries , um auf die Suchparameter &#8211; also z. B. den Suchausdruck &#8211; zugreifen zu k&ouml;nnen. Hinterlegt werden die Daten in dem Recordset QueryData.<\/p>\n<p>Danach wird auf der Basis der Tabelle tblQueryResults ein leeres Recordset namens ResultData ge&ouml;ffnet. Hier wird sp&auml;ter das Suchergebnis abgelegt.<\/p>\n<p>Nach der Definition der beiden Recordsets ist eine Schleife positioniert, die den Web-Service unter Umst&auml;nden pro Suchanfrage mehrmals ausf&uuml;hrt.<\/p>\n<p>Dies ist erforderlich, da Google pro Anfrage maximal 10 Suchergebnisse zur&uuml;ckliefert. Wenn Sie dagegen beispielsweise 100 Eintr&auml;ge als Ergebnis zur&uuml;ckgeliefert haben m&ouml;chten, m&uuml;ssen Sie den Service zehnmal starten und bei jedem Aufruf den Startindex um 10 erh&ouml;hen. Der erste Start w&uuml;rde also mit dem Startindex 0 erfolgen und die Ergebnisse 0 bis 9 zur&uuml;ckliefern. Der zweite Start erfolgt dann mit dem Startindex 10 und liefert die Ergebnisse 10 bis 19 zur&uuml;ck. Auf diese Weise k&ouml;nnen Sie beliebig gro&szlig;e Ergebnismengen abrufen, solange Sie sich an die Beschr&auml;nkung von 1000 Abrufen pro Tag halten.<\/p>\n<pre>    Dim Index As Long\r\n    Dim FoundCount As Long\r\n    Dim GoogleService As New clsws_GoogleSearchService\r\n    Dim Result As struct_GoogleSearchResult\r\n    Dim ResultElement As struct_ResultElement\r\n    Dim ResultIndex As Long\r\n    For Index = 0 To QueryData.Fields(\"MaxResults\") \\ 10 - 1\r\n        RaiseEvent OnStatusChange(\"Suche nach ''\" & QueryData.Fields(\"QueryString\") _            & \"'' (\" & CStr(FoundCount) & \" von \" & QueryData.Fields(\"MaxResults\") _            & \")\")\r\n        Set Result = GoogleService.wsm_doGoogleSearch(c_Key, _            QueryData.Fields(\"QueryString\"), _\r\n            Index * 10, 10, False, \"\", True, \"\", \"\", \"\")\r\n        ResultIndex = 0\r\n        For ResultIndex = 0 To Result.endIndex - Result.StartIndex\r\n            Set ResultElement = Result.resultElements(ResultIndex)\r\n            With ResultElement\r\n                ResultData.AddNew\r\n                    ResultData.Fields(\"QueryID\") = QueryID\r\n                    ResultData.Fields(\"Title\") = StripHTML(.title)\r\n                    ResultData.Fields(\"Summary\") = StripHTML(.summary)\r\n                    ResultData.Fields(\"URL\") = .URL\r\n                ResultData.Update\r\n                FoundCount = FoundCount + 1\r\n            End With\r\n        Next\r\n        If Result.endIndex - Result.StartIndex &lt; 9 Then Exit For\r\n    Next Index\r\n    QueryData.Fields(\"ExecutedOn\") = Now\r\n    QueryData.Fields(\"Found\") = FoundCount\r\n    QueryData.Fields(\"Estimated\") = Result.estimatedTotalResultsCount\r\n    QueryData.Update\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2 (Fortsetzung)<\/b><\/p>\n<p>Innerhalb der Schleife erfolgt dann der eigentliche Suchaufruf mit der bereits vorgestellten Methode wsm_doGoogleSearch. Das Ergebnis wird in die Variante Result eingelesen, die mit dem Datentyp struct_GoogleSearchResult deklariert ist. Diese wurde ebenfalls in Form einer Klasse vom Web-Service-Toolkit erstellt.<\/p>\n<p><IMG height=\"328\" src=\"..\/fileadmin\/_temp_\/{FC35C1A8-83BF-4351-963F-D884C6A7FA5B}\/pic010.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 10:  Das Suchergebnis im Formular<\/span><\/b><\/p>\n<p>Die wichtigste Eigenschaft dieser Klasse lautet resultElements. In diesem Variant-Array sind die einzelnen Suchergebnisse in Form von Objekten des Typs struct_ResultElement hinterlegt.<\/p>\n<p>Auch diese Klasse wurde vom Web-Service-Toolkit erzeugt. Die Ergebnisse dieses Arrays werden wieder mit Hilfe einer Schleife ausgelesen und in die entsprechenden Felder der Tabelle geschrieben.<\/p>\n<pre>Private Function StripHTML(Text As _    String) As String\r\n    Dim res As String\r\n    res = Text\r\n    res = Replace(res, \"&lt;\/b&gt;\", \"\")\r\n    res = Replace(res, \"&lt;b&gt;\", \"\")\r\n    res = Replace(res, \"&lt;b&gt;...&lt;\/b&gt;\", \"\")\r\n    StripHTML = Trim(res)\r\nEnd Function<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<p>Da das Suchergebnis prim&auml;r zur Anzeige innerhalb eines Web-Browsers vorgesehen ist, enth&auml;lt der Text teilweise HTML-Formatierungs-Tags. Das Tag &lt;b&gt; stellt einen Text beispielsweise fett dar. Diese Tags werden von der Funktion StripHTML entfernt (s. Quellcode 3).<\/p>\n<p>Nach Abschluss der Suche werden noch die fehlenden Angaben der Tabellen tblQueries erg&auml;nzt.<\/p>\n<h3>Hinweis<\/h3>\n<p>Im Kopf des Moduls wird die Konstante c_Key definiert, die den von Google gelieferten Key enth&auml;lt. Vor der Ausf&uuml;hrung der Prozedur m&uuml;ssen Sie hier Ihren Key eintragen. <\/p>\n<p><b>Statusmeldungen<\/b><\/p>\n<p>Da die Suche unter Umst&auml;nden l&auml;ngere Zeit in Anspruch nehmen kann, wird jeder Aufruf des Web-Service mit einem Status-Ereignis an die aufrufende Stelle gemeldet. Das Ereignis ist im Kopf der Klasse folgenderma&szlig;en deklariert:<\/p>\n<pre>Public Event OnStatusChange(Text _    As String)<\/pre>\n<p>Bei jedem Web-Service-Aufruf wird der Status mit dem Suchtext und dem aktuellen Suchindex versehen protokolliert.<\/p>\n<p>Die Steuerung der Klasse clsQuery erfolgt von dem Formular frmQueries aus (siehe Bild 10), das auf der Tabelle tblQueries basiert. Die Suchergebnisse zu jeder Suchanfrage werden innerhalb eines Unterformulars angezeigt.<\/p>\n<p>Die Abarbeitung aller noch offenen Suchanfragen wird mit Hilfe einer Schaltfl&auml;che gestartet, die den Namen btnStartFind tr&auml;gt.<\/p>\n<p>Diese Schaltfl&auml;che ist mit der folgenden Ereignisprozedur verkn&uuml;pft:<\/p>\n<pre>Private Sub btnStartFind_Click()\r\n    Set m_Query = New clsQuery\r\n    m_Query.PerformAllOpenQueries\r\n    Me.Caption = \"Fertig!\"\r\n    Me.Requery\r\nEnd Sub<\/pre>\n<p>Diese Ereignisprozedur erzeugt eine neue Instanz der Klasse clsQuery und ruft anschlie&szlig;end die Methode PerformAllOpenQueries auf. Nach Abschluss der Arbeiten schreibt die Prozedur den Text Fertig! in den Fenstertitel und aktualisiert die Daten des Formulars.<\/p>\n<p>Die Deklaration der Variablen m_Query erfolgt im Kopf des Formulars unter Zuhilfenahme des WithEvents-Attributs:<\/p>\n<pre>Private WithEvents m_Query As clsQuery<\/pre>\n<p>Hierdurch kann das Formular auf das Status-Ereignis der Klasse reagieren und den Status-Text in der Titelleiste des Feldes anzeigen:<\/p>\n<pre>Private Sub m_Query_OnStatusChange(Text _    As String)\r\n    Me.Caption = Text\r\n    DoEvents\r\nEnd Sub<\/pre>\n<p>Sobald Sie nun die Suche starten, k&ouml;nnen Sie &uuml;ber die Texte der Titelleiste den aktuellen Fortschritt verfolgen.<\/p>\n<p>Das hier vorgestellte Beispiel stellt nur die grundlegenden Funktionen zur Verwaltung des Suchergebnisses zur Verf&uuml;gung. Denkbar ist beispielsweise, die Datenbank zu einem Recherche-System mit folgenden Funktionen auszubauen:<\/p>\n<li>Pr&uuml;fung der vorhandenen URLs auf Duplikate<\/li>\n<li>Direktes &ouml;ffnen der URL aus der Access-Anwendung heraus<\/li>\n<li>Suchen innerhalb des Suchergebnisses<\/li>\n<li>Bewerten und Kategorisieren der Suchergebnisse<\/li>\n<li>Aufbereiten des Suchergebnisses als Report<\/li>\n<p>Denkbar w&auml;re auch die Entwicklung eines Tools, welches die Web-Seiten der eigenen Firma regelm&auml;&szlig;ig auf die Platzierung in Google hin pr&uuml;ft und beim Abrutschen auf einen der niedrigeren R&auml;nge eine Warnung ausgibt.<\/p>\n<p>Anhand des Beispiels mit Google wird deutlich, welchen Stellenwert Web-Services in Zukunft einnehmen werden. Viele Firmen entwickeln momentan Dienste, die kostenpflichtig &uuml;ber das Internet zur Verf&uuml;gung gestellt werden. So wird es wohl nicht lange dauern, bis die ersten Firmen z. B. das Suchen in Telefonb&uuml;chern oder das Pr&uuml;fen von Adressen &uuml;ber das Internet anbieten. Der Kauf einer Telefonbuch-CD, deren Datenbestand schnell an Aktualit&auml;t verliert, wird damit &uuml;berfl&uuml;ssig.<\/p>\n<p>Dank des Web-Service-Toolkits ist die Nutzung solcher Dienste nun auch mit Access m&ouml;glich. Ein kleiner Wermutstropfen bleibt jedoch: Mit Access k&ouml;nnen Sie zwar Web-Services nutzen, jedoch keine Web-Services anbieten. Dies bleibt leider auch mittelfristig Entwicklungsumgebungen wie .NET vorbehalten.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Google00.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/5768907A-1F9C-40E6-A6A0-E247FD9620BA\/aiu_85.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Kommunikation zwischen Anwendungen spielt bei modernen Datenbanken eine wesentliche Rolle. H&auml;ufig ist es beispielsweise notwendig, dass eine Anwendung auf eine Datenbank zugreifen soll, hierbei jedoch keinen direkten Zugriff auf die Tabellen haben darf. Zudem kann der Fall eintreten, dass die Datenbank nicht auf dem lokalen PC oder im lokalen Netzwerk, sondern irgendwo im Internet untergebracht ist. Um hier eine Kommunikation zu erm&ouml;glichen, bietet sich der Einsatz von Web-Services an. Dieser Artikel zeigt Ihnen, wie Sie mit Access auf den Web-Service der Suchmaschine &#8222;Google&#8220; zugreifen und die abgefragten Suchergebnisse in einer Datenbank speichern.<\/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":[662002,66062002,44000026,44000030],"tags":[],"class_list":["post-55000085","post","type-post","status-publish","format-standard","hentry","category-662002","category-66062002","category-Interaktiv","category-Internet"],"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>Google per Web-Service 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\/Google_per_WebService_abfragen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Google per Web-Service abfragen\" \/>\n<meta property=\"og:description\" content=\"Die Kommunikation zwischen Anwendungen spielt bei modernen Datenbanken eine wesentliche Rolle. H&auml;ufig ist es beispielsweise notwendig, dass eine Anwendung auf eine Datenbank zugreifen soll, hierbei jedoch keinen direkten Zugriff auf die Tabellen haben darf. Zudem kann der Fall eintreten, dass die Datenbank nicht auf dem lokalen PC oder im lokalen Netzwerk, sondern irgendwo im Internet untergebracht ist. Um hier eine Kommunikation zu erm&ouml;glichen, bietet sich der Einsatz von Web-Services an. Dieser Artikel zeigt Ihnen, wie Sie mit Access auf den Web-Service der Suchmaschine &quot;Google&quot; zugreifen und die abgefragten Suchergebnisse in einer Datenbank speichern.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-10T20:17:57+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg06.met.vgwort.de\/na\/c109640f05d24e3e82b3cba63710339d\" \/>\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\\\/Google_per_WebService_abfragen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Google_per_WebService_abfragen\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Google per Web-Service abfragen\",\"datePublished\":\"2021-02-10T20:17:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Google_per_WebService_abfragen\\\/\"},\"wordCount\":2814,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Google_per_WebService_abfragen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/c109640f05d24e3e82b3cba63710339d\",\"articleSection\":[\"2002\",\"6\\\/2002\",\"Interaktiv\",\"Internet\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Google_per_WebService_abfragen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Google_per_WebService_abfragen\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Google_per_WebService_abfragen\\\/\",\"name\":\"Google per Web-Service abfragen - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Google_per_WebService_abfragen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Google_per_WebService_abfragen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/c109640f05d24e3e82b3cba63710339d\",\"datePublished\":\"2021-02-10T20:17:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Google_per_WebService_abfragen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Google_per_WebService_abfragen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Google_per_WebService_abfragen\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/c109640f05d24e3e82b3cba63710339d\",\"contentUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/c109640f05d24e3e82b3cba63710339d\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Google_per_WebService_abfragen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Google per Web-Service 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":"Google per Web-Service 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\/Google_per_WebService_abfragen\/","og_locale":"de_DE","og_type":"article","og_title":"Google per Web-Service abfragen","og_description":"Die Kommunikation zwischen Anwendungen spielt bei modernen Datenbanken eine wesentliche Rolle. H&auml;ufig ist es beispielsweise notwendig, dass eine Anwendung auf eine Datenbank zugreifen soll, hierbei jedoch keinen direkten Zugriff auf die Tabellen haben darf. Zudem kann der Fall eintreten, dass die Datenbank nicht auf dem lokalen PC oder im lokalen Netzwerk, sondern irgendwo im Internet untergebracht ist. Um hier eine Kommunikation zu erm&ouml;glichen, bietet sich der Einsatz von Web-Services an. Dieser Artikel zeigt Ihnen, wie Sie mit Access auf den Web-Service der Suchmaschine \"Google\" zugreifen und die abgefragten Suchergebnisse in einer Datenbank speichern.","og_url":"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-02-10T20:17:57+00:00","og_image":[{"url":"http:\/\/vg06.met.vgwort.de\/na\/c109640f05d24e3e82b3cba63710339d","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\/Google_per_WebService_abfragen\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Google per Web-Service abfragen","datePublished":"2021-02-10T20:17:57+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/"},"wordCount":2814,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/c109640f05d24e3e82b3cba63710339d","articleSection":["2002","6\/2002","Interaktiv","Internet"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/","url":"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/","name":"Google per Web-Service abfragen - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/c109640f05d24e3e82b3cba63710339d","datePublished":"2021-02-10T20:17:57+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/#primaryimage","url":"http:\/\/vg06.met.vgwort.de\/na\/c109640f05d24e3e82b3cba63710339d","contentUrl":"http:\/\/vg06.met.vgwort.de\/na\/c109640f05d24e3e82b3cba63710339d"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Google_per_WebService_abfragen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Google per Web-Service 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\/55000085","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=55000085"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000085\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000085"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000085"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000085"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}