Warum ĂŒberhaupt Bing?

Weil Du Informationen brauchst.
Aktuelle, webbasierte Inhalte – aus Deiner Datenbank heraus.
Und weil Bing Search API via REST einfach erreichbar ist.

Ich zeig Dir, wie Du Access + VBA nutzt, um gezielt Suchanfragen zu stellen.
Und wie Du die Ergebnisse analysierst, filterst, speicherst.

Was brauchst Du?

  • Microsoft Access (lokal)
  • Bing Search API Key (Microsoft Azure Cognitive Services)
  • Internetverbindung
  • Basis-Kenntnisse in REST + JSON

Bing Search API einrichten

  1. Azure-Konto unter portal.azure.com
  2. Ressource „Bing Search v7“ anlegen
  3. API-Key und Endpoint kopieren
    z. B. https://api.bing.microsoft.com/v7.0/search

Tabelle vorbereiten

TabelleZweck
tblSuchbegriffeListe von Stichwörtern
tblTrefferErgebnis-Links, Titel, Snippets

VBA: Anfrage an Bing Search

Function SucheMitBing(suchwort As String) As String
    Dim http As Object
    Dim url As String
    Dim apiKey As String

    apiKey = "DEIN_API_KEY"
    url = "https://api.bing.microsoft.com/v7.0/search?q=" & URLEncode(suchwort)

    Set http = CreateObject("MSXML2.ServerXMLHTTP")
    http.Open "GET", url, False
    http.setRequestHeader "Ocp-Apim-Subscription-Key", apiKey
    http.Send

    SucheMitBing = http.responseText
End Function

URLEncode-Hilfsfunktion

Function URLEncode(text As String) As String
    Dim scriptControl As Object
    Set scriptControl = CreateObject("ScriptControl")
    scriptControl.Language = "JScript"
    scriptControl.AddCode "function enc(x) { return encodeURIComponent(x); }"
    URLEncode = scriptControl.Run("enc", text)
End Function

Treffer extrahieren (Titel + URL + Snippet)

Function ParseBingJSON(json As String)
    Dim sc As Object
    Set sc = CreateObject("ScriptControl")
    sc.Language = "JScript"

    sc.AddCode "function parse(json) {" & _
        "var obj = JSON.parse(json);" & _
        "var res = ''; " & _
        "if(obj.webPages && obj.webPages.value){" & _
        "  for(var i=0; i<obj.webPages.value.length; i++){" & _
        "    var item = obj.webPages.value[i];" & _
        "    res += item.name + '|' + item.url + '|' + item.snippet + '\n';" & _
        "  }" & _
        "} return res; }"

    ParseBingJSON = sc.Run("parse", json)
End Function

Ergebnisse speichern

Sub SpeichereTreffer(json As String, suchbegriffID As Long)
    Dim daten As String
    Dim zeilen() As String
    Dim spalten() As String
    Dim i As Long

    daten = ParseBingJSON(json)
    zeilen = Split(daten, vbLf)

    For i = 0 To UBound(zeilen)
        If Trim(zeilen(i)) <> "" Then
            spalten = Split(zeilen(i), "|")
            If UBound(spalten) = 2 Then
                CurrentDb.Execute "INSERT INTO tblTreffer (SuchbegriffID, Titel, URL, Snippet) VALUES (" & _
                    suchbegriffID & ", '" & Replace(spalten(0), "'", "''") & "', '" & Replace(spalten(1), "'", "''") & "', '" & Replace(spalten(2), "'", "''") & "')"
            End If
        End If
    Next i
End Sub

Beispielaufruf

Sub StarteBingSuche()
    Dim suchbegriff As String
    Dim suchbegriffID As Long
    Dim json As String

    suchbegriff = "Industrie 4.0 Maschinenbau"
    suchbegriffID = 42 ' aus Deiner Tabelle

    json = SucheMitBing(suchbegriff)
    SpeichereTreffer json, suchbegriffID

    MsgBox "Suche abgeschlossen."
End Sub

Anwendungsbeispiele

  • Konkurrenz-Check zu Produkten
  • Reputationsanalyse (Snippets nach SchlĂŒsselwörtern filtern)
  • Automatischer Themeninput fĂŒr Marketing
  • Zugriff auf aktuelle Informationen ohne Browser

Was Du beachten musst

  • Du darfst nicht zu viele Anfragen pro Sekunde stellen (Rate Limit)
  • Snippets sind oft unsauber – Regular Expressions helfen
  • Logge alle Anfragen, falls Du spĂ€ter Referenzen brauchst
  • URLs ggf. auf „Tote Links“ prĂŒfen lassen (per HTTP HEAD)

„Bing weiß viel – Access schreibt’s auf.“

Wenn Du sowas brauchst – ich helf Dir beim Einbauen.
Pragmatisch. Norddeutsch. Zugriff statt Blabla.

Tags:

No responses yet

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert