error con los tipos de datos al hacer cn.execute "update tabla" en ADO vb 6

Paranoid
19 de Noviembre del 2003
Va todo bien hasta que le meto un dato de tipo boolean. Que me da este errosr:

"No se han especificado valores para algunos de los parametros requeridos"

Este es el codigo:

donde son booleanos es_vol, Lunes, Martes, miercoles, jueves, y viernes.
Si los quito funciona todo genial.

cn.Execute "UPDATE TB_TEC_VOL set NOMBRE='" & rstec.Fields("NOMBRE").Value & "',TELEFONO='" & rstec.Fields("TELEFONO").Value & "',MAIL='" & rstec.Fields("MAIL").Value & "',DIRECCION='" & rstec.Fields("DIRECCION").Value & "',FECHA_IN='" & (rstec.Fields("FECHA_IN").Value) & "',FECHA_BAJA='" & Val(rstec.Fields("FECHA_BAJA").Value) & "',MAÑANA_TARDE='" & rstec.Fields("MAÑANA_TARDE").Value & "',ES_VOL=" & rstec.Fields("ES_VOL").Value & ",LUNES=" & rstec.Fields("LUNES").Value & " WHERE ID_TEC='" & rstec.Fields("ID_TEC").Value & "';"

Muchas gracias a todos

sdemingo
19 de Noviembre del 2003
Hola,

Debes introducir los valores como True o False haciendo esta comprobación.

Dim aux As String

If rstec("ES_VOL") = "Verdadero" Then
aux = "True"
Else
aux = "False"
End If

Y luego ese valor es el que pones en la query
cn.Execute "UPDATE TB_TEC_VOL set NOMBRE='" & rstec.Fields("NOMBRE").Value & "',TELEFONO='" & rstec.Fields("TELEFONO").Value & "',MAIL='" & rstec.Fields("MAIL").Value & "',DIRECCION='" & rstec.Fields("DIRECCION").Value & "',FECHA_IN='" & (rstec.Fields("FECHA_IN").Value) & "',FECHA_BAJA='" & Val(rstec.Fields("FECHA_BAJA").Value) & "',MAÑANA_TARDE='" & rstec.Fields("MAÑANA_TARDE").Value & "',ES_VOL=" & aux ...........


Un saludo
sdemingo

Paranoid
19 de Noviembre del 2003
Pues he hecho lo que me has dicho, y ahora me dice que no coincidan los tipos de datos en la expresion criterios.

El codigo queda algo asi:
Dim bool As String

Dim num As Integer

move_reg_donaciones Esto es para obtener los datos del form al recordset

num = CInt(rsdonaciones.Fields("ID_DONANTE").Value)

If rsdonaciones.Fields("PAGO_TRANSPORTE").Value = True Then bool = "True" Else bool = "False"

cn.Execute "UPDATE TB_donaciones set DONANTE='" & rsdonaciones.Fields("DONANTE").Value & "',TLF='" & rsdonaciones.Fields("TLF").Value & "',DIRECCION='" & rsdonaciones.Fields("DIRECCION").Value & "',MAIL='" & rsdonaciones.Fields("MAIL").Value & "',OBSERVACIONES='" & rsdonaciones.Fields("OBSERVACIONES").Value & "',FECHA_ENTRADA='" & Val(rsdonaciones.Fields("FECHA_ENTRADA").Value) & "',PAGO_TRANSPORTE=" & (bool) & ",N_PCS='" & (rsdonaciones.Fields("N_PCS").Value) & "'WHERE ID_DONANTE=" & num & ";"

la expresion criterios debe de ser esta ultima....

Muchas gracias por todo.

sdemingo
19 de Noviembre del 2003
Hola,

Cuando hagas la query, no pongas bool entre paréntesis

Un saludo
sdemingo