martes, 2 de octubre de 2012

Log-In en Visual Basic

Se inicia creando un formulario con la siguiente estructura (conteniendo labels, textbox, comandbuttons)

En el CommandButton de "Entrar" se copia la siguiente condición:

Private Sub entrar_Click()
If usuario.Text = Hoja1.Range("a1") And contraseña.Text = Hoja1.Range("b1") Or usuario.Text = Hoja1.Range("a2") And contraseña.Text = Hoja1.Range("b2") Or usuario.Text = Hoja1.Range("a3") And contraseña.Text = Hoja1.Range("b3") Or usuario.Text = Hoja1.Range("a4") And contraseña.Text = Hoja1.Range("b4") Or usuario.Text = Hoja1.Range("a5") And contraseña.Text = Hoja1.Range("b5") Or usuario.Text = Hoja1.Range("a6") And contraseña.Text = Hoja1.Range("b6") Or usuario.Text = Hoja1.Range("a7") And contraseña.Text = Hoja1.Range("b7") Then
MsgBox "Bienvenido a Shot's System", vbInformation, "felicidades"
Unload login
menu.Show
Else
MsgBox "Nombre de usuario o Contraseña Incorrecta", vbCritical, "alerta"
End If
End Sub

Y en el botón "Cancelar" se copia el siguiente código, el cual cerrará automáticamente el formulario al cancelar la operación.

Private Sub cancelar_Click()
Unload login
End Sub

Al ingresar datos correctos o ya existentes en la matriz, aparecerá un msgBox con el mensaje "Bienvenido", el cual deberá trasladar al siguiente formulario.


Trasladará al siguiente formulario, que será el Menú, en el cual se encuentra el botón de opción para Ingresar un Nuevo Usuario (con su respectiva contraseña)






En el CommandButton para Ingresar Nuevo Usuario, se pega el sig. código:

Private Sub CommandButton1_Click()
menu.Hide
nuevousuario.Show

End Sub


(Se utiliza menu.Hide, porque ésta fué la denominación que se le dió al userform)
Al correr el menú, el botón deberá trasladar al formulario del nuevo ingreso de usuarios.
El Userform deberá verse algo como ésta estructura:


En el botón de "Crear" se copia el siguiente código:

Private Sub crear_Click()
If nusuario.Value = "" Or ncontraseña.Value = "" Then
MsgBox "Por favor debe llenar todos los Datos", vbCritical, "alerta"
Else
Hoja1.Rows("3:3").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Hoja1.Range("a3").Value = nusuario.Value
    Hoja1.Range("b3").Value = ncontraseña.Value
    MsgBox "Su cuenta de Usuario a sido Creada Satisfactoriamente", vbInformation, "felicidades"
    MsgBox "Desea crear una cuenta mas", vbYesNo
    nusuario.Text = ""
    ncontraseña.Text = ""
    cncontraseña.Text = ""
    End If
 End Sub


(lo que se encuentra en morado, son las denominaciones que le fueron cambiadas a los textbox, en lugar de los nombres predeterminados)

En el botón de "Regresar a Menú" se copia el código que cierra el userform actual, y conduce al anterior:


Private Sub regresar_Click()
nuevousuario.Hide
menu.Show
End Sub




Log-In en Visual Basic, Ingreso con usuario y contraseña

Se busca crear un Userform al cual se pueda ingresar directamente desde el documento, sin visualizar los datos, a menos que se ingrese con el nombre de usuario y contraseña correctos.


Al ingresar algún dato incorrecto, deberá mostrarse una ventana de error

Para tener acceso a la matriz de Excel, se deben ingresar los datos correctos que ya fueron establecidos. Al hacerlo, deberá mostrarse una ventana de mensaje "Bienvenido"


Se inicia creando un Userform. El área de Nombre de Usuario e Ingresar Contraseña serán etiquetas (Labels), el espacio para escribirlas serán Textbox, y los botones inferiores serán Command Buttons.
Se ingresa el siguiente código en el Command Button "Login":

Private Sub CommandButton1_Click()
If usuario.Text = "Pineda" And contraseña.Text = "12345" Then
MsgBox "Bienvenido a Maderas S.A."
Application.Visible = True
Unload UserForm1
Else
MsgBox "Nombre o Contraseña Incorrectos", vbCritical, "Alerta"

End If
End Sub


El cual indica, que si la primer caja de texto es igual al nombre de usuario indicado, y la segunda es igual a la contraseña, entonces aparecerá una caja con el mensaje "Bienvenido", "Application.Visible=True" es utilizado para mostrar objetos, y "Unload UserForm1" indica que se cierra automáticamente el userform, en caso de que los datos sean correctos.
En caso de datos equivocados, se muestra la caja de mensaje indicándolo, la cual se programa con el código , vbCritical, "Alerta"

En el CommandButton 2 se ingresa el sig. Código, para cancelar la operación:

Private Sub CommandButton2_Click()
Unload UserForm1
End Sub

Al textbox para ingresar contraseña se le cambiará el nombre en las propiedades a la izquierda del Userform. En éste caso, será denominado "contraseña"
Se ingresa el sig. Código:

Private Sub contraseña_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
contraseña.Text = ""
contraseña.ForeColor = &H400040
contraseña.PasswordChar = "*"
End Sub

El cual indica en "MouseDown" que, al hacer click sobre la caja de texto, se borrará el contenido. 
Ésto se realiza, cambiando las propiedades en la parte superior derecha de la ventana, cambiando las propiedades.


También se especifica el color del texto de fondo, y se utiliza "*" para sustituír y proteger los datos.
Lo mismo se realiza con el espacio de  usuario, con el sig. código:

Private Sub usuario_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
usuario.Text = ""
usuario.ForeColor = &H400040
End Sub





martes, 4 de septiembre de 2012

Botón buscar con Macro en Visual Basic (Excel) y Ocultar Datos



Primero, se debe crear una base de datos.


En visual Basic, Se crea un formulario con el botón "Buscar"


Desde la hoja de excel, se graba una macro. La opción se encuentra en la pestaña "Programador"




Mientras se graba la macro, presionar Ctrl+B para buscar un registro.En la ventana que emerge, se escribe el dato que se desea buscar [click en "buscar siguiente"] y se detiene la macro


La macro se guardará en un módulo. Se copia el código de la macro 


y se pega en el código del botón buscar en el UserForm


A continuación, se encuentra resaltado el código con el que se debe modificar la estructura del botón buscar, y se deben cambiar las indicaciones según sea el caso.


En el formulario, se debe agregar una etiqueta o Label, la cual debe permanecer oculta. Ésta cumplirá la función de una memoria caché en el formulario. 

Se oculta desde la ventana de propiedades a  la izquierda, en el área "visible". Se debe cambiar el valor de visible verdadero a falso. 





jueves, 16 de agosto de 2012

Ocultar Datos en un Formulario

Como primer paso, se debe crear una nueva tabla, con el diseño deseado:




Siguiente, creamos un formulario, desde el botón "Formulario" en la pestaña Crear. 



Una vez creado el formulario, ingresamos a "Vista Diseño" para modificarlo




En vista diseño, se da doble click sobre los datos que deseemos ocultar, y aparecerá una ventana a la derecha del diseño del formulario. En la pestaña Formato, se cambia la opción "visible" según sea el dato que querramos ocultar.




Se guarda el diseño del formulario, una vez modificados los datos deseados. 
Cambiamos a vista Formulario, y podemos notar que se han ocultado los datos indicados:





A partir de éstos pasos, el formulario está listo para llenarse. 

jueves, 9 de agosto de 2012

Relaciones Cruzadas

Para comenzar, debemos crear dos tablas: La primera, de alumnos; y la segunda, de Programas. Deben contener datos como códigos y nombres. La clave principal será fijada en los Códigos.



Siguiente, se crea una relación entre las columnas de Programas de ambas tablas 


Al terminar la relación, debemos ingresar a Diseño de Consulta, desde la pestaña Crear. 

Se añaden las dos tablas

Se establecen los datos y su orden. Ésto se hace arrastrando el elemento al primer espacio, con el cursor.


Al hacer clic derecho en alguno de los cuadros, debe seleccionarse la opción "Totales" que fijará donde estará la cuenta


Se crean referencias cruzadas desde la opción "General" en la pestaña de Diseño, lo cual añadirá un espacio en las filas de la consulta, con el nombre "Tab ref cruz"


Se establecen cuáles serán las filas, cuáles las columnas, y cuál será el valor. 


Se obtiene como resultado la tabla de Referencias Cruzadas (vista hoja de datos)