Botones de Opciones con Datagrid

Soy Juan Diego, estoy estudiando en la UTU estoy terminando el último año de informática, quede a examen con Programación por no haber terminado el proyecto y necesito mucha ayuda porque tengo bastantes errores y tengo una única oportunidad en febrero por eso empecé desde ahora a buscar ayuda.
Sí pierdo de nuevo repito todo el año, sino puedes ayudarme dime quién puede hacerlo, sí puedes ayudarme contestame.
Una de las cosas que necesito que me ayudes debo hacer un formulario con 4 botones de opciones, un datagrid y un adodc, que cuando haga click en una opción me aparezca la consulta que elegí, intenté esta codificación ¿será la correcta?
Private Sub Option1_Click()
    If Option1.Value = True Then
        DataGrid1.Caption = "Consultando Stock"
        Adodc1.CommandType = adCmdUnknown
        Adodc1.RecordSource = "Select * from Artículo"
    End If
End Sub
Private Sub Option2_Click()
    If Option2.Value = True Then
        DataGrid1.Caption = "Consultando Proveedor"
        Adodc1.CommandType = adCmdUnknown
        Adodc1.RecordSource = "Select Codigo_Articulo, Nombre_Articulo, Codigo_Proveedor, Nombre_Proveedor, Direccion_Proveedor, Telefono_Proveedor From Artículo, Proveedor, Detalle_Compra where Codigo_Proveedor=Cod_Prov and Codigo_Articulo=Cod_Art"
    End If
End Sub
Private Sub Option3_Click()
    If Option3.Value = True Then
        DataGrid1.Caption = "Consultar Compras de los Artículos"
        Adodc1.CommandType = adCmdUnknown
        Adodc1.RecordSource = "Select Codigo_Factura,Fecha_Compra,Codigo_Proveedor,Cantidad_Comprada,Precio_Compra,Subtotal,Descripción from Compras,Detalle_Compra where Codigo_Factura = Cod_Fact"
    End If
End Sub
Private Sub Option4_Click()
    If Option4.Value = True Then
        DataGrid1.Caption = "Consultar Ventas de los Artículos"
        Adodc1.CommandType = adCmdUnknown
        Adodc1.RecordSource = "Select Codigo_Venta, Fecha_Venta, Precio_Venta,Cantidad_Vendida,Codigo_Art,Subtotal,Descripcion From Ventas,Detalle_Venta where Codigo_Venta=Cod_Vent"
    End If
End Sub
Y no me aparecen las consultas en el datagrid, tampoco tengo conectado el adodc con la tabla porque no sé con que tabla conectarla, las tablas que tengo son: Proveedor, Artículo, Compras, Ventas, Detalle_Compra y Detalle_Venta
Sí puedes responder este mje te lo agradezco.

1 Respuesta

Respuesta
1
En ningún momento le dices al adodc que ejecute al consulta
Hola soy Juan Diego, estoy estudiando en la UTU estoy terminando el último año de informática, quede a examen con Programación por no haber terminado el proyecto y necesito mucha ayuda porque tengo bastantes errores y tengo una única oportunidad en febrero por eso empecé desde ahora a buscar ayuda.
Sí pierdo de nuevo repito todo el año, sino puedes ayudarme dime quién puede hacerlo, sí puedes ayudarme contestame.
Una de las cosas que necesito que me ayudes debo hacer un formulario con 4 botones de opciones, un datagrid y un adodc, que cuando haga click en una opción me aparezca la consulta que elegí, intenté esta codificación ¿será la correcta?
Private Sub Option1_Click()
    If Option1.Value = True Then
        DataGrid1.Caption = "Consultando Stock"
        Adodc1.CommandType = adCmdUnknown
        Adodc1.RecordSource = "Select * from Artículo"
    End If
End Sub
Private Sub Option2_Click()
    If Option2.Value = True Then
        DataGrid1.Caption = "Consultando Proveedor"
        Adodc1.CommandType = adCmdUnknown
        Adodc1.RecordSource = "Select Codigo_Articulo, Nombre_Articulo, Codigo_Proveedor, Nombre_Proveedor, Direccion_Proveedor, Telefono_Proveedor From Artículo, Proveedor, Detalle_Compra where Codigo_Proveedor=Cod_Prov and Codigo_Articulo=Cod_Art"
    End If
End Sub
Private Sub Option3_Click()
    If Option3.Value = True Then
        DataGrid1.Caption = "Consultar Compras de los Artículos"
        Adodc1.CommandType = adCmdUnknown
        Adodc1.RecordSource = "Select Codigo_Factura,Fecha_Compra,Codigo_Proveedor,Cantidad_Comprada,Precio_Compra,Subtotal,Descripción from Compras,Detalle_Compra where Codigo_Factura = Cod_Fact"
    End If
End Sub
Private Sub Option4_Click()
    If Option4.Value = True Then
        DataGrid1.Caption = "Consultar Ventas de los Artículos"
        Adodc1.CommandType = adCmdUnknown
        Adodc1.RecordSource = "Select Codigo_Venta, Fecha_Venta, Precio_Venta,Cantidad_Vendida,Codigo_Art,Subtotal,Descripcion From Ventas,Detalle_Venta where Codigo_Venta=Cod_Vent"
    End If
End Sub
Y no me aparecen las consultas en el datagrid, tampoco tengo conectado el adodc con la tabla porque no sé con que tabla conectarla, las tablas que tengo son: Proveedor, Artículo, Compras, Ventas, Detalle_Compra y Detalle_Venta
Sí puedes responder este mje te lo agradezco.
Hola, gracias por responder mi correo te quería preguntar justamente eso también porque no sé ejecutar el adodc a la consulta, te pido ¿sí podes darme una explicación de cómo hacerlo? Porque la verdad no sé hacerlo, sí contestas este mje te lo agradezco, la verdad quiero salvar la defensa de programación.
Yo jamas utilizo adodc porque es un complique después al querer hacer modificaciones pero creo que es con adodc.execute
Hola ralvadorot, de nuevo gracias por responderme, el problema de la ejecición de las consultas lo solucioné con adodc1.refresh después del recordsource. Pero ahora pensé en poner un inputbox para ingresar los artículos dentro del botón buscar:
Private Sub cmdbuscar_Click()
    ex = InputBox("Ingrese Artículo", "Buscando Artículo")
End Sub
Pero no sé cómo después de ingresar el artículo que cuando lo encuentre que marca la o las filas con respecto a ese artículo.
En los formularios uso esta codificación con sql para saber sí el proveedor o artículo ya existe:
com.CommandText = "Select * From Proveedor where Codigo_Proveedor=" + txtcod_prov + ""
    Set rst = com.Execute
    If Not rst.EOF Then
        MsgBox ("El Proveedor ya existe")
        rst.Close
        Me.txtcod_prov.Text = ""
        Me.txtcod_prov.SetFocus
        Exit Sub
    End If
    rst.Close
End Sub
¿tengo que usar esta codificación para que me marque la fila buscada?
sí fuera así tendría que hacer esto:
om.CommandText = "Select * From Proveedor where Codigo_Proveedor=" + txtcod_prov + ""
    Set rst = com.Execute
    If Not rst.EOF Then
¿Pero qué haría después?
Sí respondes este mje, te lo agradezco sino lo entenderé, saludos
Claro tienes que colocar un where a la consulta sql
Hola nuevamente gracias por responder mi mje, más o menos hice lo que me dijiste:
    ruta = InputBox("Ingrese Artículo", "Buscando Artículo")
    com.CommandText = "Select * from Artículo where Nombre_Artículo='" + ruta + "'"
    Set rst = com.Execute
    If Not rst.EOF Then
    Else
        MsgBox ("No existe el Artículo")
    End If 
Pero me salió un error diciendo que faltan aclarar parámentros y otra es que no sé que poner después del If para que me seleccione la o las filas que tengan el nombre del artículo ingresado. Sí respondes este mje te lo agradezco, saludos.
recores la grilla y si la fila cumple con lo que necesitas la seleccionas algo como datagrid.row(0).Selected = true
Debes activar que tengas selección múltiple a grilla
Hola ¿cómo estás? Nuevamente gracias por responder mi mje, hice más o menos lo que me dijiste pero el problema es que no funciona, me sale un error de arumentos y que faltan parámetros, espero tu respuesta, sí respondes este mje te lo agradezco, saludos.
Complicado si no me dices como o que estas haciendo, solo el mensaje del error, eso quiere decir que falta colocarle un parámetro al comando que estas ejecutando, y /o ademas, que el tipo de parámetro es invalido, por ejemplo, el parámetro espera un numero y le estas colocando una letra.
Hola ralvadorot, nuevamente gracias por responder mi mje, el tema es el siguiente: en un formulario tengo un datagrid, un adodc, dos botones y 4 botón de opciones, cada uno de los botones de opciones tiene una consulta SQL, la 1era opción es para saber la información de los artículos, la 2da opción es para saber a que proveedores se le compró tal artículo, la 3ra opción es para saber los datos referidos de la compra y la 4ta opción es para saber los datos referidos a la venta eso es con los botones de opciones, una vez que selecciono la opción que quiero, la información de la consulta seleccionada aparece en el datagrid, lo que quiero hacer es lo siguiente: cuando selecciono la opción y los datos aparecen en el datagrid, en el botón buscar hay un inputbox donde ingreso el artículo y ¿por qué el artículo? Porque es el campo común que está en las 4 consultas, luego ingreso el artículo y hago click en aceptar y cuando haga click en aceptar, que el datagrid marque la fila donde está el artículo que ingrese y eso es lo que quiero hacer.
Acá me mando la codificación de mi formulario Consultas:
Option Explicit
Dim com As New ADODB.Command
Dim cn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim ruta As String
Private Sub cmdatras_Click()
    ruta = MsgBox("¿Desea Volver al Menú Principal?", vbExclamation + vbYesNo, "Adverntncia")
    If ruta = vbYes Then
        Opciones.Show
        Unload Me
    End If
End Sub
Private Sub cmdbuscar_Click()
    ruta = InputBox("Ingrese Artículo", "Buscando Artículo")
    com.CommandText = "Select * from Artículo where Nombre_Artículo='" + ruta + "'"
    Set rst = com.Execute
    If Not rst.EOF Then
     'acá no sé que hacer 
    Else
        MsgBox ("No existe el Artículo")
    End If
End Sub
Private Sub Form_Load()
    ruta = App.Path & "\Proyecto.mdb"
    cn.ConnectionString = "Provider = Microsoft.jet.Oledb.4.0;Data source= " & ruta & "; persist security info = False"
    cn.Open
    rst.Open "Select * From Artículo", cn, adOpenDynamic, adLockOptimistic
    Set com = New ADODB.Command
    com.ActiveConnection = cn
End Sub
Private Sub Option1_Click()
    If Option1.Value = True Then
        DataGrid1.Caption = "Consultando Stock"
        Adodc1.ConnectionString = "DSN=sc"
        Adodc1.CommandType = adCmdUnknown
        Adodc1.RecordSource = "Select * from Artículo"
        Adodc1.Refresh
    End If
End Sub
Private Sub Option2_Click()
    If Option2.Value = True Then
        DataGrid1.Caption = "Consultando Proveedor"
        Adodc1.ConnectionString = "DSN=sc"
        Adodc1.CommandType = adCmdUnknown
        Adodc1.RecordSource = "Select Codigo_Articulo, Nombre_Articulo, Codigo_Proveedor, Nombre_Proveedor, Direccion_Proveedor, Telefono_Proveedor From Artículo, Proveedor, Detalle_Compra where Codigo_Proveedor=Cod_Prov and Codigo_Articulo=Cod_Art"
        Adodc1.Refresh
    End If
End Sub
Private Sub Option3_Click()
    If Option3.Value = True Then
        DataGrid1.Caption = "Consultar Compras de los Artículos"
        Adodc1.ConnectionString = "DSN=sc"
        Adodc1.CommandType = adCmdUnknown
        Adodc1.RecordSource = "Select Codigo_Factura,Fecha_Compra,Codigo_Proveedor,Cantidad_Comprada,Precio_Compra,Descripción from Compras,Detalle_Compra where Codigo_Factura = Cod_Fact"
        Adodc1.Refresh
    End If
End Sub
Private Sub Option4_Click()
    If Option4.Value = True Then
        DataGrid1.Caption = "Consultar Ventas de los Artículos"
        Adodc1.ConnectionString = "DSN=sc"
        Adodc1.CommandType = adCmdUnknown
        Adodc1.RecordSource = "Select Codigo_Venta, Fecha_Venta, Precio_Venta,Cantidad_Vendida,Codigo_Art,Descripcion From Ventas,Detalle_Venta where Codigo_Venta=Cod_Vent"
        Adodc1.Refresh
    End If
End Sub 
Sí respondes este mje te lo agradezco, saludos.
No se aque te refieres con "marcar", lo que te podría sugeriri es intentes cambiar el color de la fila en donde encuentres lo que estas buscando, por ejemplo.
Hola ¿cómo estás?, ¡Es Justamente lo que no sé!, no sé cambiar el color de la fila del datagrid en donde encuentro el artículo ya que tengo el nombre del artículo en las 4 consultas, además me sale un error diciendo que no se especificaron los valores para algunos de los parámetros requeridos, la verdad te pregunto porque no sé ni tengo idea de cómo hacerlo, sí respondes este mje te lo agradezco, saludos.
LA grilla tiene un objeto Row a ese objeto le cambias el backcolor para indicar que esta seleccionado.
Con respecto a parámetros requeridos quiere decir que lo que estas usando espera que le coloques un valor como parámetro y tu no lo estas haciendo
Hola, intenté con Datagrid1. Row.backcolor= vbred y me sale error de calificador no indicado,
luego intenté con DataGrid1. Row = DataGrid1.BackColor = vbRed y me sale el error que no se especificaron los valores para algunos de los parámetros requeridos
y el error del parámetro no sé resolverlo, sí respondes este mje te lo agradezco, saludos
No estas especificando el indice de la fila a la cual le vas a cambiar el color de fondo:
DataGrid1.Row(1).Backcolor= vbred
Con respecto a lo del parámetro debes verificar el tipo de datos que recibe el método que estas utilizando o llamando para poder enviarle un valor correcto, es como si tu te intentas comunicar es español con alguien que hable ingles, eso es lo que ue te pasa con el parámetro.
Hola amigo, intenté lo que me dijiste pero no funcionó, por cierto olvidé decirte que uso el visual basic 6.0, el access para la base de datos y el ADO, por favor respóndeme, gracias chau.
Complicado... no explicas la liena de código en donde da erorr, si lo da, ni el mensaje de error
Acá me marca el error en: Set rst = com.Execute y me aparece el error de los parámetros, por favor respondeme, gracias chau
¿Y los datos de lo que ejecuta com.Execute en donde están?
Hola, el com.Execute esnel botón buscar con esta codificación:
multiopcion = InputBox("Ingrese Artículo", "Buscando Artículo")
    com.CommandText = "Select * from Artículo where Nombre_Artículo=" + multiopcion + ""
    Set rst = com.Execute
    If Not rst.EOF Then
        DataGrid1.Row = vbRed
    Else
        MsgBox ("No existe el Artículo")
    End If
End Sub
Después del commnandtext está el com.Execute porque en el form_load esta la sgte codificación:
Set com = New ADODB.Command
    com.ActiveConnection = cnn
Que la uso para la conexión del comando y la verdad no sé solucionar ese error, por favor respóndeme, gracias chau
¿Multiopcion si lleva valores?
Hola, multiopcion es una variable string que la uso para msgbox para botones como atrás o para eliminar, ¿Acaso ese puede ser uno de los errores de la codificación? Por favor respóndeme, gracias chau
Estas filtrando por el nombre del producto cone sa variable...
Hola, te tengo buenas noticias solucioné el error de los parámetros ahora tengo sólo el error de "nñumero de fila incorrecto"y me marca en dónde subraye:
Private Sub cmdbuscar_Click()
    multiopcion = InputBox("Ingrese Artículo", "Buscando Artículo")
    sql.CommandText = "Select * from Artículo where Nombre_Articulo='" + multiopcion + "'"
    Set rst = sql.Execute
    If Not rst.EOF Then
        DataGrid1.Row = vbRed
    Else
        MsgBox ("No existe el Artículo")
    End If
End Sub
Y la verdad no sé cómo solucionarlo por favor respóndeme, gracias chau
Te recomiendo que leas y estudies el curso de VB6 del guille, lo encuentras en www.elguille.info
Te falta darle el indice a Datagrid. Rows(indice) y ademas asignarle el color a la propiedad correcta : BackColor.
Hola, te tengo buenas noticias logré actualizar el stock con Update en las compras y en las ventas, la mala noticia es que intenté hacer lo que me dijiste pero no funcionó, y no sé cómo solucionarlo por favor respóndeme, gracias chau
¿Mesaje de error? ¿Linea o lineas de código?
Hola Ralvadorot, intenté encarar de la siguiente manera y tampoco funcionó:
Private Sub cmdbuscar_Click()
    multiopcion = InputBox("Ingrese Artículo", "Buscando Artículo")
    sql.CommandText = "Select * from Artículo where Nombre_Articulo='" + multiopcion + "'"
    Set rst = sql.Execute
    If Not rst.EOF Then
        DataGrid1.Row(i).BackColor = vbRed
    Else
        MsgBox ("No existe el Artículo")
    End If
End Sub
La variable i es un integer o sea entera y el mje de error es el siguiente: " Numero de argumentos erróneo o asignación de propiedad no válida, pero ese no es mi único problema también para eliminar, en el formulario de los artículos y los proveedores uso está codificación:
Private Sub DataGrid1_DblClick()
    multiopcion = MsgBox("¿Desea Borrar?", vbExclamation + vbYesNo, "Advertencia")
    If multiopcion = vbYes Then
        If (Adodc1.Recordset.BOF And Adodc1.Recordset.EOF) Then
            Adodc1.Caption = "Vacio"
        Else
            Adodc1.Recordset.Delete
            Adodc1.Recordset.MoveFirst
        End If
    End If
End Sub
Funciona pero en el formulario compras y en el de ventas tengo 2 tablas juntas intenté de esta forma:
multiopcion = MsgBox("¿Desea Borrar?", vbExclamation + vbYesNo, "Advertencia")
    If multiopcion = vbYes Then
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveFirst
while not adodc1.recordset.eof
adodc2.recordset.delete
adodc2.recordset.movefirst
Y no funcionó intenté con el delete de sql en un formulario para borrar y borra todo, quiero que en el formulario de los artículos y los proveedores me borre la fila seleccionada pero en el de las compras que haga lo siguiente:
Que por el código de factura de la tabla compras me borre todos los detalles de la compras de la tabla detalle_compra que tengan el mismo código que el de la factura de la compra, y no sé cómo solucionarlo por favor respóndeme, gracias chau.
"no funciono" = error? cual es el mensaje...
Hola, no te enojes por lo que te diré pero la verdad estoy muy preocupado porque la defensa es en los 1eros días de febrero ¡Por favor ayudame! ¡Dame una codificación que te funcione! Porque cada vez se me acorta más y el que me puede ayudar sos vos, por favor respóndeme, gracias chau.
En el código i no veo que valor tiene, pues deberías hacerlo igual a la fila seleccionada en la grilla y eso no lo veo en ningún lado.
Lo otro es que yo no tengo instalado vb6 y te digo las cosas de memoria... si tu lo colocas tal cual como te lo digo 100% te dará error pues no estoy usando tus variables ni tu código, DEBES buscar si la sintaxis del comando es correcta y ubicar la correcta y aplicarla.
Hola, te tengo noticias el programa lo tengo casi terminado peor tengo un problema y es el Delete de SQL mira la codificación:
Private Sub txtproveedor_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        multiopcion = MsgBox("¿Desea Eliminar el Proveedor Seleccionado?", vbExclamation + vbYesNo, "Advertencia")
        If multiopcion = vbYes Then
            sql.CommandText = "Delete  from Proveedor where Codigo_Proveedor=" + Me.txtproveedor + ""
            Set rst = sql.Execute
            Adodc1.Refresh
            Adodc1.Refresh
            Adodc1.Refresh

        End If
    Me.txtproveedor.Text = ""
    End If
End Sub
El problema es que tengo que pulsar 2 enter porque no me elimina en un sólo enter y cuando es un enter sólo no me elimina el registro que quiero eliminar, ¿le falta algo por codificar o hay algñun error? Por favor respóndeme, gracias chau.
Lo siento, no se como solucionar tu problema

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas