Visual Basic Agenda Con Archivos Aleatorio
Enviado por melgareh • 9 de Mayo de 2013 • 2.065 Palabras (9 Páginas) • 1.019 Visitas
Agenda muy simple en Visual basic utilizando Ficheros de acceso aleatorio o también denominados Random , para almacenar los datos de los contactos de la Agenda.
Una vista del ejemplo:
Para manipular los datos se utiliza una estructura o UDT que tiene las siguientes variables:
Texto planoImprimir
1. ' Estructura para los datos de los contactos de la agenda
2. Private Type Contacto
3. Nombre As String * 40
4. Apellido As String * 50
5. Telefono As String * 40
6. Mail As String * 70
7. Nota As String * 250
8. End Type
Como se puede ver en la imagen, tiene una opción para buscar un registro y especificar por que campo buscar, ya sea por el nombre del contacto, el Apellido, el telefono o el correo electrónico.
________________________________________
Pasos a seguir para armar el formulario con los controles:
Agregar en un Formulario 6 controles TextBox con los siguiente nombres:
1. txtNombre
2. txtApellido
3. txtTelefono
4. txtMail
5. txtNota
6. txtBuscar
Luego agregar 7 CommandButton con los siguientes nombres:
1. CmdAnterior : Botón para ir al anterior registro
2. cmdSiguiente : Botón para ir al siguiente registro
3. cmdGuardar : Botón para guardar los cambios cuando se seleccionó previamente la opción Nuevo Registro
4. cmdEliminar: Elimina el registro actual
5. cmdNuevo : Añade un nuevo reg
6. cmdBuscar : Para buscar
7. Cmdsalir : Descarga el Form
Ahora, agregar un control ComboBox llamado Combo1. A este combo, establecerle en la propiedad Style el valor 2 ( DropDownList ) y agregarle los siguientes valores en la propiedad List: Nombre, Apellido, Telefono e Mail en ese orden
Nota: Para agregar datos en la propiedad List desde la ventana de propiedades, debes mantener la tecla Ctrl presionada y presionar la tecla Enter para añadir un nuevo dato o Item.
Por último, agregar un control Label llamado lblStatus que servirá para poder mostrar cuando nos desplazamos por los registros, con los botones anterior y siguiente, el número del registro actual y la cantidad de registros que hay en el archivo. Este Label lo puedes situar en la parte inferior del formulario o donde quieras.
Colocar el código fuente en el formulario:
Texto planoImprimir
1. Option Explicit
2.
3. 'Variables
4. '##################################################
5.
6. ' Estructura para los datos de los contactos de la agenda
7. Private Type Contacto
8. Nombre As String * 40
9. Apellido As String * 50
10. Telefono As String * 40
11. Mail As String * 70
12. Nota As String * 250
13. End Type
14.
15. 'Variables para utilizar la estructura anterior
16. Dim Datos As Contacto
17. Dim DatosTemp As Contacto
18.
19. 'Variables para el archivo de los datos de contacto y temporal
20. Dim FileFree As Integer
21. Dim FileTemp As Integer
22.
23. 'Variables para la posición del primer y último registro
24. Dim RegActual As Long
25. Dim RegUltimo As Long
26. ' Variable para la posición Temporal del registro
27. Dim RegActualTemp As Long
28.
29. Dim Pos As Integer, p As Integer
30.
31.
32.
33.
34. '######################################################
35. 'Funciones y procedimientos
36. '######################################################
37.
38.
39.
40. ' Subrutina que guarda los datos en el archivo
41. '#############################################
42.
43. Private Sub GuardarDatos()
44.
45. 'Asignamos los datos de la estructura con el contenido de los textBox
46. With Datos
47.
48. .Nombre = txtNombre.Text
49. .Apellido = txtApellido
50. .Telefono = txtTelefono.Text
51. .Nota = txtNota.Text
52. .Mail = Trim(txtMail)
53.
54. End With
55.
56. 'Escribimos los datos en el archivo y en la posición
57. Put #FileFree, RegActual, Datos
58. End Sub
59.
60. ' Subrutina que Visualiza los datos en los textBox
61. '##################################################
62.
63. Private Sub VisualizarDatos()
64.
65. 'Lee del fichero en el registro posicionado y almacena los datos_ _
66. en la la variable UDT
67. Get #FileFree, RegActual, Datos
68.
69. ' Mostramos los datos en las cajas de texto
70. With Datos
71. txtApellido = Trim(.Apellido)
72. txtNombre = Trim(.Nombre)
73. txtTelefono = Trim(.Telefono)
74. txtMail = Trim(.Mail)
75. txtNota.Text = Trim(.Nota)
76. End With
77.
78. 'Mostramos en el control Label la posición del registro actual _
79. y la cantidad o Total de registros que hay en el archivo
80. lblStatus.Caption = "Registro Actual: " & CStr(RegActual) & vbNewLine _
81. & " Total de registros: " & CStr(RegUltimo)
82.
83. End Sub
84.
85. 'Botón que elimina un registro del archivo
86. '############################################
87.
88. Private Sub cmdEliminar_Click()
89.
90. Pos = RegActual
91.
92. If MsgBox(" Está seguro de eliminar el contacto ? ", vbYesNo) = vbNo Then
93.
94. txtNombre.SetFocus
95.
96. Exit Sub
97. End If
98.
99. ' Verificamos que el archivo temporal no exista, si existe se elimina
100. If Dir("Temporal.tmp") = "Temporal.tmp" Then
101. Kill "Temporal.tmp"
102. End If
103.
104. FileTemp = FreeFile
105. 'Abrimos y creamos un nuevo fichero temporal
106. Open "Temporal.tmp" For Random As FileTemp Len
...