Base de Datos TXT

Espero me ayudes, tengo varios días de buscar la respuesta, de antemano GRACIAS.
Tengo creado un UserForm en Visual Excel, que contiene campos de Datos, Nombre, ApePaterno, ApeMaterno, etc, con botones de Ingresos, Consultas, Grabar, Imprimir, etc. Actualmente estos se ingresan a una hoja de Excel pero ahora deseo que estos datos ya no queden registrados en la hoja.
¿Cuál es la rutina para que estos puedan ejecutarse al igual que excel, pero desde un archi de texto?

1 Respuesta

Respuesta
1
Tiendo la facilidad de las hojas de Excel, no se por que usar un TXT, pero cada quien tiene sus razones, solo que no es solo una rutina, sino varias y controlar completamente no es poco, estoy suponiendo que no tienes problemas con el manejo del código, en este, asumo lo siguiente...
Un UserForm
Un modulo de código
El UserForm tiene tres cuadros de texto y tres botones de comando
txtClave
txtNombre
txtTel
cmdAgregar
cmdSiguiente
cmdAnterior
Este es el código del Modulo
Option Explicit
Type Contacto
Clave As Integer
Nombre As String * 50
Tel As String * 15
End Type
Y este el el codigo del UserForm
Option Explicit
Dim strRuta As String
Dim Amigos() As Contacto
Dim NumReg As Long
Dim TamReg As Integer
Dim Pos As Integer
Private Sub cmdAgregar_Click()
NumReg = NumReg + 1
ReDim Preserve Amigos(NumReg - 1)
Amigos(NumReg - 1).Clave = Trim(txtClave.Text)
Amigos(NumReg - 1).Nombre = Trim(txtNombre.Text)
Amigos(NumReg - 1).Tel = Trim(txtTel.Text)
VaciaCajas
txtClave.SetFocus
End Sub
Private Sub cmdAnterior_Click()
Pos = Pos - 1
If Pos = 0 Then Pos = 1
MostrarRegistro Pos
End Sub
Private Sub cmdSiguiente_Click()
Pos = Pos + 1
If Pos > NumReg Then Pos = NumReg
MostrarRegistro Pos
End Sub
Private Sub UserForm_Initialize()
Dim TamArchivo As Long
Dim Libre As Integer
Dim co1 As Integer
strRuta = ThisWorkbook.Path & "\Datos.txt"
If Len(Dir(strRuta)) > 0 Then
Libre = FreeFile
TamReg = Len(Amigos(0))
Open strRuta For Random As Libre Len = TamReg
TamArchivo = LOF(Libre)
NumReg = TamArchivo \ TamReg
ReDim Amigos(NumReg - 1)
For co1 = 0 To NumReg - 1
Get #Libre, co1 + 1, Amigos(co1)
Next co1
Close #Libre
Pos = 1
MostrarRegistro Pos
Else
MsgBox "NO existe archivos de datos"
End If
End Sub
Private Sub UserForm_Terminate()
Dim Libre As Integer
Dim co1 As Integer
If NumReg > 0 Then
Libre = FreeFile
Open strRuta For Random As Libre Len = TamReg
For co1 = 0 To NumReg - 1
Put #Libre, co1 + 1, Amigos(co1)
Next co1
Close #Libre
Else
MsgBox "NO hay datos para guardar"
End If
End Sub
Private Sub VaciaCajas()
txtClave.Text = ""
txtNombre.Text = ""
txtTel.Text = ""
End Sub
Private Sub MostrarRegistro(ByVal Numero As Integer)
txtClave.Text = Amigos(Numero - 1).Clave
txtNombre.Text = Trim(Amigos(Numero - 1).Nombre)
txtTel.Text = Trim(Amigos(Numero - 1).Tel)
End Sub
Con este código puedes agregar registros a un archivo de texto, moverte atrás y adelante, faltaría implementar BUSCAR, ELIMINAR, EDITAR, pero esa es tu tarea...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas