[Access 2003] CurrentDb.Execute command

Pagina: 1
Acties:

  • Goochem
  • Registratie: April 2002
  • Laatst online: 24-11-2023
Ik heb een formulier met daarin twee ComboBoxes en daaronder een knop. Met een druk op deze knop wil ik dat onderstaande query gaat draaien, welke uit de ene tabel (tblNameX) de waardes schrijft naar de andere tabel (tblNameY), op basis van deze ComboBoxes.

Het gekke is dat hij niet werkt, iemand een idee wat er mis gaat? De SQL....toch?

Visual Basic:
1
2
3
CurrentDb.Execute("INSERT INTO tblNameX ([Id],[ValueX],[ValueY]) VALUES 
(tblNameY.[Id], tblNameY.[ValueX], tblNameY.[ValueY] WHERE (tblNameY.[Id] = " 
& cboNameX & " AND tblNameY.[Value] = " & cboNameY & ") "), dbFailOnError

Goochem


  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024
Hmm, je vertelt niet wát er fout gaat, of je een foutmelding krijgt en zo ja welke...

Sowieso zie ik al haakjesfouten...

Vlinders moet je volgen, niet vangen...


  • Goochem
  • Registratie: April 2002
  • Laatst online: 24-11-2023
Sorry, idd vergeten te vermelden... de foutmelding is:
Missing semicolon ( ; ) at the end of SQL statement.
Haakjes fouten in ( ) of [ ] haakjes?

Goochem


  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024
()

Vlinders moet je volgen, niet vangen...


  • Goochem
  • Registratie: April 2002
  • Laatst online: 24-11-2023
Kzag idd een foutje, maar das alleen in het voorbeeld ;)

Visual Basic:
1
2
3
CurrentDb.Execute("INSERT INTO tblNameX ([Id],[ValueX],[ValueY]) VALUES  
(tblNameY.[Id], tblNameY.[ValueX], tblNameY.[ValueY]) WHERE (tblNameY.[Id] = "  
& cboNameX & " AND tblNameY.[Value] = " & cboNameY & ") "), dbFailOnError

Goochem


  • Goochem
  • Registratie: April 2002
  • Laatst online: 24-11-2023
maar het WHERE gedeelte, klopt dat wel? Daar heb ik de meeste twijfel bij, maar ben niet zo heel erg into VB...

Goochem


  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024
Dit heeft niet zozeer met VBA te maken, maar meer met SQL.
Stel je SQL-statement eens samen in een string en bekijk dan hoe die string eruitziet. En kijk daarna naar je execute-commando: die klopt namelijk ook niet (helemaal).
Suc6 ermee!

Vlinders moet je volgen, niet vangen...


  • Goochem
  • Registratie: April 2002
  • Laatst online: 24-11-2023
Pff, give me a break :P als je ziet wat er niet (helemaal) klopt, kun je toch ff aangeven waar ik het zoeken moet??

No offense, maar ben niet zo thuis in dit wereldje, en heb met veel moeite mbv Google dit voor elkaar gekregen. Het INSERT INTO commando werkt prima, maar vanaf het moment dat ik probeer die ComboBoxes eraan te koppelen gaat het de mist in...

Goochem


  • Goochem
  • Registratie: April 2002
  • Laatst online: 24-11-2023
Volgens Access betekend de foutmelding overigens:
The SQL statement has additional invalid tokens following an SQL statement. For example, “SELECT col1 FROM table1 garbage” would return this error. “SELECT col1 FROM table1; garbage” would be valid.

Goochem


  • Goochem
  • Registratie: April 2002
  • Laatst online: 24-11-2023
Hmm, moet het niet gewoon met een UPDATE SET statement?

Dat het er ongeveer zo uit moet komen te zien?:

Visual Basic:
1
2
3
CurrentDb.Execute ("UPDATE tlbNameX SET (ID=tblNameY.[ID], 
valueX=tblNameY.[ValueX], valueY=tblNameY.[ValueY])  WHERE ( tblNameY.[ID] =  
" & cboNameX & " AND tblNameY.[ValueX] = " & cboNameY & ") "), dbFailOnError

Goochem


  • Thekk
  • Registratie: Augustus 2002
  • Laatst online: 21-07 11:28
Dat hangt er vanaf wat je wil doen. Wil je records updaten (mbv een UPDATE statement), of wil je nieuwe records toevoegen (mbv een INSERT INTO statement)?

Mijn tips: Zorg dat je aantal haakjes in je sql statement klopt. Desnoods maak je er eerst een gewone string en geef je die als argument mee aan de functie. Dan heb je ook nog de mogelijkheid om je SQL-code te laten zien. Verder worden sql statements altijd met ';' afgesloten, dus dat zou ik ook even toevoegen aan je code.

Visual Basic:
1
2
3
4
Dim SQLStr As String
 ...
SQLStr = "INSERT/UPDATE statement;"
CurrentDb.Execute (SQLStr), dbFailOnError


Verder is het gewoonte om niet op jezelf te reageren, wijzigen kan met het editknopje.

[ Voor 3% gewijzigd door Thekk op 26-04-2006 15:36 ]

Ik heb geen zin om een sig te maken.


  • Goochem
  • Registratie: April 2002
  • Laatst online: 24-11-2023
Kheb het al anders opgelost, ik draai nu twee queries. De ene INSERTs alle data van de ene naar de andere tabel. De andere verwijderd alle data op basis van mijn selectie in de ComboBoxes. Net andersom dus.

Visual Basic:
1
2
CurrentDb.Execute ("DELETE FROM tblOne 
WHERE tblTwo.[Id] <>  " & cboId & " AND tblname.[name] <>  " & cboName & " "), dbFailOnError


Nu gaat er alleen iets mis in het AND gedeelte, dat begrijpt hij niet ;) && werkt ook niet...

Iemand een idee??

Goochem


  • Boss
  • Registratie: September 1999
  • Laatst online: 08:36

Boss

+1 Overgewaardeerd

Ik heb niet alles gelezen, maar dit lijkt me niet echt de juiste oplossing. Je hebt een probleem, en in plaats van het op te lossen (wat niet zo moeilijk is volgens mij) ga je het omzeilen en kom je in een ander probleem terecht.

Zoals Thekk ook al schrijft: debug je SQL statement eens en post die hier. Zeker bij zelf samengestelde SQL statements komen er nog wel eens foutjes in.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.

Pagina: 1