Cargar Un Dato De La BD A Un "Evento Click" Para Luego Llevarlo A Un Texbox


Subject: Cargar Un Dato De La BD A Un "Evento Click" Para Luego Llevarlo A Un Texbox
Hola amigos pues necesito una ayudita con esto que se me presenta en un sistema, es posible cargar un dato de la BD a un evento click para luego ese dato llevarlo a un texbox, osea lo que quiciera hacer es algo como esto:

Public Sub Button1_Click()

Button2.Visible = False
HPanel2.Visible = False
Button3.Visible = False
HPanel3.Visible = False
usuario.Text = "Carlos"
password.SetFocus

End


Lo que quiero esque en " usuario.Text = "Carlos" " se carge ese usuario directo de la base de datos.. OJO: son 3 usuarios y cada uno tiene un nivel de acceso diferente..
lo que no se es como hacerlo.. tengo la idea pero no la concreto no se si tengo que hacer una funcion aparte o puedo ejecutar un query directamente desde el evento click.. quiciera que me ayudaran a aclarar esta dudita..

yo estaba haciendo algo como esto pero creo que esta un poco errado por las dudas de la funcion ademas que tengo problemas con la sintaxis del query :S


Public Sub Form_Open()
Dim query As Result
conexion.conectar()

query = conexion.cn.Exec("Selec From usuario where acceso= Administrador")

TextBox1.Text = query["usuario"]
End

Public Sub Button1_Click()

Button2.Visible = False
HPanel2.Visible = False
Button3.Visible = False
HPanel3.Visible = False
usuario.Text = "Carlos"
password.SetFocus

End


El problema es que lo estoy haciendo en form_open y no se como hacerlo en el evento click porfa alguien ayudeme

Aqui la tabla Usuario por si alguien quiere ayudar mas:

usuario CREATE TABLE `usuario` (
`id_usuario` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`usuario` varchar(254) DEFAULT NULL,
`password` varchar(254) DEFAULT NULL,
`acceso` varchar(254) DEFAULT NULL,
PRIMARY KEY (`id_usuario`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1

Last edited by OneErick on Wednesday, 20 March 2013, 18:08; edited 2 times in total
Profile PM  
Subject: Re: Cargar Un Dato De La BD A Un "Evento Click" Para Luego Llevarlo A Un Texbox
OneErick, tienes que replantearte algunos conceptos básicos antes de asumir la lógica de todo esto.

El mismo título del hilo demuestra que no has pillado bien la idea:

Citar:
Cargar Un Dato De La BD A Un "Evento Click" Para Luego Llevarlo A Un Texbox


Un Evento es un procedimiento que se dispara en un momento concreto, es decir, una serie de ordenes. No se puede cargar nada en él

Citar:
Lo que quiero esque en " usuario.Text = "Carlos" " se carge ese usuario directo de la base de datos.. OJO: son 3 usuarios y cada uno tiene un nivel de acceso diferente..


Usuario.text="Carlos" es una comparación. Su resultado es cierto o falso, no se puede cargar nada en ella (puedes cargar otra cadena dentro de el textbox usuario, pero nada más).

Citar:
El problema es que lo estoy haciendo en form_open...


Tienes que aprender en qué momento se dispara qué evento y lo que quieres hacer entonces.
supongo, viendo tu código, que lo que quieres es comprobar si el usuario tiene acceso administrador o no. la lógica es la siguiente
Abres el formulario
esperas que el usuario teclee su nombre y su clave
cuando lo ha hecho y pulsado el botón "bValidar" (Nunca button1, que eso no dice nada. Pon nombre significativo a tus controles)
comprobamos en la base de datos su nivel
El código sería, más o menos

public sub bValidad_click()

dim query As Result
conexion.conectar()

query = conexion.cn.Exec("Selec * From usuario where usuario= \"" & txtNombre.Text & "\"") 'buscas el registro que coincida con el nick tecleado
if not query.Available then 'no se devolvieron registros
message.Error("No existe el usuario")
return
endif
if txtclave <> query!password then 'la clave no coincide
message("Clave errónea")
return
end if
If query!acceso="Administrador" then

mimodulopublico.usuarioAcceso="Administrador" '(es conveniente que tengas un módulo accesible desde todas partes donde guardar una variable publica -usuarioAcceso en el ejemplo- con el acceso, para futuras referencias)

' .... pones visible lo que quieras o haces lo que quieras

else

'...ocultas lo que quieras o haces lo que quieras.

endif

Return



No uses el código y ya está. Estúdialo.
Suerte.

Last edited by shordi on Wednesday, 20 March 2013, 18:51; edited 1 time in total
Profile PM  
Subject: Re: Cargar Un Dato De La BD A Un "Evento Click" Para Luego Llevarlo A Un Texbox
Justo ahora estoy trabajando en algo parecido para un programa mío. Creo un procedimiento para buscar al usuario en la base de datos, si existe compruebo la contraseña y por último el tipo de usuario, para abrir uno u otro formulario. La ventaja de tenerlo en un procedimiento es que puedo llamarlo desde cualquier evento de uno o más controles, sin volver a escribirlo todo.
Public Sub comprobar_usuario()
Dim hres As Result 'declaramos variables locales
Dim Clave As String
Dim Clave2 As String
Dim Clave3 As String
Dim Clave4 As String
Dim filtro As String

hconn = Modcon.ConectarBase() 'llamamos a la conexión
filtro = txtuser.text 'asignamos a la variable filtro el valor de txtuser.text

hres = hconn.Exec("Select * from usuarios where nombre like '" & filtro & "' ") 'ejecutamos la consulta
If txtuser.text = "" Then 'comprobamos que el campo nombre no este vacío
Message.Warning("Ingrese su nombre")
txtuser.SetFocus 'si está vacío ponemos el foco en el control
Else If hres.Available = False Then 'comprobamos si el usuario existe o no
Message("No existe el usuario")
Else


Clave = hres["id_usuario"] 'asignamos a las variables los valores recuperados desde la base de datos
Clave2 = hres["tipo_usuario"]
Clave3 = hres["nombre"]
Clave4 = hres["password"]



If txtuser.text = Clave3 And txtpass.text = "" Then 'comprobamos que escriba la contraseña
Message.Info("Ingrese su Contraseña ")
txtpass.SetFocus

Else If txtuser.text = Clave3 And txtpass.text <> Clave4 Then 'comprobamos si la contraseña no coincide
Message.Info("Contraseña incorrecta")
txtpass.SetFocus
Else If txtuser.text = Clave3 And txtpass.text = Clave4 Then 'comprobamos que la contraseña coincida
If Clave2 = "Admin" Then 'si el usuario es admin
Message.Info("Bienvenido" " " & Clave3 & " " "al sistema de administración")
Fadmin.show
Me.close
Else 'si el usuario es un usuario común
Message.Info("Bienvenido" " " & Clave3 & " " " al sistema ")
Fingreso.Show
Me.Close
Endif

Endif

Endif

End

Espero te sirva, aunque sé que es mejorable. Si no quieres escribir los nombres puedes cargarlos en un listbox desde la base de datos y elegirlo, pero esa ya es otra historia. Analízalo y si te sirve, adelante.
Saludos

Last edited by Dani26 on Wednesday, 20 March 2013, 19:23; edited 2 times in total
Subject: Re: Cargar Un Dato De La BD A Un "Evento Click" Para Luego Llevarlo A Un Texbox
Creo que no me supe explicar:
cheken esto

iiii

como muestra la imagen tengo 3 usuarios cada uno de ellos con su nivel de accseso
ya la verificación del nivel de acceso lo hice con eso no hay problema.
Como pueden ver en la imagen, alado del nombre hay un boton con una imagen de usuario hasta ahora al darle click en ese boton pasa este evento

Public Sub Button1_Click()

Button2.Visible = False
HPanel2.Visible = False
Button3.Visible = False
HPanel3.Visible = False
usuario.Text = "Carlos"
password.SetFocus

End


el TEXBOX de usuario se llena con la palabra Carlos, pero esto es algo genérico si en algún momento alguien quiere cambiar todos los usuarios

la verdadera idea es que ese boton cargue el usuario directamente de la base de datos, en palabras sencillas usuario.Text = "seleccioname de la base de datos el usuario donde su acceso sea igual a auditor"

"Auditor, cambiaria a administrador o a usuario en los otros botones."

asi se llenaria el TEXBOX con un dato de la BD y así si carlos decide cambiar su nombre de usuario de carlos a carlos02 se actulizaria de forma el siguiente inisio de sesion.

Ahora si me explique mejor creo..

Profile PM  
Subject: Re: Cargar Un Dato De La BD A Un "Evento Click" Para Luego Llevarlo A Un Texbox
Citar:
query = conexion.cn.Exec("Selec From usuario where acceso= Administrador")

Para empezar, otra vez te falta la "t" ,ahora en la palabra select , imposible que te funcione esa consulta.
Public Sub Button1_Click()
Dim query As Result
conexion.conectar()

query = conexion.cn.Exec("Select * from usuarios where acceso= Administrador")


Button2.Visible = False
HPanel2.Visible = False
Button3.Visible = False
HPanel3.Visible = False
usuario.Text = query["usuario"]
password.SetFocus

End

Sería como yo lo haría.Pon todo en el evento click del botón , la misma consulta te da la solución. Recuerda que puedes probar las consultas desde el phpmyadmin, que te marca cual es el error.
Saludos

Last edited by Dani26 on Wednesday, 20 March 2013, 22:35; edited 1 time in total
Subject: Re: Cargar Un Dato De La BD A Un "Evento Click" Para Luego Llevarlo A Un Texbox
De esa manera no se porque pero no funciona dice: Result is not available o algo así XD, pero antes de ver esa forma que me ofreciste yo utilice esta y me funciono


Dim buscar As Result
Button1.Visible = False
HPanel1.Visible = False
Button2.Visible = False
HPanel2.Visible = False

buscar = conexion.cn.Exec("select * from usuario where acceso='" & acc3.Text & "' ")
usuario.Text = buscar["Usuario"]


solo que tuve que colocar un TexBox oculto y en la propiedad enable la puse -> false: llamado acc, acc2, acc3 para cada caso y en la propiedad Tex: Su nivel de acceso y listo

Creo que no es la mejor manera pero fue la que funciono además de que la pensé YO ^^.

Profile PM  
Subject: Re: Cargar Un Dato De La BD A Un "Evento Click" Para Luego Llevarlo A Un Texbox
OneErick escribió: [Ver mensaje]


solo que tuve que colocar un TexBox oculto


Está bien que la solución la hayas pensado sólo tu, y no esté copiada de algún otro lugar, en eso tengo que darte la enhorabuena porque demuestras que quieres aprender. Pero ahora analiza la frase tuya que cito arriba: en realidad estás usando un control para almacenar un dato, un control oculto a la vista del usuario. ¿No es eso en definitiva una variable de tipo String? En adelante no hagas eso nunca más y usa variables si no quieres que venga Eric S. Raymond a matarte!!!

Saludos

Profile PM  
Subject: Re: Cargar Un Dato De La BD A Un "Evento Click" Para Luego Llevarlo A Un Texbox
Bueno en eso tienes toda la razón.. el problema es que desde un principio no quise hacerlo de esa forma por lo "Genérico" pero al ver que no me funciona de otra forma dado que no se como hacerlo, pues lo hice de esa manera para que funcionara..

PD: Estoy abierto a opiniones e incluso modificaciones si estas funcionan y me enseñan.. ^^.

Profile PM  

Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1222s (PHP: 2% SQL: 98%)
SQL queries: 27 - Debug Off - GZIP Enabled