Autor Tema: Error en Criterio..  (Leído 4562 veces)

0 Usuarios y 1 Visitante están viendo este tema.

FreddyJ

  • Kilobyte
  • **
  • Mensajes: 51
  • Reputación: +0/-2
    • Ver Perfil
Error en Criterio..
« en: Marzo 16, 2010, 08:25:46 pm »
Deseo actualizar o editar la existencia de un producto. tengo el siguiente codigo pero me dice que tengo error en el criterio.

Código: [Seleccionar]
nc.Execute "UPDATE Mercancia SET Mer_Descripcion = '" & txDesc & _
                                                   "', Mer_existencia = '" & lbExistencia & _
                                                   "' WHERE Mer_Id = " & txCodProducto & ""


seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Error en Criterio..
« Respuesta #1 en: Marzo 17, 2010, 11:48:29 am »
Hola, cuando el id es numerico no hace falta que cierres..esta demas el & "" a lo ultimo...igualmente siempre deberias guardar tus cadenas SQL en un string...asi si ocurre un error es mas facil saber donde esta, haciedo un simple Debug.Print vSQL te muestra la cadena con los valores que ha tomado...y asi la ejecutas en access o donde sea.

ejecuta esa consulta con sus valores en access o donde estes trabajando y ahi vas a saber el error facilmente...

saludos.
 

NolO

  • Kilobyte
  • **
  • Mensajes: 73
  • Reputación: +6/-0
    • Ver Perfil
Re:Error en Criterio..
« Respuesta #2 en: Marzo 18, 2010, 12:41:54 pm »
Hola, una consulta el campo Mer_Existencia es numerico?, si es asi entonces tu sentencia seria asi
Código: (vb) [Seleccionar]
SQL="UPDATE Mercancia SET Mer_Descripcion = '" & txDesc.Text & "', Mer_existencia = " & lbExistencia.Caption & " WHERE Mer_Id = " & txCodProducto.Text
nc.Execute SQL
Espero te ayude.

Saludos.

FreddyJ

  • Kilobyte
  • **
  • Mensajes: 51
  • Reputación: +0/-2
    • Ver Perfil
Re:Error en Criterio..
« Respuesta #3 en: Marzo 18, 2010, 01:59:55 pm »
Si man. Mer_Existencia es Tipo Número.. No actualiza aún.

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Error en Criterio..
« Respuesta #4 en: Marzo 18, 2010, 02:37:31 pm »
Freddy me detuve a leer tú post y revise tú codigo... Fijate, detalles importantes...!

En la BD almacenas el campo Mer_ID contiene 9 caracteres... Pero cuando los muestras, al hacer el formato lo cambias a 10... Por favor edita esto en tú source...

Código: (vb) [Seleccionar]
Private Sub Cargar_Mercancia()
    Dim iCol As Integer
    Dim cItem As ListItem
    Dim rs As New ADODB.Recordset
   
    Call lv.ListItems.Clear
    rs.Open "SELECT * FROM Mercancia", nc, adOpenDynamic, adLockOptimistic
    While Not rs.EOF
        'Set cItem = lv.ListItems.Add(, , Format(rs!Mer_Id, "000000000#")) CAMBIALO
         Set cItem = lv.ListItems.Add(, , Format(rs!Mer_Id, "000000000")) 'ASI
            cItem.SubItems(1) = rs!Mer_Descripcion
            cItem.SubItems(2) = rs!Mer_Genero
            cItem.SubItems(3) = rs!Mer_Talla
            cItem.SubItems(4) = rs!Mer_Color
            cItem.SubItems(5) = rs!Mer_Marca
            cItem.SubItems(6) = rs!Mer_Costo
            cItem.SubItems(7) = rs!Mer_Iva
            cItem.SubItems(8) = rs!Mer_Porcentaje
            cItem.SubItems(9) = rs!Mer_Precio
            cItem.SubItems(10) = rs!Mer_Fecha
        DoEvents
        rs.MoveNext
    Wend
        rs.Close
    Set rs = Nothing
   
    'Auto organiza las columnas
    For iCol = 1 To lv.ColumnHeaders.Count
        Call SendMessage(lv.hWnd, LVM_SETCOLUMNWIDTH, iCol - 1, ByVal -2)
        DoEvents
    Next iCol
End Sub

Luego para Editar, puedes usar esto:

Código: (VB) [Seleccionar]
Private Sub Editar_Registro()
'nc.Execute "UPDATE Mercancia SET Mer_Genero = '" & cboGenero.Text & "', Mer_Descripcion = '" & cboDetalle.Text & "', Mer_Talla = '" & cboTallas.Text & "', Mer_Color = '" & cboColor.Text & "', Mer_Marca = '" & cboMarca.Text & "', Mer_Iva = '" & cboIva.Text & "', Mer_Costo = '" & txCosto.Text & "', Mer_Porcentaje = '" & txVenta.Text & "', Mer_Precio = '" & TxPrecio.Text & "',Mer_Fecha = #" & CDate(lbFecha.Caption) & "# Where Mer_Id = '" & txCodigo.Text & "'"
Dim RsUpdate As New ADODB.Recordset
rs.Open "SELECT * FROM Mercancia Where Mer_Id = '" & txCodigo.Text & "'", nc, adOpenDynamic, adLockOptimistic
If rs.State = 1 Then
    If rs.EOF = False Then
            rs!Mer_Genero = cboGenero.Text
            rs!Mer_Descripcion = cboDetalle.Text
            rs!Mer_Talla = cboTallas.Text
            rs!Mer_Color = cboColor.Text
            rs!Mer_Marca = cboMarca.Text
            rs!Mer_Costo = txCosto.Text
            rs!Mer_Iva = cboIva.Text
            rs!Mer_Porcentaje = txVenta.Text
            rs!Mer_Precio = txPrecio.Text
            rs!Mer_Rif = txRif.Text
            rs!Mer_Proveedor = txProveedor.Text
            rs!Mer_Telefono = txTlf.Text
            rs!Mer_Fecha = cDate(lbFecha.Caption)
            rs.Update
            rs.Close
    End If
End If
Set rs = Nothing
MsgBox "El registro ha sido modificado correctamente", vbInformation
Cargar_Mercancia
End Sub

Por ultimo...!!!
Tienes que mostraras la informacion al hacer Doble Click, cambialo por solo un Click...
Código: (vb) [Seleccionar]
Private Sub lv_DblClick()
    Call MostrarDatos_Editar
    cmBuscar.Visible = False
    cmd(1).Enabled = False
    cmd(3).Enabled = True
End Sub

Cambialo por esto...!
Código: (vb) [Seleccionar]
Private Sub lv_Click()
    Call MostrarDatos_Editar
    cmBuscar.Visible = False
    cmd(1).Enabled = False
    cmd(3).Enabled = True
End Sub

Saludos
« última modificación: Marzo 18, 2010, 02:39:30 pm por ssccaann43 »
Miguel Núñez.

FreddyJ

  • Kilobyte
  • **
  • Mensajes: 51
  • Reputación: +0/-2
    • Ver Perfil
Re:Error en Criterio..
« Respuesta #5 en: Marzo 19, 2010, 10:12:06 pm »
Gracias a todos por sus respuestas.