Ver Mensaje Individual
  #13 (permalink)  
Antiguo 05/02/2010, 11:25
Avatar de fradve
fradve
 
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años
Puntos: 7
Respuesta: Almacenamiento de varios registros.

mira ya probé el código, porque en verdad que se me hace raro que no te funcione o mejor dicho que no guarde entonces aqui te pongo el codigo que usé:

Todo esto primero:

Código vb:
Ver original
  1. Private Type Productos
  2.     codigo As Integer
  3.     nombre As String
  4. End Type
  5.  
  6. Dim tabla() As Productos
  7.  
  8. Dim cn As ADODB.Connection
  9. Dim res As ADODB.Recordset
  10. Dim conexion As String

Luego:

el botón guardar solo llama a la función guardar

Código vb:
Ver original
  1. Private Sub Command2_Click()
  2.     guardar
  3. End Sub

Código vb:
Ver original
  1. Sub guardar()
  2.     Set res = New ADODB.Recordset
  3.  
  4.     For i = 0 To UBound(tabla) - 1
  5.         With res
  6.             .ActiveConnection = cn
  7.             .CursorLocation = adUseClient
  8.             .CursorType = adOpenStatic
  9.             .LockType = adLockOptimistic
  10.             .Open "INSERT INTO productos VALUES (" & tabla(i).codigo & ",'" & tabla(i).nombre & "')"
  11.         End With
  12.     Next
  13.    
  14.     res.Open "SELECT * FROM productos"
  15.     Set DataGrid1.DataSource = res
  16. End Sub

en el load del formulario coloco esto:

Código vb:
Ver original
  1. Private Sub Form_Load()
  2.    
  3.     Set cn = New ADODB.Connection
  4.     conexion = "driver={MySQL ODBC 3.51 Driver};" _
  5.                         & "SERVER=localhost;" _
  6.                         & "DATABASE=prueba;" _
  7.                         & "UID=root;PWD=utm123;OPTION=3"
  8.                            
  9.     cn.ConnectionString = conexion
  10.     cn.Open
  11.     ReDim tabla(0)
  12.     List1.AddItem "Jamón"
  13.     List1.AddItem "Carne"
  14.     List1.AddItem "Leche"
  15.     List1.AddItem "Queso"
  16. End Sub

En el evento clic de la lista va esto:

Código vb:
Ver original
  1. Private Sub List1_Click()
  2.     Dim bandera As Boolean
  3.    
  4.     Text1.Text = List1.ListIndex
  5.     For f = 0 To UBound(tabla) - 1
  6.         If tabla(f).codigo = Val(Text1.Text) Then
  7.             bandera = True
  8.             Exit For
  9.         End If
  10.     Next f
  11.    
  12.     If Not bandera Then
  13.         f = UBound(tabla)
  14.         tabla(f).codigo = Val(Text1.Text)
  15.         tabla(f).nombre = List1.Text
  16.         ReDim Preserve tabla(f + 1)
  17.     Else
  18.         MsgBox "El valor ya ha sido agregado"
  19.     End If
  20. End Sub

y en el unload del formulario cierro la conexión así: cn.close.

Si te fijas en la funcion guardar hace referencia a un data grid, simplemente lo coloqué para visualizar los datos que se han guardado.

Y eso es todo, prueba y comentas lo que suceda
__________________
En programación hay mil y un formas de hacer lo mismo...

Última edición por fradve; 05/02/2010 a las 11:26 Razón: highlight