Mijn programma moet records van de ene naar de andere tabel verplaatsen. Ik had zelf bedacht om eerst een nieuw record te maken in de 2e tabel en de gegevens van het record uit de eerste in te voegen, om daarna het record uit de 1e tabel te verwijderen.
Nu ik overgestapt ben van 6.0 naar .Net loop ik tegen het probleem aan van ADO.Net: dat ken ik nog niet. Ik heb daarom ADO 2.7 geïmporteerd en de volgende code geschreven, maar mijn Insert-query geeft een error:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in FacCheck.exe
Additional information: De instructie INSERT bevat een syntaxisfout.
De code is als volgt:
Ik heb al handmatig waarden ingevuld en dan blijft 'ie een fout geven, terwijl ik in access een query heb gemaakt en daar dit heb ingeplakt en dat werkte foutloos.
Informatie over mijn tabellen:
registraties: (Nummering=autonummering, Datum=datum/tijd, Naam=tekst, Plaats=tekst, Object=tekst, Taken=tekst, Afstand=nummeriek, Duur=nummeriek)
uitgelezen: (Datum=datum/tijd, Naam=tekst, Plaats=tekst, Object=tekst, Taken=tekst, Afstand=nummeriek, Duur=nummeriek)
de records van tabel 'registraties' waarbij het veld 'object' de waarde 'PH-HWH' heeft moeten in 'uitgelezen' geplaatst worden.
Ik weet dat ik hier al eerder een topic over heb gemaakt, dat is gesloten, maar het lijkt mij zo wat netter.
Nu ik overgestapt ben van 6.0 naar .Net loop ik tegen het probleem aan van ADO.Net: dat ken ik nog niet. Ik heb daarom ADO 2.7 geïmporteerd en de volgende code geschreven, maar mijn Insert-query geeft een error:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in FacCheck.exe
Additional information: De instructie INSERT bevat een syntaxisfout.
De code is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| If MsgBox("records verwerken?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
Dim connString As String
connString = "Provider=Microsoft.Jet.OLEDB.4.0;data source='H:\creaties\pda\check\werkinfo.mdb'"
Dim conn As ADODB.Connection
conn = New ADODB.Connection
conn.Open(connString)
Dim rs1 As ADODB.Recordset
rs1 = New ADODB.Recordset
rs1.Open("registraties", conn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
rs1.MoveFirst()
Dim myInsertQuery As String
Dim myDeleteQuery As String
Do While Not rs1.EOF
rs1.Find("object='PH-HWH'")
myInsertQuery = "INSERT INTO uitgelezen (Datum, Naam, Plaats, Object, Taken, Afstand, Duur) VALUES (#" & rs1.Fields(1).Value & "#, '" & rs1.Fields(2).Value & "', '" & rs1.Fields(3).Value & "', '" & rs1.Fields(4).Value & "', '" & rs1.Fields(5).Value & "', " & rs1.Fields(6).Value & ", " & rs1.Fields(7).Value & ")"
MsgBox(myInsertQuery)
conn.Execute(myInsertQuery)
myDeleteQuery = "DELETE FROM registraties WHERE Nummering='" & rs1.Fields(0).Value & "'"
conn.Execute(myDeleteQuery)
Loop
conn.Close()
End If |
Ik heb al handmatig waarden ingevuld en dan blijft 'ie een fout geven, terwijl ik in access een query heb gemaakt en daar dit heb ingeplakt en dat werkte foutloos.
Informatie over mijn tabellen:
registraties: (Nummering=autonummering, Datum=datum/tijd, Naam=tekst, Plaats=tekst, Object=tekst, Taken=tekst, Afstand=nummeriek, Duur=nummeriek)
uitgelezen: (Datum=datum/tijd, Naam=tekst, Plaats=tekst, Object=tekst, Taken=tekst, Afstand=nummeriek, Duur=nummeriek)
de records van tabel 'registraties' waarbij het veld 'object' de waarde 'PH-HWH' heeft moeten in 'uitgelezen' geplaatst worden.
Ik weet dat ik hier al eerder een topic over heb gemaakt, dat is gesloten, maar het lijkt mij zo wat netter.