Guten Abend,
ich bin Anfänger was Datenbanken programmieren angeht und hab folgendes Problem:
Ich will VBA ca. 20 Tabellen in ebenfalls ca. 20 TabPages darstellen.
Dazu hab ich nach einiger Zeit rausbekommen, wie das überhaupt geht, was ihr an meinem Code sehen werdet (Hab da verschiedene Methoden ausprobiert und am Ende lag es an einer Schreibweise einer Spalte )
Für die erste Tabelle klappt das auch wunderbar, nur bei der zweiten Tabelle kommt er mir mit der obrigen Fehlerbeschreibung. Das ganze wird in einem DataGrid dargstellt, weil ich dann auch noch Daten ändern/hinzufügen muss.
Aber die Datenverbindung ist da, wenn ich den DatenAdapter anspreche, findet er auch beide Tabellen, die ich bisher erstellt habe.
Nur was mache ich falsch, dass er beim Debuggen mir diesen Fehler ausspuckt?
Function OleDb(ByVal TabPage_String)
'
'OleDbInsertCommand1
'
Me.OleDbInsertCommand1.CommandText = "INSERT INTO `" & TabPage_String & _
"` (`Uhrzeit`, `Pkw`, `Lkw`, `Lastzug`, `Bus`, `Radfahrer`) VALUES (" & _
"?, ?, ?, ?, ?, ?, ?)"
Me.OleDbInsertCommand1.Connection = Me.OleDbConnection1
Me.OleDbInsertCommand1.Parameters.AddRange(New _
System.Data.OleDb.OleDbParameter() {New _
System.Data.OleDb.OleDbParameter("Uhrzeit", _
System.Data.OleDb.OleDbType.VarWChar, 0, "Uhrzeit"), New _
System.Data.OleDb.OleDbParameter("Pkw", _
System.Data.OleDb.OleDbType.VarWChar, 0, "Pkw"), New _
System.Data.OleDb.OleDbParameter("Lkw", _
System.Data.OleDb.OleDbType.VarWChar, 0, "Lkw"), New _
System.Data.OleDb.OleDbParameter("Lastzug", _
System.Data.OleDb.OleDbType.VarWChar, 0, "Lastzug"), New _
System.Data.OleDb.OleDbParameter("Bus", _
System.Data.OleDb.OleDbType.VarWChar, 0, "Bus"), New _
System.Data.OleDb.OleDbParameter("Radfahrer", _
System.Data.OleDb.OleDbType.VarWChar, 0, "Radfahrer")})
'
'OleDbCommand1
'
Me.OleDbCommand1.CommandText = "SELECT Uhrzeit, Pkw, Lkw, Lastzug," & _
"Bus, Radfahrer" & Global.Microsoft.VisualBasic.ChrW(13) & _
Global.Microsoft.VisualBasic.ChrW(10) & "FROM " & TabPage_String _
& _
"" & Global.Microsoft.VisualBasic.ChrW(13) & _
Global.Microsoft.VisualBasic.ChrW(10) & "ORDER BY ID"
Me.OleDbCommand1.Connection = Me.OleDbConnection1
'
'OleDbUpdateCommand1
'
Me.OleDbUpdateCommand1.CommandText = "OleDbUpdateCommand1.CommandText"
Me.OleDbUpdateCommand1.Connection = Me.OleDbConnection1
Me.OleDbUpdateCommand1.Parameters.AddRange(New _
System.Data.OleDb.OleDbParameter() {New _
System.Data.OleDb.OleDbParameter("Uhrzeit", _
System.Data.OleDb.OleDbType.VarWChar, 0, "Uhrzeit"), New _
System.Data.OleDb.OleDbParameter("Pkw", _
System.Data.OleDb.OleDbType.VarWChar, 0, "Pkw"), New _
System.Data.OleDb.OleDbParameter("Lkw", _
System.Data.OleDb.OleDbType.VarWChar, 0, "Lkw"), New _
System.Data.OleDb.OleDbParameter("Lastzug", _
System.Data.OleDb.OleDbType.VarWChar, 0, "Lastzug"), New _
System.Data.OleDb.OleDbParameter("Bus", _
System.Data.OleDb.OleDbType.VarWChar, 0, "Bus"), New _
System.Data.OleDb.OleDbParameter("Radfahrer", _
System.Data.OleDb.OleDbType.VarWChar, 0, "Radfahrer"), New _
System.Data.OleDb.OleDbParameter("IsNull_Uhrzeit", _
System.Data.OleDb.OleDbType.[Integer], 0, _
System.Data.ParameterDirection.Input, CType(0, Byte), CType(0, Byte), _
"Uhrzeit", [Rest gekürzt]
Dim Anzeige As New DataTable
Me.OleDbConnection1.Open()
Me.OleDbDataAdapter1.Fill(Anzeige)
OleDbConnection1.Close()
DataGrid_Z1S2.DataSource = Anzeige
DataGrid_Z1S2.DataMember = Anzeige.ToString
End Function TabPage_String ist von TabPage.Name hergeleitet, wegen der Automatiersierung. Das gleiche werde ich dann auch für DataGrid machen, wenns funktioniert; der Code ist von Windows erstellt und nur in eine Funktion verschoben worden.
Oder gibt es Methoden, mit denen das Auslesen und ändern wesentlich einfacher geht?
Danke im Voraus schon einmal für eure Antworten |