Avatar billede jobless Nybegynder
17. januar 2002 - 15:04 Der er 13 kommentarer og
1 løsning

sql problem

Hej.

Jeg kører en sql sætning fra visual basic, men får fejlen at datatyperne ikke passer sammen.
Min kode ser således ud:

Dim Mnr As Byte
Dim Mid As Long
Dim setidSQL As String

Mid = [Forms]![import-udvælg måling]![mølle-id]
Mnr = Me![målingnr]

setidSQL = \"UPDATE temp SET temp.[mølle-id] = \" & Mid & \" WHERE ((colmn)=\" & Mnr & \");\"
DoCmd.RunSQL (setidSQL)

Hvis jeg fjerner \'WHERE\' delen fungerer det.
Hvad gør jeg galt??
Avatar billede professoren Nybegynder
17. januar 2002 - 15:06 #1
Prøv at bruge samme datatype for begge variabler.
Avatar billede fri-hash Nybegynder
17. januar 2002 - 15:07 #2
ingen parantes om where-klausulen
Avatar billede terry Ekspert
17. januar 2002 - 15:08 #3
what is the datatype for colmn in the database? If it is text then you need to change Mnr to text
Avatar billede terry Ekspert
17. januar 2002 - 15:09 #4
also if it is a byte then the value of Me![målingnr] must be in th erange 0-255

Avatar billede jobless Nybegynder
17. januar 2002 - 15:21 #5
1: Samme datatype for variablerne hjælper ikke
2: at fjerne paranteserne hjælper ikke

terry: the column is (mølle-id) is number (integer). Me![målinger] never exceeds 99
Avatar billede jobless Nybegynder
17. januar 2002 - 15:25 #6
terry: ups me![målinger]=me![målingnr]

Hvis jeg opbygger sql-sætningen i forespørgsler kan jeg se at den sætter \" omkring betingelsen, altså den værdi jeg får fra me![målingnr], men hvis jeg viser min vba opbyggede sætning har den ikke \" omkring betingelsen ??
Avatar billede terry Ekspert
17. januar 2002 - 15:33 #7
IF the field is an integer then you do NOT use \"99\" but 99

Try setidSQL = \"UPDATE temp SET temp.[mølle-id] = \" & Mid & \" WHERE ((colmn)= 99);\"

I would also alter Mid to another name, Mid is a function in Access, but I dont think this is the problem!
Avatar billede jobless Nybegynder
17. januar 2002 - 15:40 #8
Virker stadigt ikke.
Min sætning ser nu således ud:
Dim Mnr As String
Dim Mølid As String
Dim setidSQL As String
Mølid = [Forms]![import-udvælg måling]![mølle-id]
Mnr = Me![målingnr]
setidSQL = \"UPDATE temp SET temp.[mølle-id] = \" & Mølid & \" WHERE ((colmn)= 99);\"
DoCmd.RunSQL (setidSQL)

hvis jeg fjerner where, virker den (bare ikke efter hensigten)
Avatar billede terry Ekspert
17. januar 2002 - 15:41 #9
but do you have a record where column = 99?
Avatar billede terry Ekspert
17. januar 2002 - 15:42 #10
your query will only update those WHERE (IF) colmn = 99 if they are NOT then no update
Avatar billede jobless Nybegynder
17. januar 2002 - 15:43 #11
nope, tried to do it with \'5\', didn\'t work
Avatar billede terry Ekspert
17. januar 2002 - 15:47 #12
OK
set a breakpoint on the docmd... line then run th eprogram until it gets there then i n the debug window write
?setidSQL
this shows you the SQL statement. Cut and paste thsi SQL in to a query and try it there. You should then be able to locate the problem here.
Avatar billede jobless Nybegynder
17. januar 2002 - 16:15 #13
Yeps, det hjalp.

Jeg satte begge kolonner (mølle-id og colmn) i min tabel \'temp\' til typen number, de stod til text.
Avatar billede terry Ekspert
17. januar 2002 - 20:06 #14
see my comment 15:08 :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester