• Viernes 15 de Noviembre de 2024, 10:06

Autor Tema:  Problema Con Calúsula Insert En Ado  (Leído 1017 veces)

MiguelPG

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Problema Con Calúsula Insert En Ado
« en: Domingo 25 de Enero de 2004, 09:54 »
0
Hola a todos.
Recientemente estoy comenzando a utilizar ADO en mi código (hasta ahora utilizaba DAO) y me encuentro con un problema al abrir un recordet para insertar registros a una tabla.
Me dá un error ue dice: "No se han especificado valores para algunos de los parámetros requeridos".

Pongo el código por si pudierais ver en donde estoy metiendo la pata:


Private Sub cmdInsertar_Click()
csql = "INSERT INTO Temporal (MESA, PAX, FECHA, IDCARTA, CANTIDAD, PRECIO) "
csql = csql & "VALUES ("
csql = csql & " '" & txtClaveMesa.Text & "', "
csql = csql & "cdbl(txtpax.text), "
csql = csql & " #" & lblFecha.Caption & "#, "
csql = csql & "cdbl(txtcodigo.text), "
csql = csql & "cdbl(txtcantidad.text), "
csql = csql & "cdbl(txtprecio.text)) "

Set RS1 = Nothing
'cn es la cadena de conexión
cn.BeginTrans
    RS1.Open csql, cn, , adLockOptimistic ' aquí me marca el error
cn.CommitTrans
End Sub
Muchas gracias por vuestra ayuda

MiguelPG

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: Problema Con Calúsula Insert En Ado
« Respuesta #1 en: Domingo 25 de Enero de 2004, 23:56 »
0
Hola otra vez.
Después de "guerrear" todo el día he descubierto porqué dá el error, pero no la forma de solucionarlo. Me explico:
El problema está en que la instrucción SQL "no traduce" los valores de los TextBox cuyo contenido es numérico. Y ello a pesar de que cuando construyo la SQL incluyo las instrucciones VAL y CDBL correspondientes.
Esto es, si observamos la cadena de la SQL cuando la construimos vemos que en los TextBox que tiene valores numérios incluye la instrucción dada, por ejemplo, dice Val(txtCodigo.text) en lugar de su valor numérico.
Sin embargo, en los TextBox que contienen valores de fecha o numéricos, traduce los valores perfectamente.
¿Sabeis a qué es debido?
Llevo tres días "pegándome" con esta historieta.

MiguelPG

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: Problema Con Calúsula Insert En Ado
« Respuesta #2 en: Lunes 26 de Enero de 2004, 07:37 »
0
Solucionado.
Después de darle muchas vueltas, ya encontré la solución.
Por si a alguno pudiera serle de utilidad, ahí os pongo el código:

csql = "INSERT INTO Temporal (MESA, PAX, FECHA, IDCARTA, CANTIDAD, PRECIO) "
csql = csql + "VALUES ("
csql = csql + "'" & txtClaveMesa.Text & "', "
csql = csql + Str(Val(txtPax.Text)) & ", "
csql = csql + " #" & lblFecha.Caption & "#, "
csql = csql + Str(Val(txtCodigo.Text)) & ", "
csql = csql + Str(CDbl(txtCantidad.Text)) & ", "
csql = csql + Str(CDbl(txtPrecio.Text)) & ")"
Set RS1 = Nothing
RS1.Open csql, cn, , adLockOptimistic        'siendo cn la cadena de conexión

Saludos