Error 94 no es un valor null

Hola que tal, saludándote y viendo que eres un buen experto en la materia de visual basic lo cual me llena ee satisfacción el saber que hay personas que ayudan al usuario que apenas va empezando en lo que se refiere al visual basic, mi pregunta es esta:
Estoy haciendo un formulario de login de usuarios el cual checa si el usuario existe en una base de datos hecha previamente, y todo jala bien hasta ahí, pero quiero que al momento de pasar al otro formulario me bloque algunos botones que no tenga permiso el usuario mi base de datos de usuarios contiene los campos de usuario, clave, alta, modificar, consulta y baja (los cuales alta, baja, modificar yconsultas están de tipo boolean) y cuando paso al otro formulario me sale el error de que no es un valor null me podrías decir como le puedo hacer para bloquear los botones según los permisos del usuario, aquí te dejo el código que estoy utilizando, espernando me puedas ayudar gracias!
Private Sub cmdOK_Click()
With rg_usuarios
.MoveFirst
.Find "clave = '" & Text2 & "'"
If .EOF = False Then
Form1.Show
Form1.Caption = !usuario
Form1.Command1.Enabled = !alta      ("aqui me marca el error")
Form1.Command1.Enabled = !baja
Form1.Command1.Enabled = !modificar
Form1.Command1.Enabled = !consultas
form1.show
Else
MsgBox "Error", , "Datos incorrectos"
End If
End With
End Sub

1 respuesta

Respuesta
1
¿Usas access no?, bueno hace esto hace una parada con F9 y avanza hasta ahí con F8
o sea paso a paso y fíjate si ! ¿Usuario qué nombre tiene?
¿Usas recordset para traer los datos de la base?
Si estoy utilizando access, el campo usuario esta bien escrito utilizo ado para manejar las bases de datos, no sera como tengo declarado el campo porque se supones que en la linea Form1.Command1. Enabled = ! alta despues de enabled=! ¿Alta debe checar el campo alta si es verdadero o falso para que me deshabilite los botones no crees?
Pero ! ¿Usuario te funciona?
Eso es lo que no me suena, por eso te decía que hagas una parada en ! Usuario para que ver que datos te traía
Si ! Usuario me funciona a la perfección no me sale ningún error, el único error que me sale es en la linea indicada, ¿y otro comentario que te quería hacer es si se puede quitar lo sombreado de una caja de texto cuando la deshabilito?
Que funcione sin ningún error no significa que en ! Usuario este saliendo algo
te funciona porque caption es para ingresar texto
hace esto
proba así
With rg_usuarios
.MoveFirst
.Find "clave = '" & Text2 & "'"
If .EOF = False Then
Form1.Caption = !usuario
'Form1.Command1.Enabled = !alta      ("aqui me marca el error")
'Form1.Command1.Enabled = !baja
'Form1.Command1.Enabled = !modificar
'Form1.Command1.Enabled = !consultas
form1.show
Else
MsgBox "Error", , "Datos incorrectos"
End If
End With
Comenta donde te da error y fíjate cuando valla al form1 haber si te puso el nombre del usuario
para mi, nunca lo vi que se use ! Usuario, que se llame al campo de esta forma
usando recordset o adodb, para mi ahí esta el problema
si rs! Usuario si es recordser o adodb. File o etc
saludos
lea
Hola, gracias por la ayuda ya conseguí que me deshabilitara los botones pero ahora tengo un problema, cuando corro el programa de login que es donde checa los usuarios que tengo en una base de datos al poner el nombre de usuario y contraseña si checa el usuario si existe y la contrasñea y me pasa al otro formulario, per cuando pongo un nombre de usuario que no existe pero pongo una contraseña que si existe me pasa al otro formulario, ¿si se supone que el usuario no existe porque me manda al otro formulario como le podría hacer ahí algún código que me recomiendas?
Es por lógica eso, podes hacer 2 cosas
Primero cuando ingresa el usuario, ahí chequearlo y si existe habilitar el campo contraseña y después validas la contraseña, si los 2 son correctos habilitas el botón de aceptar y pasas al otro form, sino es correcto podes hacer un for para que al tercer intento se cierre el sistema.
La otra es permitir que entre usuario y contraseña y cuando terminas de ingresar la contraseña, haces una consulta a la base que te devuelva el nombre del usuario y si existe pones un cartel de bienvenida con el nombre y pasa al form, sino existe o haces el form o cerras el sistema.
Muchas gracias me haz ayudado mucho la verdad gente como tu muy poca, ahora si te puedo molestar con otra duda, cuando guardo la contraseña en la caja de texto quiero que sea de 6 caracteres o más y si no es de 6 que me mande un mensaje que diga que se necesitan 6 caracteres para crear la contraseña, yo se que a lo mejor para ti es algo fácil pero como te digo apenas estoy empezando en esto del visual basic me ayudarías mucho con el código para hacer esto, sin más por le momento y agradeciendo tus atenciones bob_23!
Si te pido por favor que cuando sea así cierres la pregunta y me vuelvas a preguntar
se que puede ser molesto, pero como me guio por el titulo después me pierdo con la respuesta gracias
bueno, en primer lugar si tienes un textbox podes poner maxlenght en propiedades de máximo 6, ya con eso te aseguras de que no se pase después en el campo char pone * así lo haces profesional para que no se vea la contraseña.
Bueno cuando la persona escribe y termina y da enter poder poner una instrucción
así if len(text) = 6 then, len es la función que toma la cantidad de letras
que siga su curso para validar usuario
sino
que de el mensaje
Muchas gracias por tu ayuda, y perdón por no finalizar la pregunta, todos tus consejos me sirvieron mucho espero volver a encuéntrate pronto y sigue siendo el mejor experto de esta página tu amigo bob_23

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas