border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 30-09-2003, 01:00:00
Un Nuevo Amigo
 
Registrado: oct 2003
Posts: 15
Chileno123456 Valoración +2
Predeterminado Problemas con archivo aleatorio

Problemas con archivo aleatorio

Hola amigos:

Tengo un problema esta cadena, mas abajo les pongo el codigo espero me tengan paciencia
Estoy tratando de hacer una consulta especifica a un archivo aleatorio en el cual los creo e ingreso Nombre - Apellido - Edad y quiero consultar por el apellido pero si el apellido no es = debe rechazar de lo contrario me debe mostrar los tres campos

el problema es que si ingreso un apellido que no corresponde a la consulta igual me muestra los datos almacenados donde esta el problema?


Option Explicit
Private Type T_Persona

Nombre As String * 20
Apellido As String * 20
Edad As Byte

End Type
Dim Persona As T_Persona


Private Sub cmd_agregar_Click()

se habilitan los TextBox para el ingreso de datos

txtnombre.Enabled = True
txtnombre.SetFocus
txtapellido.Enabled = True
txtedad.Enabled = True
txtnombre.BackColor = &H8000000E
txtapellido.BackColor = &H8000000E
txtedad.BackColor = &H8000000E
cmd_grabar.Enabled = True

End Sub

Private Sub cmd_Consultar_Click()

AQUI TENGO EL DRAMA

If (txt_consulta = "" Then Si no hay dato para consulta entonces mensaje
MsgBox "Ingrese un nombre para realizar la consulta", vbCritical, "Dato incompleto"
End If

Open "C:info.dat" For Random As #1 Len = Len(Persona) Abro el archivo con el tamaño indicado las variables Type que puse en General

Get #1, , Persona leo el archivo

If Val(Persona.Apellido) <> Val(txt_consulta) Then hago la Comparacion de la posicion Persona.Apellido
MsgBox "El nombre no existe", vbInformation, "Informe" Si el apellido no es igual mensaje
txt_consulta = ""
txt_consulta.SetFocus

Close

Else

Pero si es igual muestre los datos correspondientes al apellido

txtnombre.Text = Persona.Nombre
txtapellido.Text = Persona.Apellido
txtedad.Text = Persona.Edad

Close

End If
End Sub

Private Sub cmd_grabar_Click()
AQUI NINGUN DRAMA
If (txtnombre = "" Or (txtapellido = "" Or (txtedad = "" Then Me aseguro que los datos esten completos
MsgBox "Debe ingresar los datos del cliente", vbCritical, "Error" Si no es asi, mensaje
End If

Open "C:info.dat" For Random As #1 Len = Len(Persona) Abrimos el archivo

Asigno los TextBox a los campos

Persona.Nombre = txtnombre.Text
Persona.Apellido = txtapellido.Text
Persona.Edad = Val(txtedad.Text)

Grabamos los datos
Put #1, 1, Persona

Close Cierro todos los archivos abiertos

txtnombre.Text = ""
txtapellido.Text = ""
txtedad.Text = ""
txtnombre.Enabled = False
txtapellido.Enabled = False
txtedad.Enabled = False
txtnombre.BackColor = &H8000000F
txtapellido.BackColor = &H8000000F
txtedad.BackColor = &H8000000F
cmd_grabar.Enabled = False

End Sub

Private Sub cmd_Salir_Click()

Unload Me

End Sub

Private Sub Form_Load()

Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2


End Sub

Por favor Que esta pasando? ,y no se que hacen esas caritas en medio de mi codigo Ja, Ja, Ja.... ah, son las comillas y los cierre de parentesis, que los asumio como caritas ja, ja, ja.............

Editado por Chileno123456, Sabado, 25 de Octubre de 2003, 13:01</TR>
Responder Con Cita
  #2 (permalink)  
Antiguo 17-09-2004, 01:00:00
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.307
acalanto ha deshabilitado la reputación
Predeterminado RE: Problemas con archivo aleatorio

RE: Problemas con archivo aleatorio

Estimado compañero:

Me parece que cometes varios errores de concepto.

- Por una parte solamente grabas y lees datos en el registro 1 (solamente tendrás un nombre en ese fichero)

- Para comparar las cadenas de los nombres lo transformas a valor numérico val(), con lo cual casi siempre el nombre será el mismo (salvo que se inicie con un número)

- Cierras todos los manipuladores de ficheros (CLOSE contra CLOSE #myhd) con lo que te arriesgas a que si tienes otro fichero abierto en la aplicación te vas a llevar una desagradable sorpresa.

- Para buscar sólamente lees el primer registro del fichero (con lo que, como he dicho anteriormente este fichero sólo contendrá datos de una persona)

-Las cadenas de Tipos de usuario de longitud fija tienen la sana costrumbre de rellenar su espacio vació con nullchar o chr(0) si lo prefieres. Para verificar una cadena de longitud variable con una de longitud fijas, debes de eliminar de esta última los caracteres nulos ya que a lo mejor estás comparando

Pedro García
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
generar valores aleatorio armando Visual Basic 6.00 2 09-05-2006 19:54:13
informacion orden aleatorio cee Visual Basic 6.00 7 23-08-2005 22:30:41
generar codigo automatico (NO aleatorio) alfonsoestampida Visual Basic 6.00 4 04-03-2005 12:23:40
Generar Numero aleatorio garepa Visual Basic 6.00 1 17-09-2004 01:00:00
Problemas de Connection String con archivo INI aepe07 Visual Basic 6.00 4 11-03-1970 14:47:32


La franja horaria es GMT. Ahora son las 05:42:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right