Autor Beitrag
Svenni9991
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Fr 05.04.13 10:12 
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)
Exceltabelle_Inventarisierung

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.

ausblenden 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
Einloggen, um Attachments anzusehen!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 05.04.13 12:59 
Hallo Svenni,

mit welche Technologie willst du denn die Excel-Daten auslesen (Office.Interop, OLEDB, CSV, ...)?
Hier mal ein paar Links dazu (zwar in C#, aber das kannst du ja auch ;-)):
C# Excel Tutorial
Office.Interop: Reading Excel Files in C#
Reading, Opening Excel File in C# Using Microsoft.Office.Interop.Excel Object
Svenni9991 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: 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
ausblenden C#-Quelltext
1:
2:
3:
private void ThisWorkbook_Startup(object sender, System.EventArgs e)
        {            
        }


und das

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: 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
ausblenden 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