Warum das Ganze?
Weil Du Daten aus Deinem WordPress-Backend (MySQL) in Access analysieren willst.
Ohne Umwege. Ohne manuelles Exportieren.
Ziel: Daten regelmĂ€Ăig abrufen, verarbeiten und auswerten – direkt in Access.
Was Du brauchst
- WordPress mit MySQL-Datenbank (typisch: MariaDB)
- Zugriffsdaten zur Datenbank (Host, User, Passwort, DB-Name, Port)
- ODBC-Treiber fĂŒr MySQL (z. B. MySQL Connector/ODBC)
- Access, idealerweise 32-Bit (bei 64-Bit: KompatibilitĂ€t prĂŒfen)
ODBC-Datenquelle einrichten
- MySQL Connector installieren
- ODBC-Datenquelle ĂŒber
odbcad32.exe
einrichten (System-DSN empfohlen) - Verbindungsdaten eingeben:
Hostname: deine-domain.de oder IP-Adresse
Port: 3306
Benutzername: wp_reader
Passwort: âąâąâąâąâą
Datenbank: wordpress_db
- Testverbindung starten – ggf. Firewall prĂŒfen
Access mit ODBC verbinden
In Access:
Externe Daten â ODBC-Datenbank â VerknĂŒpfung zu Datenquelle erstellen
Tabelle auswĂ€hlen – z. B. wp_users
, wp_posts
, wp_postmeta
Optional: Nur Abfrage erstellen, z. B. fĂŒr gezielte Selektion.
Beispiel: Nur veröffentlichte BeitrÀge mit benutzerdefiniertem Feld laden
SELECT p.ID, p.post_title, p.post_date, m.meta_value AS ArtikelNr
FROM wp_posts AS p
LEFT JOIN wp_postmeta AS m ON p.ID = m.post_id
WHERE p.post_type = 'post'
AND p.post_status = 'publish'
AND m.meta_key = 'artikelnummer';
Kann als gespeicherte Abfrage in Access gespeichert werden.
Komplexe Auswertung in VBA
Public Sub LadeWordPressDaten()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
strSQL = "SELECT post_title, post_date FROM wp_posts " & _
"WHERE post_status = 'publish' AND post_type = 'post';"
Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
Do While Not rs.EOF
Debug.Print rs!post_title & " - " & rs!post_date
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub
Hinweise zur Performance
wp_postmeta
ist oft groĂ – nur gezielt abfragen- Indexe prĂŒfen – ggf. temporĂ€r eigene Views anlegen (z. B. in phpMyAdmin)
- Views können in Access verknĂŒpft werden wie Tabellen
Sicherheit
- Lesezugriff auf MySQL-Benutzer beschrÀnken
- SSL-Verbindung nutzen, wenn möglich
- Kein Root-User
- RegelmĂ€Ăige Backup-Strategie auch fĂŒr Access
Optional: Daten lokal zwischenspeichern
CurrentDb.Execute "DELETE FROM tbl_wp_posts_local"
CurrentDb.Execute "INSERT INTO tbl_wp_posts_local SELECT * FROM wp_posts WHERE post_status = 'publish'"
Damit hast Du eine lokale Kopie fĂŒr Offline-Auswertungen.
Du willst mehr als nur Tabelle sehen?
Dann meld Dich bei mir.
Ich helfe Dir bei der ODBC-Anbindung,
sorge fĂŒr saubere Abfragen
und automatisiere Deinen Datenzugriff mit VBA.
Keine Antworten