Computer Hardware Forum - TweakPC

Computer Hardware Forum - TweakPC (https://www.tweakpc.de/forum/)
-   Programmiersprachen (https://www.tweakpc.de/forum/programmiersprachen/)
-   -   VBA - Sheet mit Datenbank vergleichen?! (https://www.tweakpc.de/forum/programmiersprachen/33610-vba-sheet-mit-datenbank-vergleichen.html)

predi 03.03.2006 11:10

VBA - Sheet mit Datenbank vergleichen?!
 
Hi,

also ich möchte gern die Einträge eines Excelsheets mit einer Datenbank-Tabelle vergleichen. Wenn die Einträge noch nicht vorhanden sind, sollen sie per Insert der Datenbank hinzu gefügt werden!


Die Einträge des Sheets sind so aufgebaut:
spalte1:
Nr.
spalte2:
Name:Bezeichnung


In der Datenbank sieht das ganze dann wiefolgt aus:
spalte1:
Nr.
spalte2:
Name
spalte3:
Bezeichnung


Ok,
das ganze soll in einem VBA-Modul laufen und mit einer MySQL-Datenbank laufen.



Danke schonmal!

BenniG. 04.03.2006 13:46

AW: VBA - Sheet mit Datenbank vergleichen?!
 
Wo genau brauchst du denn Hilfe?
Meine Vorgehensweise wäre:
Verweise (im VBA-Editor Extras->Verweise) auf Microsoft ActiveX Data Objects 2.8 Library und Microsoft ActiveX Data Objects Recordset 2.8 Library setzen, damit du per
[CODE]
Dim connect As New ADODB.Connection
connect.Open "DEIN_ODBC_NAME", "user", "password"
connect.Execute "denk dir ein schönes insert aus"
connect.Close
[/CODE]
Daten nach MySQL schreiben kannst..
Wie das mit ODBC-Treiber installieren und Verbindung zu deiner DB erstellen funktioniert weißt du, oder?

Dann musst du Dir noch was ausdenken wie du prüfst ob der Datensatz im MySQL vorhanden ist, dazu kannst du beispielsweise machen:
[CODE]
Dim recordset As New ADODB.recordset
recordset.Open "select 1 from xy where xy", connect
If recordset.EOF Then
connect.Execute "dein insert"
End If
[/CODE]

Den Wert einer Zellen kannst du mit Cells(Zeile,Spalte) abfragen..

Insgesamt könnte das in etwa dann so aussehen:
[CODE]
Dim connect As New ADODB.Connection
Dim rec As New ADODB.recordset
connect.Open "DEIN_ODBC_NAME", "user", "password"

spalte = 1 'Die Spalte wo deine eindeutigen Werte stehen A=1,B=2...
For zeile = 1 To 2
wert = Cells(zeile, spalte)
rec.Open "select 1 from TABELLE where WERT='" & wert & "'", connect
If rec.EOF Then
connect.Execute "insert into TABELLE values ('" & wert & "','" & cells(zeile,andere_spalte) ....
End If
Next
connect.Close

[/CODE]

Btw: was ist das in deiner Signatur?! Ascii-Sex?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 Uhr.

Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.