Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/09/2008, 04:10
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 2 meses
Puntos: 37
Respuesta: Pasar datos de una grilla a base de datos

Cita:
Iniciado por manumaf Ver Mensaje
Hola a todos, yo en mi formulario tengo la siguiente grilla:

Código:
  With fgDetalles
    .Clear
    .Rows = 1
    .Cols = 5
    .TextMatrix(0, 0) = "idArticulo"
    .ColWidth(0) = 0
    .TextMatrix(0, 1) = "Articulo"
    .ColWidth(1) = 2000
    .TextMatrix(0, 2) = "Cantidad"
    .ColWidth(2) = 500
    .TextMatrix(0, 3) = "$ Unit."
    .ColWidth(3) = 1000
    .TextMatrix(0, 4) = "$ Detalle"
    .ColWidth(4) = 1000
    End With

Con unos campos de texto y un boton agregar le agrego datos a la grilla.

Boton agregar:
Código:
fgdetalles.AddItem cmbArticulo.ItemData(cmbArticulo.ListIndex) & vbTab & cmbArticulo & vbTab & txtCantidad & vbTab & txtMontoUnitario & vbTab & txtMontodetalle
Siendo fgdetalles el nombre de la grilla.


Lo que yo quiero lograr es que al hacer clic en otro boton por ejemplo el boton "aceptar" los datos que estan temporalmente en la grilla se copien en una base de datos, sabiendo ya que tengo la conexión a la base de datos y todo eso, ¿Como seria la sintaxis del codigo para agregar los datos que estan temporalmente en la grilla a la base de de datos?


Muchisimas gracias
Hola, una forma podría ser esta

Código:
Private Sub cmdGuardar_Click()
Dim i As Integer, sql As String

With fgDetalles
    For i = 1 To .Rows - 1
        sql = "INSERT INTO LaTabla VALUES(" & _
        "" & .TextMatrix(i, 0) & ",'" & .TextMatrix(i, 1) & "'," & .TextMatrix(i, 2) & "," & _
        "" & .TextMatrix(i, 3) & "," & .TextMatrix(i, 4) & ")"
        cn.Execute sql
    Next i
End With
MsgBox "Datos guardados"
End Sub
(sustituye lo marcado en rojo por el nombre de tu tabla y conexión)

Nota: Suponemos que todos los campos son numéricos, excepto el campo 'Articulo' y también que la tabla tiene los mismos campos que los valores, si no es así, deberás declarar los campos:

INSERT INTO LaTabla (Campo1, Campo2...) VALUES(Variable1, Variable2...)