Necesito ayuda sentencia de visual basic

Cerrado
manuellongo Mensajes enviados 1 Fecha de inscripción lunes, 30 de mayo de 2016 Estatus Miembro Última intervención lunes, 30 de mayo de 2016 - 30 may 2016 a las 13:38
 Blanca_Monroy - 16 jun 2016 a las 16:18
Hola,

soy alumno de una escuela secundaria y estoy haciendo un trabajo el cual involucra base de datos. Estoy trabado en un error que no encuentro solucion y no puedo preguntarle a mi profesor. El error me aparece en la funcion actualizar, que tiene que cambiar el valor del stock de una base de datos de access por el numero que escribo en el txt del programa
La funcion es asi

Public Sub Actualizar(ByRef tabla As String, ByRef producto As String)

cmd.Connection = conn
cmd2.Connection = conn
cmd.CommandType = CommandType.Text
cmd2.CommandType = CommandType.Text
Dim cant As Integer
Try

conn.Open()
cmd.CommandText = "SELECT Stock FROM " & tabla & " WHERE modelo=" & producto
MsgBox(cmd.CommandText)
dr = cmd.ExecuteReader
cant = Val(dr(0)) - Val(frmregistrar.TxtCantidad.Text)
MsgBox(cant)

cmd2.CommandText = "UPDATE Stock SET stock=" & cant & " WHERE modelo=" & producto
cmd2.CommandType = CommandType.Text
dr.Close()
conn.Close()
Catch ex As Exception
MsgBox(ex.Message)

End Try
End Sub

si me pueden ayudar, desde ya muchas gracias
saludos

2 respuestas

Emmanuel Granados Sandoval
3 jun 2016 a las 06:48
Especifica el gestor de base de datos estas ocupando para poder ayudarte y como realizas la coneccion no tienes parámetros de coneccion "localhost" privilegios "root" [contraseña] "" y el nombre de la base de datos.

una de las partes con error es en la parte de tu consulta tenes que cerrar la consulta ""

cmd.CommandText = "SELECT Stock FROM " & tabla & " WHERE modelo=" & producto "
MsgBox(cmd.CommandText)
dr = cmd.ExecuteReader
cant = Val(dr(0)) - Val(frmregistrar.TxtCantidad.Text)
MsgBox(cant)
cmd2.CommandText = "UPDATE Stock SET stock=" & cant & " WHERE modelo=" & producto "

no necesariamente tienes que hacer dos cmd puedes usar la misma para ambos
0
Blanca_Monroy
16 jun 2016 a las 16:18
En tu código no entiendo si "Modelo" es tu atributo de llave primaria o un atributo normal

Para una consulta UPDATE es necesario que en el WHERE especifiques la llave primaria de tu tabla

"UPDATE Stock SET stock=" & cant & " WHERE idStock=" & id "

para que el gestor de Base de Datos sepa que línea es la que tiene que modificar
0