Update in subform tabel werkt niet

Status
Niet open voor verdere reacties.

GrandMaster

Gebruiker
Lid geworden
2 nov 2009
Berichten
11
de volgende code heb ik in vba staan:
CurrentDb.Execute "UPDATE" & "SET ID='" & Me.Id & "'" & _
", lstOnderdeel='" & Me.lstOnderdeel & "'" & _
", lstCluster='" & Me.lstCluster & "'" & _
", WHERE ID='" & Me.Id.Tag & "'"


maar tijdens het updaten krijg ik de volgende melding:
Fout 3078 tijdens uitvoering:

De Microsoft Acces-database-engine kan de invoertabel of Query UPDATESET ID='6', lstOnderdeel='COMBI',
lstCluster='inruimproces', WHERE ID='6' niet vinden. Controleer of deze bestaat en of de naam correct is gespeld.

Ik zie de juiste gegevens zowel in het subform staan als ook in het tabel, iemand enig idee wat ik hier fout doe???
 
Dit:
"UPDATE" & "SET ID='"
Wordt dus: UPDATESET ID
Omdat er geen spatie voor SET staat en dat is denk ik niet de bedoeling.
Daarnaast moet m.i. er tussen UPDATE en SET nog een tabelnaam staan.
 
Laatst bewerkt:
Dan is het wel handig als je ook de syntax laat zien die je hebt geprobeerd.
 
Zal dit morgen nog eens opnieuw doen, kan nu helaas niet op de server komen ivm werkzaamheden
 
Zet er dan ook de exacte foutmelding bij.
 
Wil niet lukken

Na het meerdere keren te hebben aangepast met spatie of met verwijzing naar het tabel krijg ik telkens deze melding:

Fout 3144 tijdens uitvoering
De instructie UPDATE bevat een syntaxisfout.

Dit is de aanpassing:
CurrentDb.Execute "UPDATE" & " SET ID='" & Me.txtID & "'" & _
", lstOnderdeel='" & Me.lstOnderdeel & "'" & _
", lstCluster='" & Me.lstCluster & "'" & _
", WHERE ID='" & Me.txtID.Tag & "'"

Zelfs heb ik geprobeerd om "UPDATE table1" met en zonder brackets maar resultaat blijft hetzelfde
 
Die tabelnaam moet er in ieder geval tussen. Daarnaast hoort de komma voor WHERE er niet te staan.
 
Je hebt dus dit geprobeert?
Code:
CurrentDb.Execute "UPDATE table1 SET ID='" & Me.txtID & "'" & _
", lstOnderdeel='" & Me.lstOnderdeel & "'" & _
", lstCluster='" & Me.lstCluster & "'" & _
" WHERE ID='" & Me.txtID.Tag & "'"

Let op de spatie voor WHERE.
 
Gebruik

Code:
  MsgBox "UPDATE table1 SET ID='" & "__" & "'" & _
", lstOnderdeel='" & "__" & "'" & _
", lstCluster='" & "__" & "'" & _
" WHERE ID='" & "__" & "'"

Om de regel te beoordelen.
 
Beetje vreemd dat je het veld ID probeert bij te werken. Meestal is dat een Autonummerveld en dat kun je niet bijwerken. Aan de ander kant: je behandelt 'm als tekstveld dus wellicht is het wel een zelfgemaakt veld. Maak een voorbeeldje, zou ik zeggen.
 
Laatst bewerkt:
Een Update in een knop Toevoegen vind ik al heel vreemd (Toevoegen is Insert Into, en Bijwerken is Update) maar als dat voor jou wel logisch is, dan prima natuurlijk. Wat ik veel vreemder vind is het kopiëren van een autonumeriek veld (ID) naar een tekstveld (txtID) in dezelfde tabel. naar zo'n constructie kan ik uren kijken zonder er de zin van te zien... En dat alleen om een Tag te vullen. Ik denk dat het allemaal heel wat slimmer kan. Zal het nog eens bestuderen :).
 
Allereerst had het txtID kunnen gaan om een heel ander soort nummering ipv van de standaardnummering. Dit is gedaan om die nummer te gebruiken ipv van de standaardnummering. Had het natuurlijk ook ipv txtID een txtStudentID kunnen noemen.
 
Ik heb 'm bekeken, en ik heb geen flauw idee wat je aan het doen bent. En dat helpt niet echt bij een oplossing :). Wel zit er dus een stevige fout in je code:

Code:
CurrentDb.Execute "UPDATE OnderdeelCluster SET ID='" & Me.txtID & "', lstOnderdeel='" & Me.lstOnderdeel & "', lstCluster='" & Me.lstCluster & "' WHERE ID='" & Me.txtID.Tag & "'"
kan dus echt niet, want ID is een autonummerveld zoals ik al dacht, en dat kun je niet bijwerken. Dit kan wel:
Code:
CurrentDb.Execute "UPDATE OnderdeelCluster SET txtID='" & Me.txtID & "', lstOnderdeel='" & Me.lstOnderdeel & "', lstCluster='" & Me.lstCluster & "' WHERE ID=" & Me.txtID.Tag

Maar kijk vooral ook naar je tabellenstructuur, want die is (het is zondag, dus ik zeg het netjes) niet geweldig...
 
heb het zelfs zo geprobeerd zoals voorgesteld en zonder bet allereerste Id tabel resultaat blijft hetzelfde. Sterker ik heb deze overgenomen van een youtube filmpje en daar werkt het wel op die manier
 
Het zou helpen als je je eigen tabellen kent :).
Code:
        strSQL = "UPDATE OnderdeelCluster SET [Onderdeel]='" & Me.lstOnderdeel & "', [Cluster]='" & Me.lstCluster & "' " & "WHERE ID=" & Me.txtID.Tag
 
Dit heeft mij voortgeholpen en uiteindelijk is dit volgende code uiteindelijk die doet wat ik wil.

CurrentDb.Execute "UPDATE OnderdeelCluster SET [txtID]='" & Me.txtID & "', [Onderdeel]='" & Me.lstOnderdeel & "', [Cluster]='" & Me.lstCluster & "' " & "WHERE ID=" & Me.txtID.Tag

Hartelijk dank voor de hulp
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan