Anoniem07
Legacy Member
Hej. Ik ben een programma aan het schrijven dat werkt met een MS Acces database.
info database:
---------------
Aantal tabellen :4
1. "VinylTabel"
2. "ArtiestTabel"
3. "LabelTabel"
4. "GenreTabel"
Joins : 1
namenlijk tussen VinylTabel en ArtiestTabel
In de VinylTabel is er een kolom "ArtiestID" genaamd. En hier wordt de primaire sleutel (integer dus) ingevuld vanuit de ArtiestTabel van gewenste record.
Situatie:
----------
Als ik records wil toevoegen in één van de Laatste 3 tabellen. Dan lukt het met deze code.
Nu wil ik in mijn hoodtabel een record invoege in "VinylTabel" dus.
probleem:
---------
Nu geeft hij altijd een fout bij deze laatste regel
Mijn INSERT INTO statement zou niet kloppen of aanwezig zijn.
En dat blijkt dan ook zo te zijn in debug mode. Maar de vraag is waarom hij deze fout niet geeft bij andere tabellen waar ik een record in voeg.
Weet iemand hoe het komt dat ik dit probleem enkel bij de 1ste tabel ervaar.
Een oplossing is het SQL statement zelf instellen. ik weet niet hoe je dat exact moet doen, maar dat kan ik op google vinden. Maar hetgeen dat me bezighoud is waarom ik enkel bij deze tabel die fout heb, en bij mijn andere tabellen niet.
En mijn Data Adapters zijn juist hetzelfde ingesteld, maar wel naar juiste tabelnaam.
----------------------------------------------------bijlage-------------------------------------------------
DS = dataset
adap(3) = array van dataadapters
info database:
---------------
Aantal tabellen :4
1. "VinylTabel"
2. "ArtiestTabel"
3. "LabelTabel"
4. "GenreTabel"
Joins : 1
namenlijk tussen VinylTabel en ArtiestTabel
In de VinylTabel is er een kolom "ArtiestID" genaamd. En hier wordt de primaire sleutel (integer dus) ingevuld vanuit de ArtiestTabel van gewenste record.
Situatie:
----------
Als ik records wil toevoegen in één van de Laatste 3 tabellen. Dan lukt het met deze code.
Code:
Dim cb As New OleDb.OleDbCommandBuilder(Adap(1))
Dim NewRow As DataRow
NewRow = DS.Tables("ArtiestTabel").NewRow
NewRow.Item(1) = TP3TXTLabel.Text
DS.Tables("ArtiestTabel").Rows.Add(NewRow)
Adap(1).Update(DS, "ArtiestTabel")
Nu wil ik in mijn hoodtabel een record invoege in "VinylTabel" dus.
Code:
Dim CB As New OleDb.OleDbCommandBuilder(Adap(0))
Dim Row As DataRow
Row = DS.Tables("VinylTabel").NewRow
Row(1) = mem
Row(2) = TXTTitel.Text
Row(3) = CBLabel.Text
Row(4) = CBGenre.Text
Row(5) = TXTDiscogs.Text
Row(6) = TXTRelease.Text
Row(7) = TXTCatalog.Text
DS.Tables("VinylTabel").Rows.Add(Row)
Adap(0).Update(DS, "VinylTabel")
probleem:
---------
Nu geeft hij altijd een fout bij deze laatste regel
Code:
Adap(0).Update(DS, "VinylTabel")
En dat blijkt dan ook zo te zijn in debug mode. Maar de vraag is waarom hij deze fout niet geeft bij andere tabellen waar ik een record in voeg.
Weet iemand hoe het komt dat ik dit probleem enkel bij de 1ste tabel ervaar.
Een oplossing is het SQL statement zelf instellen. ik weet niet hoe je dat exact moet doen, maar dat kan ik op google vinden. Maar hetgeen dat me bezighoud is waarom ik enkel bij deze tabel die fout heb, en bij mijn andere tabellen niet.
En mijn Data Adapters zijn juist hetzelfde ingesteld, maar wel naar juiste tabelnaam.
----------------------------------------------------bijlage-------------------------------------------------
DS = dataset
adap(3) = array van dataadapters
Code:
Con.ConnectionString() = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = " & OpenFileDialog.FileName
path = OD.FileName
SQLstr(0) = "SELECT * FROM VinylTabel"
SQLstr(1) = "SELECT * FROM ArtiestTabel"
SQLstr(2) = "SELECT * FROM LabelTabel"
SQLstr(3) = "SELECT * FROM GenreTabel"
Adap(0) = New OleDb.OleDbDataAdapter(SQLstr(0), Con)
Adap(1) = New OleDb.OleDbDataAdapter(SQLstr(1), Con)
Adap(2) = New OleDb.OleDbDataAdapter(SQLstr(2), Con)
Adap(3) = New OleDb.OleDbDataAdapter(SQLstr(3), Con)
Con.Open()
Adap(0).Fill(DS, "VinylTabel")
Adap(1).Fill(DS, "ArtiestTabel")
Adap(2).Fill(DS, "LabelTabel")
Adap(3).Fill(DS, "GenreTabel")
Con.Close()