Un registro de información debe tener por lo general las opciones de Consulta, Eliminar e Insertar
Enviado por Cynbaeza77 • 14 de Abril de 2015 • Trabajo • 1.378 Palabras (6 Páginas) • 272 Visitas
6.7 Elaborando una consulta
Un registro de información debe tener por lo general las opciones de Consulta, Eliminar e Insertar.
A modo de ejercicio crearemos un formulario el cual tendrá tres cuadros de texto (Nombre, dirección y teléfono) y tres botones que servirán para lo siguiente: Consultar, consultará la información que hayamos insertado. Eliminar, podrá eliminar algún dato que deseamos borrar. Insertar, tendrá la función de insertar los registros indicados.
A los cuadros de texto asociados a las etiquetas Nombre, Dirección y Teléfono, no les agregaremos ningún código, ya que no haremos ningún cambio en escribir en ellos. El cambio lo haremos al presionar los botones Consulta, Eliminar o Insertar.
Cuadro de Texto, Dirección:
Private Sub TxtDirec_Change()
End Sub
Cuadro de Texto, Nombre:
Private Sub TxtNomb_Change()
End Sub
Cuadro de Texto, Teléfono:
Private Sub TxtTelef_Change()
End Sub
En los botones Consulta, Eliminar e Insertar si escribiremos código.
Botón Consulta: El botón consulta nos permite conocer la dirección y teléfono de una persona. Debemos escribir correctamente el nombre, para poder encontrarlo. Además, al consultar el nombre de la persona se selecciona en el registro en Excel la celda que contiene el nombre la persona, lo que nos permite después de consultarlo, eliminarlo si es que lo deseamos.
En caso de que no se encuentre el nombre de la persona consultada, se enviará un mensaje al usuario que indique que no se pudo hallar a la persona buscada.
El código del botón utiliza el método Cells.Find. Recordemos que Find significa Encontrar.
Private Sub BtnConsulta_Click()
Dim x As Integer
x = 3
Set Cell = Cells.Find(What:=TxtNomb, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Cell Is Nothing Then MsgBox "No se pudo hallar el dato buscado": x = 2: TxtNomb = Empty: TxtDirec = Empty: TxtTelef = Empty
If x = 3 Then
Cell.Activate
ActiveCell.Offset(0, 1).Select
TxtDirec = ActiveCell
ActiveCell.Offset(0, 1).Select
TxtTelef = ActiveCell
End If
End Sub
La instrucción:
Dim x As Integer
x = 3
será utilizada como "bandera" es decir, usaremos el valor de x como indicador para saber si la celda fue encontrada o no y en base a eso, ejecutar distintas acciones. El valor que toma x inicialmente es 3, sin embargo, si la celda no es encontrada con el método .find, x tomará el valor 2.
Lo siguiente que haremos es definir un celda. Set Cell = Cells.Find nos indica que la variable Cell tomará el valor de la celda encontrada (Cells.Find). En caso de que el resultado de Cells.Find sea nulo (no se halló la celda buscada), entonces Cell tomará un valor nulo
.
What:= TxtNomb : (What? = ¿Qué?) Indica que se buscará el valor que se encuentre en el cuadro de texto TxtNomb (nombre).
LookAt:=xlWhole : (LookAt = Mirar a - Whole = Todo) Indica que se buscará la palabra completa (Whole). Por ejemplo si se busca Carlo y el nombre es Carlos, no será encontrado. Si en vez de usar xlWhole, se utilizara xlPart (Part = Parte), al escribir la palabra Car, se podrí¬a encontrar el nombre Carlos o el nombre Carolina(se indicaría el primer valor que encuentre).
Recordemos que Cell es igual al resultado de Cells. Find Si no se encuentra nada, Cell será nulo. En el siguiente código indicamos: Si Cell is Nothing (nada) then (entonces) se enviará un mensaje al usuario "No se pudo hallar el dato buscado", además x = 2.
Los cuadros de texto serán vaciados (Empty) para poder realizar otra búsqueda.
If Cell Is Nothing Then MsgBox "No se pudo hallar el dato buscado": x = 2: TxtNomb = Empty: TxtDirec = Empty: TxtTelef = Empty
Como vimos en la instrucción anterior, si Cell es nulo (no se encontró nada con Cells.Find), entonces x = 2. Si x es igual a 2, no se ejecutará el siguiente código, porque el siguiente código se ejecuta solo si x es igual a 3. En otras palabras, se ejecutará el siguiente código solo si Cells.Find encontró un resultado y por lo tanto x no tomó el valor 2.
Si x es igual a 3, entonces vamos a activar la celda encontrada (Cell.Activate).
If x = 3 Then
Cell.Activate
La lí¬nea que contiene el ActiveCell.Offset(0, 1).Select permite moverse una columna a la
...