** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Visual Basic 6 y archivos aleatorios
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Visual Basic 6 y archivos aleatorios

 Responder Responder
Autor
Mensaje
Edge Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 31/Agosto/2025
Localización: Argentina
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Edge Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Visual Basic 6 y archivos aleatorios
    Enviado: 31/Agosto/2025 a las 05:03
Buenas!!! como andan?? disculpen las molestias pero les hago la siguiente consulta. Estoy haciendo un proyecto en Visual Basic 6 y archivos aleatorios. Cuestion de que, a la hora de hacer una busqueda, me figura que no existe el registro y se que esta dicho registro. Adjunto el codigo que estoy usando, son 6 datos: documento, nombre, apellido, direccion, telefonos y notas. La idea es que busque por documento!! desde ya, muchisimas gracias.

Codigo usado de busqueda:
Dim Encontrado As Boolean, PosReg As Long
  
If Txtbuscar = "" Then Txtnombre.SetFocus: Exit Sub
  
Encontrado = False
  
'Recorremos desde el primer hasta el último en busca del registro a buscar
  
For PosReg = 1 To RegUltimo
  
'Leemos el registro
Get #1, PosReg, contacto
  
'Si es el dato es igual salimos del bucle
If UCase(Txtbuscar) = UCase(Trim(T_contacto)) Then
    Encontrado = True
    Exit For
End If
  
Next
  
If Encontrado Then
      
    RegActual = PosReg
    'Cargamos los datos en los text
    VisualizarDatos
  
Else
    MsgBox "DNI: " & Txtbuscar & " No se ha encontrado el registro"
End If
Txtnombre.SetFocus
  
End Sub

Private Sub VisualizarDatos()
  
'Lee del fichero en el registro posicionado y almacena los datos_ _
en la la variable UDT
Get #1, RegActual, contacto
  
' Mostramos los datos en las cajas de texto
With Datos
    Txtdocumento = Trim(.Documento)
    Txtnombre = Trim(.Nombre)
    Txtapellido = Trim(.Apellido)
    Txtdireccion = Trim(.Direccion)
    Txttelefono = Trim(.Telefono)
    Txtnotas.Text = Trim(.Notas)
End With
  
'Mostramos en el control Label la posición del registro actual _
y la cantidad  o Total de registros que hay en el archivo
LblStatus.Caption = "Registro Actual: " & CStr(RegActual) & vbNewLine _
                    & " Total de registros: " & CStr(RegUltimo)
  
End Sub

JME
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita xavi Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Septiembre/2025 a las 09:34
Hola,

Y el problema, exactamente, ¿Cuál es?

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
Edge Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 31/Agosto/2025
Localización: Argentina
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Edge Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 05/Septiembre/2025 a las 00:52
Hola, si lees bien, el problema radica en que usando ese codigo para que busque un registro existente y lo cargue en el textbox correspondiente, me aparece un msgbox diciendo que no existe el registro cuando se que esta cargado. Saludos
JME
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita xavi Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 05/Septiembre/2025 a las 10:54
Hola,

He leído bien el mensaje y varias veces, gracias. Lo que me costó de pillar fue la expresión "me figura que no existe el registro y se que esta dicho registro". Tal como lo has explicado ahora está mucho más claro.

La única forma de que aparezca el mensaje es cuando la variable Encontrado es False. 
Para que sea False la condición dónde comparas el Txtbuscar con t_contacto debe ser falso
Para que se ejecute esa condición debe estar dentro del bucle For..Next
Para que se entre en ese bucle la variable RegUltimo debe tener valor (cosa que no veo)

Te recomiendo poner un punto de interrupción y ejecutar paso a paso por instrucciones para ver si cada línea hace lo que esperas que haga.

Mis sospechas son:
- RegUltimo no tiene valor --> no ejecuta bucle --> Encontrado = False --> MsgBox
- El valor que buscas no existe en realidad
- El valor está escrito de forma ligeramente distintas (acentos, espacios)

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
Edge Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 31/Agosto/2025
Localización: Argentina
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Edge Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 05/Septiembre/2025 a las 19:15
Hola Xavi, mil disculpas por mi forma de hablar. Te explico, tenemos una forma (pesima diria) de hablar en la que creemos (soberbia pura) que esta por sobreentendido como nos expersamos nosotros por todo aquel de habla española/latina/neutra o como quieras denominarla, cuando en realidad nos deberíamos poner primero en el lugar del otro. Mas aún por una "locura" interna que me tiene a mal traer desde hace tiempo sin poder solucionar que el botón o comando de busqueda funcione, siendo el único que me falta para terminar. Asi que, me disculpo de antemano por mi exabrupto. Intentare de la forma que decis. Desde ya, mil disculpas por todo, muchas gracias por tu tiempo, por tu respuesta y un abrazo enorme
JME
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable