0 valutazioniIl 0% ha trovato utile questo documento (0 voti)
94 visualizzazioni4 pagine
Este documento describe una función llamada InputBoxEx que mejora la función InputBox de VBA para permitir mostrar asteriscos u otros caracteres en lugar de la contraseña introducida, limitar la entrada a números o mayúsculas/minúsculas. Explica los argumentos y valores posibles de la función, y proporciona un ejemplo de código para implementarla. También incluye enlaces a ejemplos para diferentes versiones de Access.
Este documento describe una función llamada InputBoxEx que mejora la función InputBox de VBA para permitir mostrar asteriscos u otros caracteres en lugar de la contraseña introducida, limitar la entrada a números o mayúsculas/minúsculas. Explica los argumentos y valores posibles de la función, y proporciona un ejemplo de código para implementarla. También incluye enlaces a ejemplos para diferentes versiones de Access.
Este documento describe una función llamada InputBoxEx que mejora la función InputBox de VBA para permitir mostrar asteriscos u otros caracteres en lugar de la contraseña introducida, limitar la entrada a números o mayúsculas/minúsculas. Explica los argumentos y valores posibles de la función, y proporciona un ejemplo de código para implementarla. También incluye enlaces a ejemplos para diferentes versiones de Access.
Indice de temas Tablas Consultas Formularios Informes Macros Mdulos Base de datos Miscelnea API Utilidades Problemas Cadenas Fecas Todos los temas Utilidades : InputBoxEx (nuevo - compatible con VB) Autor/es: Juan M Afn de Ribera Pregunta : !Es "osible acer #ue un In"utBo$ muestre asteriscos al estilo de las mscaras ti"o contrase%a& Respuesta : En "rinci"io un In"utBo$ no tiene esa funcionalidad' Una solucin a lo #ue "retendes acer es #ue constru(as un formulario #ue simule un In"utBo$) con una eti#ueta) un cuadro de te$to ( un botn Ace"tar ( otro Cancelar' En ese cuadro de te$to "ondr*as una mscara ti"o contrase%a ( en los botones Ace"tar ( Cancelar el cdi+o adecuado "ara la ocasin' A,n as*) utili-ando el API de .indo/s se "uede acer' El resultado es una funcin llamada In"utBo$E$) #ue es ca"a- de mostrar asteriscos al estilo de una mscara ti"o contrase%a' Esta funcin es mu( similar en su uso al In"utBo$ ori+inal) "ero tiene unos ar+umentos e$tra #ue "aso a detallar a continuacin Argumentos Argumento Descripcin 0eis "rimeros ar+umentos E$actamente i+ual #ue los #ue a"arecen en la a(uda de 1BA "ara Access sobre la funcin In"utBo$ 0t(le 2"cional' Este ar+umento es el #ue afecta al estilo #ue ado"tar el In"utBo$' 1es a la seccin 1alores "ara consultar los valores "osibles ( una descri"cin de cada uno de los estilos Ma$Car 2"cional' 0i este ar+umento tiene valor) indicar el l*mite m$imo de caracteres #ue el In"utBo$E$ admitir' Valores Valor Descripcin 0None Muestra un In"utBo$ normal 0"ass/ord Muestra un In"utBo$ con caracteres ti"o asterisco 0number Muestra un In"utBo$ #ue slo ace"tar n,mero 3sin decimales4 05o/erCase El In"utBo$ mostrar todos los caracteres introducidos en ma(,sculas 0U""erCase El In"utBo$ mostrar todos los caracteres introducidos en min,sculas E6em"lo de uso7 Esta l*nea de cdi+o mostrar un In"utBo$ ti"o contrase%a Contrasea = InputBoxEx("Introduzca su contrasea", _ "Control de usuarios", , , , , , SPassword) El si+uiente cdi+o funcionar "ara Access 8999 o su"erior' Para Access :; ir a la seccin E6em"los ( descar+ar el corres"ondiente a esta versin de Access' A rai- de al+unas "eticiones ( su+erencias) e cambiado al+unos detalles del cdi+o "ara #ue tambi<n "ueda ser utili-ado en el entorno de 1B Pe+a este cdi+o en un mdulo estandar ' ' ' InputBoxEx ' ' C!di"o escrito ori"inal#ente por $uan % &'(n de )i*era+ ' Est(s autorizado a utilizarlo dentro de una aplicaci!n ' sie#pre ,ue esta nota de autor per#anezca inalterada+ ' En el caso de ,uerer pu*licarlo en una p("ina -e*, ' por 'a.or, contactar con el autor en ' ' access.*a'a,/0a+co# ' ' Este c!di"o se *rinda por cortes1a de ' $uan %+ &'(n de )i*era ' ' ' estilos del InputBoxEx Pu*lic Enu# St0leInputBox S2one ' InputBox nor#al SPassword ' #(scara oculta S2u#*er ' s!lo n3#eros S4owerCase ' s!lo #in3sculas S5pperCase ' s!lo #a03sculas End Enu# Pri.ate 6eclare 7unction 7ind-indowEx 4i* "user89" _ &lias "7ind-indowEx&" _ (B0:al ;-nd< &s 4on", _ B0:al ;-nd9 &s 4on", _ B0:al lpsz< &s Strin", _ B0:al lpsz9 &s Strin") &s 4on"
Pri.ate 6eclare 7unction ?ill>i#er 4i* "user89" _ Pri.ate 6eclare 7unction ?ill>i#er 4i* "user89" _ (B0:al ;wnd &s 4on", _ B0:al nI6E.ent &s 4on") &s 4on" Pri.ate Const =-4_S>@4E = (<A) ' constantes con los estilos de ' controles 'E6I>' Pri.ate Const ES_5PPE)C&SE = BCD Pri.ate Const ES_4E-E)C&SE = BC<F Pri.ate Const ES_P&SS-E)6 = BC9F Pri.ate Const ES_25%BE) = BC9FFF ' #ensaGe para esta*lecer el caracter ,ue se #ostrar( ' co#o #(scara para el InputBoxEx tipo contrasea Pri.ate Const E%_SE>P&SS-E)6CC&) = BCCC ' constante ,ue contiene el car(cter ,ue se #ostrar( ' (este .alor puede ser cual,uier otro, en este caso ' ;e esco"ido el t1pico asterisco) Pri.ate Const ?E@_%&S? = H9B ' "I" ' #ensaGe para esta*lecer el n3#ero #(xi#o de ' caracteres per#itidos Pri.ate Const E%_4I%I>>EJ> = BCCK Pri.ate SInputBox &s St0leInputBox Pri.ate ;InputBox &s 4on" Pri.ate cC;ar &s 4on" Pri.ate ># &s 4on" Pu*lic 7unction InputBoxEx( _ Pro#pt, _ Eptional >itle, _ Eptional 6e'ault, _ Eptional JPos, _ Eptional @Pos, _ Eptional Celp7ile, _ Eptional Context, _ Eptional St0le &s St0leInputBox = S2one, _ Eptional %axC;ar &s 4on") &s Strin"
' si no ;a0 nin"3n otro InputBoxEx a*ierto+++ I' ;InputBox = F >;en ' Crea#os un ti#er ,ue se eGecutar( a la dLci#a de se"undo ># = Set>i#er(FB, FB, <FF, &ddressE' >i#erProc)
SInputBox = St0le cC;ar = %axC;ar ' lla#a#os al InputBox de #anera nor#al En Error =o>o &nular>i#er InputBoxEx = InputBox(Pro#pt, >itle, 6e'ault, JPos, @Pos, Celp7ile, Context) End I'
Exit 7unction
&nular>i#erM ' si ;a ;a*ido al"3n error, se cancela la operaci!n Call ?ill>i#er(FB, >#) %s"Box "ErrorM " B Err+2u#*er B .*Cr4' B Err+6escription
' localiza#os el #anipulador de la .entana acti.a ' (se supone ,ue es la .entana del InputBox) ;InputBox = =et7ore"round-indow ' localiza#os el #anipulador de la caGa de texto ' del InputBox ;Edit = 7ind-indowEx(;InputBox, FB, "E6I>", .*2ullStrin") ;Edit = 7ind-indowEx(;InputBox, FB, "E6I>", .*2ullStrin")
' o*tene#os los estilos de la caGa de texto +++ CurSt0le = =et-indow4on"(;Edit, =-4_S>@4E)
Select Case SInputBox Case SPassword ' tipo password ' le deci#os a la caGa de texto cu(l ser( el car(cter ' ,ue aparecer( en .ez de lo ,ue teclee el usuario Call Send%essa"e(;Edit, E%_SE>P&SS-E)6CC&), ?E@_%&S?, FB) ' 0 le aadi#os el estilo de introducci!n de contraseas CurSt0le = CurSt0le Er ES_P&SS-E)6 Case S2u#*er ' tipo n3#ero CurSt0le = CurSt0le Er ES_25%BE) Case S4owerCase ' tipo #in3sculas CurSt0le = CurSt0le Er ES_4E-E)C&SE Case S5pperCase ' tipo #a03sculas CurSt0le = CurSt0le Er ES_5PPE)C&SE End Select
I' cC;ar N F >;en Call Send%essa"e(;Edit, E%_4I%I>>EJ>, cC;ar, FB) End I' ' ca#*ia#os el estilo Call Set-indow4on"(;Edit, =-4_S>@4E, CurSt0le) ' desacti.a#os el ti#er para ,ue s!lo se eGecute esta .ez Call ?ill>i#er(FB, >#) ;InputBox = F
End Su* ' Ejemplos: In"utBo$E$' Access 8999 o su"erior In"utBo$E$:; Access :;
Temas relacionados: Ms+Bo$E$ 3nuevo = com"atible con 1B4
Juan M! Afn de Ribera "#$% <ima actuali'acin: "(/%/"##)