18. december 2005 - 21:13
Der er
18 kommentarer og 1 løsning
fejl i min opdaterning
Er der nogle som ved hvorfor, jeg har en fejl fra den her denne her kode: <% tabel1 = request.form("tabel1") tabel2= request.form("tabel2") tabel3= request.form("tabel3") tabel4 = request.form("tabel4") strSQL = "UPDATE tabelnavn SET tabel1='"&tabel&"'," &_ "tabel2='"&tabel3&"'," &_ "tabel3='"&tabel3&"'" &_ "WHERE tabel4="&tabel4 conn.execute(strSQL) response.write strSQL %> <% Conn.Close set Conn = Nothing %> Dette er fejlen: [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. Håber Vi kan hjælpe mig
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
18. december 2005 - 21:33
#1
Hvilken type er felterne tabel i databasen? Tal??
18. december 2005 - 21:36
#2
Hvis det er tal - så prøv det her: <% tabel1 = request.form("tabel1") tabel2= request.form("tabel2") tabel3= request.form("tabel3") tabel4 = request.form("tabel4") strSQL = "UPDATE tabelnavn SET tabel1="&tabel&"," &_ "tabel2="&tabel3&"," &_ "tabel3="&tabel3&"" &_ "WHERE tabel4="&tabel4 conn.execute(strSQL) response.write strSQL %> <% Conn.Close set Conn = Nothing %>
18. december 2005 - 21:40
#3
Det er tal - men i min database er det "tekst felter"... har det noget at side mht, de kode? VH - bremer
18. december 2005 - 21:40
#4
...men det kan også være du bare skal lave et mellemrum foran WHERE...
18. december 2005 - 21:45
#5
hvad mere du...?
18. december 2005 - 21:54
#6
Lige nu ser din SQL således ud: strSQL = "UPDATE tabelnavn SET tabel1='"&tabel&"'," &_ "tabel2='"&tabel3&"'," &_ "tabel3='"&tabel3&"'" &_ "WHERE tabel4="&tabel4 Jeg ville jo mene at den burde se således ud: strSQL = "UPDATE tabelnavn SET tabel1='"&tabel&"'," &_ "tabel2='"&tabel3&"'," &_ "tabel3='"&tabel3&"' " &_ "WHERE tabel4="&tabel4
18. december 2005 - 22:46
#7
Nu skriver den: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'noget tekst her'. siger det dig noget ?
18. december 2005 - 23:05
#8
Prøv lige at udskifte dette: <% tabel1 = request.form("tabel1") tabel2= request.form("tabel2") tabel3= request.form("tabel3") tabel4 = request.form("tabel4") strSQL = "UPDATE tabelnavn SET tabel1='"&tabel&"'," &_ "tabel2='"&tabel3&"'," &_ "tabel3='"&tabel3&"'" &_ "WHERE tabel4="&tabel4 conn.execute(strSQL) response.write strSQL %> med dette: <% tabel1 = request.form("tabel1") tabel2= request.form("tabel2") tabel3= request.form("tabel3") tabel4 = request.form("tabel4") strSQL = "UPDATE tabelnavn SET tabel1='"&tabel&"'," &_ "tabel2='"&tabel3&"'," &_ "tabel3='"&tabel3&"' " &_ "WHERE tabel4="&tabel4 response.write strSQL response.end conn.execute(strSQL) response.write strSQL %> og vis den SQL der kommer ud af det.
18. december 2005 - 23:16
#9
Så kommer der til at stå sådan: UPDATE tabelnavn SET fornavn='tabel1',tabel3='X',tabel3='-' WHERE tabel4=01 og det er X jeg har prøvet at opdater med... - men hvis jeg prøver at gå tilbage og opdater siden, har den ikke gemt resultatet af selve opdatering. giver det mere for dig ?
18. december 2005 - 23:33
#10
Først og fremmest hæfter jeg mig ved at dine feltnavne ændrer sig fra post til post (tabel1 hedder nu fornavn), dernæst undrer jeg mig lidt over tabel4=01. Er det meningen at tabel4 skal sammenligne med en tekst som indeholder "01" eller er det et talfelt (som i dette tilfælde ville matche værdien 1)? Jeg har lidt på fornemmelsen at du gerne vil maskere dine feltnavne, men med mindre du virkelig arbejder med noget innoverende og nytænkende, så tror jeg du bliver hjulpet lettere, hvis du holder dig til at vise det kode du rent faktisk udfører, da noget af problemet risikerer at gå tabt i din maskeringsprocess. Anyhow! Det du skal passe på med når du gemmer tekster i en database, er at de ikke indeholder apostroffer, da disse, når du opbygger SQL-sætninger på denne måde, kan være med til at skabe rod. Det du bør gøre er at udskifte apostroffer med dobbeltapostroffer, altså noget i stil med dette: strSQL = "UPDATE tabelnavn SET tabel1='"&replace(tabel1,"'","''")&"'," &_ "tabel2='"&replace(tabel2,"'","''")&"'," &_ "tabel3='"&replace(tabel3,"'","''")&"' " &_ "WHERE tabel4="&tabel4 når du skal teste dette af skal du lige huske at fjerne de to linier jeg indsatte mellem SQL-sætningen og conn.Execute (altså response.write og response.end).
18. december 2005 - 23:51
#11
Jjeg ikke noget at skjule, men ville være gøre det så nemt at se på... (forsent) - men min kode ser sådan ud. <% ' Databaseforbindelse - husk at angive sti til din database Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("../../db/databasen.mdb") Conn.Open DSN %> <% tabel1 = request.form("tabel1") tabe2 = request.form("tabe2") tabe3 = request.form("tabe3") tabe4 = request.form("tabe4") strSQL = "UPDATE tabelnavn SET tabel1='"&replace(tabel1,"'","''")&"'," &_ "tabe2='"&replace(tabe2,"'","''")&"'," &_ "tabe3='"&replace(tabe3,"'","''")&"' " &_ "WHERE tabe4="&tabe4 conn.execute(strSQL) response.write strSQL %> <% Conn.Close set Conn = Nothing %> Og der fremkommer denne fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. VH - bremer
18. december 2005 - 23:57
#12
Kan du ikke prøve at skitsere opbygningen af din tabel (den der hedder tabelnavn), hvor du angiver feltnavn og felttype for hver af de, i denne update-sætning, relevante felter... Du er helt sikker på at feltet tabe4 er et talfelt, ikk'?
18. december 2005 - 23:59
#13
...jeg konstaterer at dine felter endnu engagn har skiftet navne, så enten er det en meget dynamisk database du har, eller så sidder du og taster koden ind hver gang du poster - uanset hvad, så kan det godt gøre mig lidt bekymret :)
19. december 2005 - 00:07
#14
tabe4 - er en textbox, lige som alle de andre.... hjælper dette så: <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("../../db/databasen.mdb") Conn.Open DSN %> <% fornavn = request.form("fornavn") poster = request.form("poster") arkivnavn = request.form("arkivnavn") dvd = request.form("dvd") strSQL = "UPDATE film SET fornavn='"&replace(fornavn,"'","''")&"'," &_ "poster='"&replace(poster,"'","''")&"'," &_ "arkivnavn='"&replace(arkivnavn,"'","''")&"' " &_ "WHERE dvd="&dvd conn.execute(strSQL) response.write strSQL %> <% Conn.Close set Conn = Nothing %>
19. december 2005 - 00:09
#15
Under antagelse af at DVD er et tekstfelt, så prøv lige dette SQL i stedet: strSQL = "UPDATE film SET fornavn='"&replace(fornavn,"'","''")&"'," &_ "poster='"&replace(poster,"'","''")&"'," &_ "arkivnavn='"&replace(arkivnavn,"'","''")&"' " &_ "WHERE dvd='"&dvd&"'"
19. december 2005 - 00:19
#16
Cool! - nu virker det sku!... :) TOP! - sender du lige et svar...
19. december 2005 - 00:20
#17
Det kom der - velbekomme :)
19. december 2005 - 00:24
#18
Og selvfølgelig - mange tak for hjælpe...
19. december 2005 - 00:31
#19
Tak for point :)
Kurser inden for grundlæggende programmering