[VBa/SQL] Update query voert waarde 0 in

Pagina: 1
Acties:

  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-04 17:38
Ik snap er echt niets meer van, ik voer in VBa de volgende query uit:

code:
1
2
UPDATE [12345] SET [12345].Kolom1 = '1-10', [12345].Kolom2 = 10 
      WHERE [12345].Id = 87

Maar nu voert ie bij Kolom 1 de waarde '0' in en bij Kolom2 laat ie gewoon de oude waarde staan :?

Table '12345' bestaat gewoon, met daarin de kolommen 'Kolom1' (tekst), 'Kolom2' (integer), 'Id' (long integer/autonummering/prim key)

Ik heb ook op de hoofdletters gelet, klopt ook. De '[ ]' (brackets?) gebruik ik in andere queries op dezelfde manier en daar werkt het ook (Die gooit Access er zelf namelijk vaak in, dus om verwarring te voorkomen gebruik ik die dan ook maar).

Hopelijk kan iemand mij vertellen wat ik fout doe.. B)

[ Voor 8% gewijzigd door r0bert op 10-02-2005 12:14 ]


  • Maasluip
  • Registratie: April 2002
  • Laatst online: 14-05 20:34

Maasluip

Kabbelend watertje

Ik neem aan dat dat '1-10' een tikfout is want een ' is het begin van commentaar in VB(A). Dat moet natuurlijk "1-10" zijn.
edit:
aan de resultaten van de update te zien is dat wel wat je doet...

[ Voor 32% gewijzigd door Maasluip op 10-02-2005 12:29 ]

Signatures zijn voor boomers.


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Je gebruikt VBA om een MySQL database aan te passen. Waarin gebruik je die VBA dan? Microsoft Access, Word, Excel? En hoe voer je de query uit? Via ADO, via ODBC, via een thirdparty driver?

Wat gebeurt er als je de query uitvoert vanaf de manager voor je database? Toon ons eens wat (relevante) code zodat we de context van je vraag wat beter kunnen inschatten.

My personal website


  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-04 17:38
Die gooit Access er zelf namelijk vaak in
Access dus :)
Visual Basic:
1
2
3
4
'
Set cnn = CurrentProject.Connection
 cnn.Execute ("UPDATE [12345] SET [12345].Kolom1 = '1-10', [12345].Kolom2 = 10 WHERE [12345].Id = 87")
'
Maasluip schreef op donderdag 10 februari 2005 @ 12:27:
Ik neem aan dat dat '1-10' een tikfout is want een ' is het begin van commentaar in VB(A). Dat moet natuurlijk "1-10" zijn.
edit:
aan de resultaten van de update te zien is dat wel wat je doet...
Euhm binnen " " (dubbelquotes) mag ik toch wel enkele quotes gebruiken? Ik zou niet weten hoe het anders moet eigenlijk :X


editje: Ik weet niet eens zeker of dat MySQL heet in Access, vast mSQL ofzo :X het gaat in ieder geval om Access tabellen waar ik zo'n mSQL query op los laat

[ Voor 108% gewijzigd door r0bert op 10-02-2005 12:36 ]


  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
Maasluip schreef op donderdag 10 februari 2005 @ 12:27:
Ik neem aan dat dat '1-10' een tikfout is want een ' is het begin van commentaar in VB(A). Dat moet natuurlijk "1-10" zijn.
edit:
aan de resultaten van de update te zien is dat wel wat je doet...
Ik denk dat r0bert het wel goed heeft want in een SQL-query geef je met deze tekens aan dat het om een string gaat ;)

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Ik weet niet eens zeker of dat MySQL heet in Access, vast mSQL ofzo het gaat in ieder geval om Access tabellen waar ik zo'n mSQL query op los laat
SQL is een taal: Structured Query Language. Een SQL statement kun je uitvoeren op een database, zoals MS SQL Server, Access of MySQL. MySQL is dus een databaseplatform. Misschien is het niet onverstandig om aan aan de moderators een verandering van je topictitle aan te vragen, omdat dit een andere verwachting schept.

Wat gebeurt er als je de query rechtstreeks in de query editor van Acces uitvoert? En de vraag blijft: hoe voer je de query uit en toon eens wat (relevante) code? Binnen dubbelquotes mag je inderdaad enkele quotes gebruiken om strings aan te geven. Parametrized queries zijn natuurlijk mooier. ;)

My personal website


  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-04 17:38
OZ-Gump schreef op donderdag 10 februari 2005 @ 12:59Wat gebeurt er als je de query rechtstreeks in de query editor van Acces uitvoert? En de vraag blijft: hoe voer je de query uit en toon eens wat (relevante) code?
Als ik hem daar uit voer, krijg ik het zelfde resultaat als ik eerder noemde (0 en oude waarde). Relevante code is er verder weinig alleen dit staat er nog om mijn query heen:

Visual Basic:
1
2
3
4
5
Function fSplitsOp()
    ' 
   Set cnn = CurrentProject.Connection 
    cnn.Execute ("UPDATE [12345] SET [12345].Kolom1 = '1-10', [12345].Kolom2 = 10 WHERE [12345].Id = 87") 
End Function



Blijkbaar, werkt het in access wel goed met dubbele quotes :/ :|

[ Voor 29% gewijzigd door r0bert op 10-02-2005 13:44 ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Maak, puur voor de test, van '1-10' eens ""1-10"".
Hier ga je dus elke enkele quote vervangen door twee dubbele quotes.

My personal website


  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-04 17:38
Ja, dat wil dus, zat ik net te editten :) Via de SQL Editor wel iig, nu nog proberen in mijn code juist te krijgen 8)7


Grrrr dit werkt dan weer NIET :?

[knip]

Het werkt :) De dubbele quote did the trick O-)

[edit]
dus nu zo:
Visual Basic:
1
... 12345.Kolom1 = """ & sVar & """, 12345.Kolom2 = 123 ...

[ Voor 149% gewijzigd door r0bert op 10-02-2005 13:51 ]

Pagina: 1