Warum Access + KI?
Weil Du Daten hast – und daraus automatisch Inhalte machen willst.
Ein Text pro Kunde. Ein Bild pro Produkt.
Du brauchst keine neue Plattform. Nur ein REST-Aufruf aus Access.
Ich zeig Dir, wie Du mit VBA Inhalte generierst:
Texte via ChatGPT, Bilder via DALL·E.
Voraussetzungen
- OpenAI API-Key
- Internetzugang aus Access
- Tabellen für Prompts, Antworten, Bild-URLs
Tabellenstruktur (Beispiel)
Tabelle | Zweck |
---|---|
tblPrompts | Eingaben für Text/Bild |
tblTexte | GPT-Antworten |
tblBilder | URLs zu generierten DALL·E-Bildern |
GPT: Texte erzeugen mit ChatGPT (GPT-4 oder 3.5)
Text-Request in VBA senden
Function GeneriereText(prompt As String) As String
Dim http As Object
Dim apiKey As String
Dim json As String
Dim response As String
apiKey = "DEIN_OPENAI_API_KEY"
json = "{" & _
"""model"":""gpt-4""," & _
"""messages"":[{""role"":""user"",""content"":""" & Replace(prompt, """", "\""") & """}]" & _
"}"
Set http = CreateObject("MSXML2.ServerXMLHTTP")
http.Open "POST", "https://api.openai.com/v1/chat/completions", False
http.setRequestHeader "Content-Type", "application/json"
http.setRequestHeader "Authorization", "Bearer " & apiKey
http.send json
response = http.responseText
GeneriereText = ExtrahiereText(response)
End Function
JSON-Antwort extrahieren
Function ExtrahiereText(json As String) As String
Dim sc As Object
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
sc.AddCode "function parse(j){return JSON.parse(j).choices[0].message.content;}"
ExtrahiereText = sc.Run("parse", json)
End Function
DALL·E: Bilder generieren per Prompt
Bild-Request senden
Function GeneriereBild(prompt As String) As String
Dim http As Object
Dim json As String
Dim apiKey As String
Dim response As String
apiKey = "DEIN_OPENAI_API_KEY"
json = "{" & _
"""prompt"":""" & Replace(prompt, """", "\""") & """," & _
"""n"":1," & _
"""size"":""1024x1024""" & _
"}"
Set http = CreateObject("MSXML2.ServerXMLHTTP")
http.Open "POST", "https://api.openai.com/v1/images/generations", False
http.setRequestHeader "Content-Type", "application/json"
http.setRequestHeader "Authorization", "Bearer " & apiKey
http.send json
response = http.responseText
GeneriereBild = ExtrahiereBildURL(response)
End Function
Bild-URL extrahieren
Function ExtrahiereBildURL(json As String) As String
Dim sc As Object
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
sc.AddCode "function getUrl(j){return JSON.parse(j).data[0].url;}"
ExtrahiereBildURL = sc.Run("getUrl", json)
End Function
Anwendung im Formular
Private Sub btnGenerieren_Click()
Dim prompt As String
Dim text As String
Dim bildURL As String
prompt = Me.txtPrompt
text = GeneriereText(prompt)
bildURL = GeneriereBild(prompt)
Me.txtErgebnis = text
Me.txtBildURL = bildURL
Call SpeichereErgebnisse(prompt, text, bildURL)
End Sub
Ergebnisse speichern
Sub SpeichereErgebnisse(prompt As String, text As String, bildURL As String)
CurrentDb.Execute "INSERT INTO tblTexte (Prompt, Antwort, Zeitstempel) VALUES ('" & _
Replace(prompt, "'", "''") & "','" & Replace(text, "'", "''") & "', Now())"
CurrentDb.Execute "INSERT INTO tblBilder (Prompt, BildURL, Zeitstempel) VALUES ('" & _
Replace(prompt, "'", "''") & "','" & bildURL & "', Now())"
End Sub
Was Du automatisieren kannst
- Produktbeschreibungen aus Artikelstammdaten
- Bilder für Social Media Posts
- Texte für Serienmails, Angebote, Stellenanzeigen
- FAQ-Antworten auf Kundenanfragen
Was Du beachten musst
- GPT und DALL·E kosten pro Aufruf → Quoten prüfen
- Prompts standardisieren → Tabellen verwenden
- Keine vertraulichen Daten senden
- Fehler abfangen (Timeouts, Rate-Limits etc.)
„Access kann schreiben und malen – wenn’s wer anders für ihn tut.“
Wenn Du KI aus Access heraus steuern willst – ich setz Dir das sauber auf.
Einfach. Robust. Ohne Cloud-Geblubber.
No responses yet