SoloCodigo

Bases de Datos => MS Access => Mensaje iniciado por: Zavash en Lunes 2 de Febrero de 2009, 04:13

Título: Problema con sentencia UPDATE, en VB 6.0
Publicado por: Zavash en Lunes 2 de Febrero de 2009, 04:13
estoy practicando con un programa que conecte una base de datos access pero la sentencia UPDATE arroja un error el codigo va asi :

Código: Text
  1. CÓDIGO
  2. Dim cn As Connection
  3. Dim rs As Recordset
  4.  
  5. Private Sub Form_Load()
  6.  
  7. Set cn = New ADODB.Connection
  8. cn.CursorLocation = adUseClient
  9. cn.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51; Data Source =C:Archivos de programaMicrosoft Visual StudioVB98Ensayodatos.mdb;"
  10.  
  11. End Sub
  12. Private Sub Command2_Click()
  13. If Text1.Text = "" Then
  14. MsgBox " no se puede eliminar un valor que no existe"
  15. Else
  16.  
  17. Sql = "delete from producto where Codigo= '" & Text1 & "'"
  18. Set rs = MiConexion.Execute(Sql)
  19. MsgBox "dato eliminado"
  20. Text1.Text = ""
  21. Text1.SetFocus
  22. End If
  23.  
  24. End Sub
  25.  
  26.  
  27.  
  28. Private Sub Command6_Click()
  29. Sql = "select * from producto where Codigo= '" & Text1.Text & "'"
  30. Set rs = cn.Execute(Sql)
  31.  
  32.     Text1.DataField = "Codigo"
  33.     Set Text1.DataSource = rs
  34.     Text2.DataField = "Nombre"
  35.     Set Text2.DataSource = rs
  36.     Text3.DataField = "Direccion"
  37.     Set Text3.DataSource = rs
  38.     Text4.DataField = "Telefono"
  39.     Set Text4.DataSource = rs
  40.  
  41. End Sub
  42.  
  43. Private Sub Command1_Click()
  44.  
  45. If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Then
  46. MsgBox "faltan datos, completelos"
  47. Else
  48.  
  49. Sql = "insert into producto values ( '" & Text1.Text & "', '" & Text2.Text & "', '" & Text3.Text & "', '" & Text4.Text & "' )"
  50. Set rs = cn.Execute(Sql)
  51. MsgBox "datos grabados"
  52.    
  53.   Text1.Text = ""
  54.   Text2.Text = ""
  55.   Text3.Text = ""
  56.   Text4.Text = ""
  57.   Text1.SetFocus
  58.  
  59. End If
  60.    
  61. End Sub
  62.  
  63.  
  64. Private Sub Command7_Click()
  65. sql = "UPDATE Producto SET Nombre = '" & Text2.Text & "', Direccion = '" & Text3.Text & "',Telefono ='" & Text4.Text & "' WHERE codigo= " & Text1.Text & ""
  66.     Set rs = cn.Execute(sql)
  67.    
  68. MsgBox " datos Actualizados"
  69.  
  70. End Sub
  71. Private Sub Command3_Click()
  72. Text1.Text = ""
  73. Text2.Text = ""
  74. Text3.Text = ""
  75. Text4.Text = ""
  76.  
  77. End Sub
  78.  
Necesito resolver el error que hay en la sentencia UPDATE , por que me aparece el siguiente error al tratar de editar un dato: "No coinciden los tipos de datos en la expresion de criterios " es un problema de sintaxis o de puntuacion?, me gustaria saber, se que esto es bien basico asi que estan demas esos comentarios de "esto es muy basico , deberias saberlo" , lo digo por que otras personas me dicen eso y al final no ayudan para nada... con esa duda resuelta podre postular mejor a un trabajo, de antemano, gracias.
Título: Re: Problema con sentencia UPDATE, en VB 6.0
Publicado por: m0skit0 en Lunes 2 de Febrero de 2009, 07:59
Hola, a mi parecer el mensaje de error te lo da el servidor SQL y no VB. Creo que tienes problemas con los tipos de datos que asignas a las variables SQL, es decir, asignas un tipo de dato incorrecto a Nombre, Direccion o Telefono.
Título: Re: Problema con sentencia UPDATE, en VB 6.0
Publicado por: F_Tanori en Lunes 2 de Febrero de 2009, 12:29
Segun las demas operaciones con los registros, el campo codigo es de tipo cadena

Por ejemplo en Command6_Click, se muestra lo siguiente
Citar
Sql = "select * from producto where Codigo= '" & Text1.Text & "'"

en el cual se le contatenan ( ' ) y no mencionas esi estos procedimientos dan error, pero precisamente en el update, no se esta concatenando los apostrofes , lo que implicaria (a simple vista) el error mencionado, y como bien lo menciona m0skit0,es un error propio de la bd.

Citar
sql = "UPDATE Producto SET Nombre = '" & Text2.Text & "', Direccion = '" & Text3.Text & "',Telefono ='" & Text4.Text & "' WHERE codigo= " & Text1.Text & ""


Saludos

..... Movido a Access .....
Título: Re: Problema con sentencia UPDATE, en VB 6.0
Publicado por: Zavash en Lunes 2 de Febrero de 2009, 17:37
Sii!! funciono , faltaba concatenar.
Gracias  :beer:  :lol: