Hallo VB-Gemeinde,
Vorab, ich bin dabei VB zu erlernen und daher Anfänger. Ich verwende Grundlagenliteratur und suche hilfreiche Forenbeiträge, hier und in anderen Foren, bevor ich mit Fragen daher komme.
Ich habe ein Berechnungsmodell, dass ich mit VB als Stand-Alone-Tool umsetzen möchte. Dabei gibt es unterschiedliche lokale Access (v2010-2013) Datenbanken als Datengrundlage. Diese werden durch bestimmte Parameter, Parameter sollen in Zukunft über eine Eingabemaske durch den User zur Verfügung gestellt werden, bearbeitet und in einer neuen Datenbank als Zwischenrechnungen angelegt werden.
In diesem Beispiel sollen es zwei Datenbanken sein db1 und db2 mit jeweils einer Tabelle db1table1 und db2table1:
db1table1:
db1table1_ID | Group | Amount
1 | A | 2
2 | A | 4
3 | B | 6
4 | B | 8
5 | C | 10
6 | C | 12
db2table1:
db2table1_ID | Group | Factor
1 | A | 2
2 | B | 3
3 | C | 4
Basierend auf diesen beiden Tabellen soll eine neue Tabelle erstellt werden - tempdbtable1 (Amount2 ist hierbei eine Multiplikation von Amount und Factor bei einem Abgleich der Variable Group:
db1table1_ID | Group | Amount1 | Amount2
1 | A | 2 | 4
2 | A | 4 | 8
3 | B | 6 | 18
4 | B | 8 | 24
5 | C | 10 | 40
6 | C | 12 | 48
Mit SQL Code an sich habe ich kein Problem. Jedoch komme ich an einigen Stellen des VB Codes nicht weiter, um überhaupt mal etwas mit SQL machen zu können. Mein bisheriger Code sieht wie folgt aus, dabei versuche ich die beiden lokalen Datenbanken (db1 & db2) anzubinden und eine neue Datenbank (tempdb) auf Knopfdruck zu erstellen:
Ich habe sehr bewusst den Ansatz über mehrere DBs gewählt und mich nicht nur auf eine DB mit allen Grundtabellen, sowie temporären und Ergebnistabellen eingeschränkt.
Meine Fragen lauten wie folgt:
Wie kann ich eine neue Tabelle, basierend auf db1table1 und db2table1 erstellen und in tempdb ablegen?
Muss ich in tempdb zuerst eine leere Tabelle erstellen mit allen erwünschten Variablen und ihren Eigenschaften oder kann ich eine bereits existierende Tabelle nehmen, wie etwa db1table1, diese bearbeiten und dann in tempdb ablegen, sodass auch die meisten definierten Variablen und Eigenschaften bereits vorhanden sind?
Gibt es grundsätzliche Probleme bei meinem derzeitigen Ansatz bezüglich dem Zweck, den ich verfolge?
Jegliche Lösungsansätze, Hinweise oder Verweise sind sehr willkommen. Danke.
Vorab, ich bin dabei VB zu erlernen und daher Anfänger. Ich verwende Grundlagenliteratur und suche hilfreiche Forenbeiträge, hier und in anderen Foren, bevor ich mit Fragen daher komme.
Ich habe ein Berechnungsmodell, dass ich mit VB als Stand-Alone-Tool umsetzen möchte. Dabei gibt es unterschiedliche lokale Access (v2010-2013) Datenbanken als Datengrundlage. Diese werden durch bestimmte Parameter, Parameter sollen in Zukunft über eine Eingabemaske durch den User zur Verfügung gestellt werden, bearbeitet und in einer neuen Datenbank als Zwischenrechnungen angelegt werden.
In diesem Beispiel sollen es zwei Datenbanken sein db1 und db2 mit jeweils einer Tabelle db1table1 und db2table1:
db1table1:
db1table1_ID | Group | Amount
1 | A | 2
2 | A | 4
3 | B | 6
4 | B | 8
5 | C | 10
6 | C | 12
db2table1:
db2table1_ID | Group | Factor
1 | A | 2
2 | B | 3
3 | C | 4
Basierend auf diesen beiden Tabellen soll eine neue Tabelle erstellt werden - tempdbtable1 (Amount2 ist hierbei eine Multiplikation von Amount und Factor bei einem Abgleich der Variable Group:
db1table1_ID | Group | Amount1 | Amount2
1 | A | 2 | 4
2 | A | 4 | 8
3 | B | 6 | 18
4 | B | 8 | 24
5 | C | 10 | 40
6 | C | 12 | 48
Mit SQL Code an sich habe ich kein Problem. Jedoch komme ich an einigen Stellen des VB Codes nicht weiter, um überhaupt mal etwas mit SQL machen zu können. Mein bisheriger Code sieht wie folgt aus, dabei versuche ich die beiden lokalen Datenbanken (db1 & db2) anzubinden und eine neue Datenbank (tempdb) auf Knopfdruck zu erstellen:
VB.NET-Quellcode
- Imports System.Data.OleDb
- Public Class Form1
- 'Connect DB1
- Public con1 As New OleDb.OleDbConnection
- Public cmd1 As New OleDb.OleDbCommand
- Public reader1 As OleDb.OleDbDataReader
- Public anzahl1 As IntegerPublic Sub Provider1()
- con1.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\VB\Project\Input\db1.accdb"
- cmd1.Connection = con1
- End Sub
- 'Connect DB2
- Public con2 As New OleDb.OleDbConnection
- Public cmd2 As New OleDb.OleDbCommand
- Public reader2 As OleDb.OleDbDataReader
- Public anzahl2 As IntegerPublic Sub Provider2()
- con2.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\VB\Project\Input\db2.accdb"
- cmd2.Connection = con2
- End Sub
- 'Create TempDB Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
- Dim catalog1 As New ADOX.Catalog()Dim table1 As New ADOX.Table()catalog1.Create("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\VB\Project\Temp\tempdb.accdb")
- End SubEnd Class
Ich habe sehr bewusst den Ansatz über mehrere DBs gewählt und mich nicht nur auf eine DB mit allen Grundtabellen, sowie temporären und Ergebnistabellen eingeschränkt.
Meine Fragen lauten wie folgt:
Wie kann ich eine neue Tabelle, basierend auf db1table1 und db2table1 erstellen und in tempdb ablegen?
Muss ich in tempdb zuerst eine leere Tabelle erstellen mit allen erwünschten Variablen und ihren Eigenschaften oder kann ich eine bereits existierende Tabelle nehmen, wie etwa db1table1, diese bearbeiten und dann in tempdb ablegen, sodass auch die meisten definierten Variablen und Eigenschaften bereits vorhanden sind?
Gibt es grundsätzliche Probleme bei meinem derzeitigen Ansatz bezüglich dem Zweck, den ich verfolge?
Jegliche Lösungsansätze, Hinweise oder Verweise sind sehr willkommen. Danke.