Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Guardar datos de un MSFlexGrid en una tabla de una base de datos, ¿misión imposible?

Estas en el tema de Guardar datos de un MSFlexGrid en una tabla de una base de datos, ¿misión imposible? en el foro de Visual Basic clásico en Foros del Web. Hola amigos. Como he comentado en anteriores ocasiones, estoy comenzando a trabajar con Visual Basic y con el bendito MSFlexGrid. Estoy tratando de guardar los ...
  #1 (permalink)  
Antiguo 01/12/2009, 17:46
 
Fecha de Ingreso: marzo-2009
Mensajes: 61
Antigüedad: 15 años, 1 mes
Puntos: 0
Guardar datos de un MSFlexGrid en una tabla de una base de datos, ¿misión imposible?

Hola amigos.
Como he comentado en anteriores ocasiones, estoy comenzando a trabajar con Visual Basic y con el bendito MSFlexGrid.

Estoy tratando de guardar los datos que yo mismo escribo en el MSFlexGrid en una base de datos, más precisamente en una tabla llamada ventas.

En el MsFlexGrid tengo los siguientes campos: Cliente, Cantidad, Detalle, Precio Unitario y por último Importe.
Una vez que lleno esos datos, la idea es guardarlos en la tabla ventas de una BD.

Para ser más específico, lo que yo escriba en Cliente, Cantidad, Detalle, Precio Unitario e Importe del MSFlexGrid debe guardarse en los campos Cliente, Cantidad, Detalle, PrecioUnitario y por último Importe de la tabla ventas de mi base de datos.

Cabe destacar que trabajo con una base de datos Acces.

El número de filas que va a contener el FlexGrid dependerá de la cantidad de registros que el usuario quiera agregar. O sea, de la cantidad de artículos que el usuario cargue en el FlexGrid.

Un saludo!!
  #2 (permalink)  
Antiguo 02/12/2009, 07:47
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Guardar datos de un MSFlexGrid en una tabla de una base de datos, ¿misión

lo que pretendes hacer no es nada dificil, solo es cuestion de jugar un poco con el msflexgrid lo que tienes que hacer es hacer un INSERT igual que haces cuando agregas información a cualquier tabla un ejemplo seria asi:

suponiendo que ya esta hecha tu conexión a la base de datos y tu MsFlexGrid ya esta lleno entonces agregamos esta linea de comando y con esto queda super artirecontrabien.

Código:
For Fila = 1 To MSFlexGrid.Rows - 1
   cnn.Execute "INSERT INTO Ventas(Cliente, Cantidad, Detalle, PrecioUnitario , Importe) VALUES ('" & _
                MSFlexGrid.TextMatrix(Fila, 0) & "', '" & MSFlexGrid.TextMatrix(Fila, 1) & "', '" & _
                MSFlexGrid.TextMatrix(Fila, 2) & "', '" & MSFlexGrid.TextMatrix(Fila, 3) & "',  '" & _
                MSFlexGrid.TextMatrix(Fila, 4) & "')"
Next Fila
Esa es la idea con eso lo que haces es recorrer el MsFlexGrid y te va guaradando de uno en uno en tu base de datos, suponiendo que te queda una linea en blanco porque creo que estas agregando los datos al Flex entonces tendrias que cambiar esto:

Código:
For Fila = 1 To MSFlexGrid.Rows - 1
Por este otro
Código:
For Fila = 1 To MSFlexGrid.Rows - 2
Bueno espero te sirva si no ya nos contaras. hasta pronto
  #3 (permalink)  
Antiguo 02/12/2009, 13:20
 
Fecha de Ingreso: marzo-2009
Mensajes: 61
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Guardar datos de un MSFlexGrid en una tabla de una base de datos, ¿misión

Muchas gracias de verdad!!!
Pero ahora hay otro problema (siempre me pasa lo mismo)
Resulta que cuando vendo artículos la idea es que el stock de esos artículos se resten según la cantidad que vendí. Para ello utilizo este codigo:
Código:
' grabar factura
For fila = 1 To Grid1.Rows - 1
   CnN.Execute "INSERT INTO ventas(Cliente, CantidadVendida, Detalle, Precio , PrecioTotal, NumeroFactura, Codigo, Fecha, Unidad) VALUES ('" & _
                Grid1.TextMatrix(fila, 0) & "', '" & Grid1.TextMatrix(fila, 1) & "', '" & _
                Grid1.TextMatrix(fila, 2) & "', '" & Grid1.TextMatrix(fila, 3) & "',  '" & _
                Grid1.TextMatrix(fila, 4) & "', '" & Grid1.TextMatrix(fila, 5) & "', '" & Grid1.TextMatrix(fila, 6) & "', '" & Grid1.TextMatrix(fila, 7) & "', '" & Grid1.TextMatrix(fila, 8) & "')"
Next fila
' leer codigo de stock
For fila = 1 To Grid1.Rows - 1
    datos = "select * from stock where codigo = '" & Grid1.TextMatrix(fila, 6) & "' "
Next fila
    tablas_apertura1.Open datos, conexion_basedatos
    tengo = tablas_apertura1!cantidad
    tablas_apertura1.Close

' restar stock
For fila = 1 To Grid1.Rows - 1
 queda = tengo - " & Grid1.TextMatrix(fila, 1) & "
Next fila

' regraba nueva cantidad
For fila = 1 To Grid1.Rows - 1
datos = "Update stock set cantidad = " & queda & " where codigo = '" & Grid1.TextMatrix(fila, 6) & "' "
conexion_basedatos.Execute datos
Next fila
Antes funcionaba bien, pero ahora que uso el MSFlexGrid me aparece el siguiente error:

Y si le doy a Depurar me marca la siguiente línea:


Antes trabajaba con TextBOXs en vez de FlexGrids y el código funcionaba

Disculpen las molestias!

Un saludo y muchas gracias.

+1 de karma para SalomonSab!
  #4 (permalink)  
Antiguo 02/12/2009, 16:32
 
Fecha de Ingreso: marzo-2009
Mensajes: 61
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Guardar datos de un MSFlexGrid en una tabla de una base de datos, ¿misión

Mejor lo posteo en un tema nuevo ya que es una duda diferente.
Un saludo!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:33.