Ver Mensaje Individual
  #10 (permalink)  
Antiguo 16/04/2006, 19:08
vvictoristudio
 
Fecha de Ingreso: noviembre-2005
Mensajes: 43
Antigüedad: 18 años, 5 meses
Puntos: 0
Sonrisa Prueba con un Array dinámico

Aquí te paso un ejemplo para que lo analices y veas si puede ayudarte con tu problema.

Option Explicit
'Creo la estructura TDatos
Private Type TDatos
Nombre As String
Edad As Integer
Promedio As Long
End Type

'Declaración de la variable contador
Dim Cont As Integer

'Este es mi array dinámico una variable de tipo TDatos
Dim Registro() As TDatos

'En el boton 1 Agregar nuevo registro
Private Sub Command1_Click()
'Incremento la variable contador
Cont = Cont + 1
'Redimensiono el array con la cantidad de registros actuales
ReDim Preserve Registro(Cont)
'Voy introduciendo los datos necesarios
Registro(Cont).Nombre = txtNombre
Registro(Cont).Edad = txtEdad
Registro(Cont).Promedio = txtPromedio
'Agrego a un ListBox lo que está en TextBox (txtNombre)
List1.AddItem txtNombre
End Sub

'Boton 2 Muestra el resumen del registro seleccionado en el ListBox
Private Sub Command2_Click()
Dim i As Integer
Dim Msg
If List1.ListIndex > -1 Then
'Recorro la cantidad de registros que hay
For i = 0 To Cont
If List1.List(List1.ListIndex) = Registro(i).Nombre Then
Msg = "No: " & i & vbCrLf
Msg = Msg & "Nombre: " & Registro(i).Nombre & vbCrLf
Msg = Msg & "Edad: " & Registro(i).Edad & vbCrLf
Msg = Msg & "Promedio: " & Registro(i).Promedio & vbCrLf
Exit For
End If
Next i
MsgBox Msg
Else
MsgBox "Debe seleccionar un elemento de la lista.", vbExclamation + vbOKOnly, "Mostrar"
End If
End Sub

'Boton 3 Salir del programa
Private Sub Command3_Click()
Unload Me
End
End Sub

'Boton 4 Borrar registros
Private Sub Command4_Click()
Dim i As Integer, R As Integer
'Verificar si hay algún elemento seleccionado
If List1.ListIndex > -1 Then
For i = 0 To Cont
If List1.List(List1.ListIndex) = Registro(i).Nombre Then
Exit For
End If
Next i
'Verifico si la variable i es mayor que la cantidad de registros
If i > Cont Then Exit Sub
For R = i To Cont - 1
'Elimino el registro seleccionado y actualizo los registros existentes
Registro(R) = Registro(R + 1)
Next R
'Disminuyo un registro
Cont = Cont - 1
'Elimino el elemento seleccionado de la lista
List1.RemoveItem List1.ListIndex
Else
'Por si no hay ningún elemento seleccionado
MsgBox "Debe seleccionar un elemento de la lista.", vbExclamation + vbOKOnly, "Borrar"
End If
End Sub


Espero que puedas sacar algo de esto... y que tengas suerte.
Puedes escribirme a mi correo [email protected] para intercambiar ideas. Nos vemos.