Entwickler-Ecke
Sonstiges (.NET) - Daten aus Exceltabelle in Datenbank eintragen
Svenni9991 - Fr 05.04.13 10:12
Titel: Daten aus Exceltabelle in Datenbank eintragen
Hallo Leute,
ich bräuchte dringend eure Hilfe. Komme bei einem Projekt einfach nicht weiter bzw weiß ich nicht weiter.
Es geht um eine Inventarisierung zu der ich eine Exceldatei mit mehreren Tabellenblättern erstellt habe (hier ein Beispiel)
Nun will ich diese Daten per VB.NET auslesen und in eine Datenbank (MS SQL Management Studio 2008) eintragen.
Die Datenbank besitzt 7 Tabellen (Arbeitsplatz, Abteilung, Drucker, PC, Monitor, Software, Sonstiges) in die jeweils die Daten vom jeweiligen Tabellenblatt der Exceldatei eingetragen werden sollen.
Mir würde es auch reichen wenn ich das immer nur pro Tabellenblatt machen würde, also für jedes Tabellenblatt den Code abändern, dann wär ich immer noch schneller als wenn ich alles manuell rüber kopiere, aber ich weiß einfach nicht wie ich anfangen soll bzw wie ich in VB.NET den Befehl gebe die Zellen auszulesen.
Ich habe mal einen provisorischen Pseudo-Code angelegt. Ich hoffe er ist verständlich.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| Sub Eintrag in DBTabelle "Arbeitsplatz"
dim zeile as integer dim spalte as integer dim text as string dim zahl as integer
'bei Spalte A1 (im obrigen Beispiel wäre es A2) soll begonnen werden start spalte = 'A' 'Die eingetragenen Daten sollen eingelesen werden read (zeile1)
'es soll so lange die Zeile eingelesen werden bis eine Zelle leer ist while active.cell is not = "" 'wenn die aktive Zelle mit Text gefüllt ist, soll der Text wie folgt abgespeichert werden: 'Max Mustermann' if activate.cell is not numeric then 'text' = ReadLine() else 'ist die aktive Zelle mit Zahlen gefüllt, sollen diese ohne ' ' gespeichert werden zahl = ReadLine() end if 'wenn eine Zelle in der Zeile leer ist soll mit der nächsten Zeile weiter gemacht werden for next spalte
'am ende bzw in der Schleife am besten, sollen dann abwechselnd die Daten bei Value eingetragen werden INSERT INTO Arbeitsplatz (ID_Arbpl,Benutzer) VALUE (zahl,'text',zahl,'text')
End Sub |
Jetzt habe ich meine Exceltabelle, meinen Pseudocode und weiß was mein Ziel ist aber ich finde den Weg dorthin nicht :(
Ich wäre euch sehr dankbar für die Hilfe.
Mit freundlichen Grüßen
Svenni9991
Svenni9991 - Fr 05.04.13 15:17
Hallo Th69,
ich würde die Daten mit Office.Interop auslesen. Eigentlich hatte ich vor das über die Makros in Excel zu machen und das ganze mit VBA zu programmieren, aber das bekomme ich irgendwie gar nicht hin.
Und jetzt habe ich eine Datei in Visual Studio auf, in der auch meine Exceltabelle mit den Daten hinterlegt ist, aber ich weiß gar nicht wofür das
C#-Quelltext
1: 2: 3:
| private void ThisWorkbook_Startup(object sender, System.EventArgs e) { } |
und das
C#-Quelltext
1: 2: 3:
| private void ThisWorkbook_Shutdown(object sender, System.EventArgs e) { } |
steht.
Hab damit bisher noch nicht gearbeitet, darum bin ich da recht ahnungslos.
Oder hat vielleicht jemand einen Tipp für ein (gutes) Tutorial für Dummies? :D
Würde mich freuen, denn ich bin die ganze Zeit am rumprobieren und es entmutigt doch sehr, wenn man im großen, weiten Internet nichts findet, das rumprobieren nicht hilft und man einfach nicht vorran kommt.
Mit freundlichen Grüßen
Svenni9991
Svenni9991 - Mo 08.04.13 12:21
Ich brauche nochmal Hilfe.
Mache das ganze jetzt in VBA als Makro in Excel.
Bisher habe ich etwas rumprobiert was das auslesen von Zellen angeht.
Allerdings will ich jetzt ein Verbindung zur Datenbank herstellen, nur ich weiß nicht wie.
In C# geht das ja mit
C#-Quelltext
1: 2: 3: 4:
| string strServer = "server", strUsername = "Name", strPassword = "passwort", strDatabase = "test"; |
usw.
Aber wie stelle ich in VBA die Verbindung her und wie sage ich das er gespeicherte Daten in eine bestimmte Tabelle schreiben soll?
Schon einmal Danke für die Hilfe.
Mit freundlichen Grüßen
Svenni9991
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!