No coinciden los tipos de datos en la expresión de criterios.
Hola a todos, mi problema es el siguiente:
Necesito updatear una base de datos Access, desde un formulario de una pagina asp que recoge valores iniciales a través de una consulta. El problema es que cuando modificas y ejecutas el update me sale el error:
No coinciden los tipos de datos en la expresión de criterios.
El codigo es el siguiente:
<%
Dim cerror
Dim csolucion
Dim ccategoria
Dim cid
Dim sqltxt
cerror=request.form("error")
cerror=replace(cerror, "'", "''")
csolucion=request.form("solucion")
csolucion=replace(csolucion, "'", "''")
ccategoria=request.form("categoria")
ccategoria=replace(ccategoria, "'", "''")
cid=request.form("id")
set rs=createobject("ADODB.Recordset")
sqltxt = "UPDATE DATOS SET DATOS.ERROR = '"&cerror&"' , DATOS.SOLUCION = '"&csolucion&"', DATOS.CATEGORIA = '"&ccategoria&"' WHERE (DATOS.ID='"&cid&"')"
rs.open sqltxt, "DSN=BD"%>
Agradeceria alguna ayuda.
Un saludo.
Necesito updatear una base de datos Access, desde un formulario de una pagina asp que recoge valores iniciales a través de una consulta. El problema es que cuando modificas y ejecutas el update me sale el error:
No coinciden los tipos de datos en la expresión de criterios.
El codigo es el siguiente:
<%
Dim cerror
Dim csolucion
Dim ccategoria
Dim cid
Dim sqltxt
cerror=request.form("error")
cerror=replace(cerror, "'", "''")
csolucion=request.form("solucion")
csolucion=replace(csolucion, "'", "''")
ccategoria=request.form("categoria")
ccategoria=replace(ccategoria, "'", "''")
cid=request.form("id")
set rs=createobject("ADODB.Recordset")
sqltxt = "UPDATE DATOS SET DATOS.ERROR = '"&cerror&"' , DATOS.SOLUCION = '"&csolucion&"', DATOS.CATEGORIA = '"&ccategoria&"' WHERE (DATOS.ID='"&cid&"')"
rs.open sqltxt, "DSN=BD"%>
Agradeceria alguna ayuda.
Un saludo.
cuando el campo es numerico se pondria entre comillas dobles, cuando es fecha tb y cuando no son ninguno de estos tipos se ponen entre comillas dobles y simples.
suponiendo que datos.error, datos.solucion y datos.categoria sean texto y datos.id sea numerico sería asi:
sqltxt= "UPDATE DATOS SET DATOS.ERROR = ' "& cerror & " ' , DATOS.SOLUCION = ' " & csolucion & " ', DATOS.CATEGORIA = ' " & ccategoria & " ' WHERE DATOS.ID=" & cid
sqltxt= "UPDATE DATOS SET DATOS.ERROR = ' "& cerror & " ' , DATOS.SOLUCION = ' " & csolucion & " ', DATOS.CATEGORIA = ' " & ccategoria & " ' WHERE DATOS.ID=" & cid
Muchas gracias a todos, ya he solucionado el problema. He puesto el codigo que me habeis dicho y seguia fallando. Se ha corregido cuando en las opciones de campo en access he cambiado las propiedades de ID de "Entero largo" a "Id. de replica".
Insisto, gracias.
Saludos.
Insisto, gracias.
Saludos.
Tal cual tienes generada la sentencia SQL pasas todos los datos a introducir en los campos y el campo id del WHERE entre comillas. Por el error que te da me da la impresión de que alguno de esos datos no es de tipo caracter. ¿El id no sera numerico? Si no es así, ¿No es numerico alguno de los otros campos?
Espero haberte ayudado. Saludos desde Euskal Herria.
Mikel
Espero haberte ayudado. Saludos desde Euskal Herria.
Mikel
Lo primero muchas gracias Mikel, efectivamente el campo ID es numérico (autonumérico). Le he cambiado el tipo a texto y funciona perfectamente. Pero claro no me sirve como solución porque quiero que cdo se dé de alta se autonumere solo. Siendo autonumérico como completo el WHERE ???
Muchas graicas. Salu2
Muchas graicas. Salu2
Donde tienes puesto esto:
WHERE (DATOS.ID='"&cid&"')"
pon esto otro:
WHERE (DATOS.ID="&cid&")"
De esta manera le pasas el valor que quieres buscar en el ID sin comillas y por lo tanto te lo tomara como numerico.
Saludos.
Mikel
WHERE (DATOS.ID='"&cid&"')"
pon esto otro:
WHERE (DATOS.ID="&cid&")"
De esta manera le pasas el valor que quieres buscar en el ID sin comillas y por lo tanto te lo tomara como numerico.
Saludos.
Mikel
Gracias de nuevo Mikel, eso ya lo hice pero obtengo un error:
Error de sintaxis (falta operador) en la expresión de consulta \'DATOS.ID=\'. Por eso le pongo las comillas simples ...
No se me ocurre nada, y no puedo poner el ID a texto porque necesito que se autonumere.
Alguna idea ...
Muchas gracias de nuevo.
Error de sintaxis (falta operador) en la expresión de consulta \'DATOS.ID=\'. Por eso le pongo las comillas simples ...
No se me ocurre nada, y no puedo poner el ID a texto porque necesito que se autonumere.
Alguna idea ...
Muchas gracias de nuevo.