PDF de programación - Curso de VB Capítulo 7

Imágen de pdf Curso de VB Capítulo 7

Curso de VB Capítulo 7gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 19 de Enero del 2018)
626 visualizaciones desde el 19 de Enero del 2018
336,0 KB
24 paginas
Creado hace 11a (11/01/2013)
CURSO DE VB

CAPÍTULO 71

Índice de contenido
APLICANDO FILTROS......................................................................................................................2
UNAS PALABRAS INICIALES....................................................................................................2
LA PREPARACIÓN DEL EJEMPLO DE ESTE CAPÍTULO.......................................................2
EL PRIMER FILTRO......................................................................................................................2
LA FUNCIÓN NZ......................................................................................................................4
SEGUIMOS CON NUESTRO FILTRO.....................................................................................5
FILTRO POR CONSULTA.............................................................................................................6
FILTROS COMPUESTOS..............................................................................................................7
INCISO: ESE COMBO CON VALORES REPETIDOS............................................................8
SIGAMOS...................................................................................................................................8
FILTRO PARAMETRIZADO.........................................................................................................9
UN POCO MÁS SOBRE FILTROS COMPUESTOS..................................................................11
FILTRO EN EL PROPIO FORMULARIO...................................................................................13
A TRAVÉS DE UN “FILTERON”...........................................................................................13
UTILIZACIÓN DEL “LIKE”..............................................................................................14
A TRAVÉS DE UN “CLON” DEL RECORDSET DEL FORMULARIO...............................15
NUESTRO CLON NO ENCUENTRA EL VALOR............................................................16
MÁS ALLÁ DE LOS FILTROS: CONTROLES Y LA PROPIEDAD ROWSOURCE...............16
TIPOS DE ROWSOURCE.......................................................................................................17
DATOS “LISTA DE VALORES”.........................................................................................17
DATOS “TABLA/CONSULTA”..........................................................................................18
MODIFICAR EL ORIGEN SI EL TIPO DE DATOS ES DE “TABLA O CONSULTA”...20
DATOS “LISTA DE CAMPOS”..........................................................................................21
LOS INFORMES Y LA PROPIEDAD RECORDSOURCE........................................................22
LO MISMO, PERO CON UN FORMULARIO.......................................................................23
UNAS PALABRAS FINALES......................................................................................................24

1

La BD donde están los ejemplos de este capítulo os la podéis bajar aquí.

Visítame en http://siliconproject.com.ar/neckkito/

1

APLICANDO FILTROS

UNAS PALABRAS INICIALES
La idea principal de este capítulo es proporcionaros
diferentes herramientas para realizar un filtro en formulario.
Veremos desde filtros simples hasta filtros más complejos;
filtros en distintos formularios y filtros en el propio
formulario.

Como ya os he avanzado, la idea es proporcionaros “ideas” de cómo podemos realizar filtros,
habrá algunos incisos donde veremos cómo construir un filtro para obtener los datos que
queremos que no serán estrictamente programación pura y dura en VBA.

Y, como la construcción de estructuras de filtro es muy parecida a la construcción de
rowsources y de recordsources, aprovecharemos para echar un vistazo a estas dos
propiedades.

Y después... ¡a aplicar el que más os guste!

LA PREPARACIÓN DEL EJEMPLO DE ESTE CAPÍTULO
Vamos a reciclar un poco la BD que desarrollamos en el capítulo anterior. Por ello, partiré de la
base (nunca mejor dicho) que tenemos delante esa aplicación.

En este capítulo veremos diversas maneras de crear un filtro, y lo complicaremos un poco para
ver cómo podemos combinar varios elementos que nos hagan de filtro.

Para practicar con diversas opciones modificaremos ligeramente nuestras tablas. Lo que
haremos será:

1.- Copiar-pegar (estructura y datos) nuestra tabla TClientes, guardándola como TClientes2. A
esta última tabla le añadiremos dos campos más, que serán:



[Edad]
[FechaAlta]

Numérico





Fecha/Hora

Directamente, sobre la tabla, añadiremos algunos registros, para poder desarrollar
prácticamente lo que veamos en los siguientes epígrafes.

2.- Creamos un nuevo formulario, que llamaremos FClientes2, basado sobre la tabla
TClientes2.

3.- Creamos un informe, basado en la tabla TClientes2, al que llamaremos RClientes2.

Algunos de los ejemplos los podremos aplicar tanto a formularios como informes.

Así pues, manos a la obra.

EL PRIMER FILTRO
En nuestro formulario FMenu vamos a insertar un cuadro combinado. Cuando nos salga el
asistente lo configuraremos de la siguiente manera:

Visítame en http://siliconproject.com.ar/neckkito/

2

Buscamos los valores en una tabla
Elegimos la tabla TClientes2
Añadimos los campos [IdCli] y [NomCli]
Ordenamos, por ejemplo, ascendente sobre [NomCli]
Ocultamos la clave principal
Le ponemos como nombre de etiqueta “Buscar







cliente”

Ya tenemos pues configurado nuestro combo que nos
permitirá visionar la ficha del cliente. Sólo nos queda
identificarlo. Sacamos sus propiedades y en la pestaña
Otras

Nombre escribimos cboBuscaCliente.





Hagamos un momento de receso: si examinamos las propiedades de ese combo, en la pestaña
Formato
Número de columnas, veremos que aparece el valor 2. Efectivamente, hay dos

columnas, [IdCli] y [NomCli]. No vemos la primera porque hemos dicho, en el asistente, que
queríamos ocultar la clave principal. Si ahora cambiamos de opinión y sí queremos verla lo que
deberíamos modificar es la propiedad “Ancho de columnas”. Donde nos pone 0 cm podríamos
ponerle, por ejemplo, 1 cm (nos quedaría: 1cm;2,54cm)

Si ahora nos vamos a la pestaña Datos

Columna dependiente veremos que el valor que
aparece ahí es 1. Eso nos está indicando que el valor que guarda el combo, tras haber
seleccionado un cliente, es el identificador del cliente. Nosotros no vamos a cambiar ese valor,
pero tened en cuenta que si quisiéramos que lo que guardara fuera el nombre del cliente
deberíamos cambiar ese valor a 2 (valor de la segunda columna).



Dicho lo anterior vamos a ver cómo filtrar nuestro formulario FClientes2 tras seleccionar un
cliente. Para ello, creamos un botón de comando (cmdBuscarCli) y en el evento “Al hacer click”
generamos el siguiente código:


Private Sub cmdBuscarCli_Click()
Dim vCli As Integer
vCli = Nz(Me.cboBuscaCliente.Value, 0)
If vCli = 0 Then Exit Sub
DoCmd.OpenForm "FClientes2", , , "[IdCli]=" & vCli
DoCmd.Close acForm, Me.Name
End Sub


Si, en lugar de querer abrir el formulario, quisiéramos abrir un informe filtrado, la mecánica es
prácticamente la misma. Suponiendo que tuviéramos un botón de comando llamado
cmdInformeFiltrado el código que deberíamos asignar a ese botón sería:


Private Sub cmdInformeFiltrado_Click()
Dim vCli As Integer
vCli = Nz(Me.cboBuscaCliente.Value, 0)
If vCli = 0 Then Exit Sub
DoCmd.OpenReport "RClientes2", acViewPreview, , "[IdCli]=" & vCli
End Sub


Visítame en http://siliconproject.com.ar/neckkito/

3

LA FUNCIÓN NZ

Vemos que en el código anterior hemos utilizado una nueva
función, que es Nz. La estructura de esta función es:

Nz (Valor, valor_si_nulo)

Si recordamos cuando hablábamos de definir el tipo de
variable comentábamos que es importante determinar qué
tipo de variable va a se la variable que vamos a utilizar.

En este caso puede darse el caso de que tras elegir un valor en el combo nos arrepintamos y
no seleccionemos ningún valor en el combo. En este caso el valor devuelto por el combo será
NULL.

Si, para cubrirnos las espaldas, definimos la variable como Variant, no estaremos optimizando
recursos, pues Access (y lo digo de esta manera para entendernos) deberá realizar tres
operaciones:
Una: saber que existe una variable, pero sin saber de qué tipo exactamente es
Dos: una vez sabe el tipo, “cargar” las características inherentes a este tipo de variable.
Tres: si la variable cambia de tipo, “cargar” de nuevo las características del nuevo tipo

La programación inicial, si hubiéramos seguido este criterio, debería haber sido la siguiente:


Private Sub cmdBuscarCli_Click()
Dim vCli As Variant
vCli = Me.cboBuscaCliente.Value
If IsNull(vCli) Then Exit Sub
DoCmd.OpenForm "FClientes2", , , "[IdCli]=" & vCli
DoCmd.Close acForm, Me.Name
End Sub


Aunque a veces no queda otro remedio que utilizar esta estructura, y por tema de optimización
de recursos que comentábamos, es mejor ya decir qué tipo de variable va a ser. ¿Y cómo
soslayamos este “problema”? Pues a través de la función NZ.

Lo que “dice” esta función es: devuélveme el valor del combo (Me.cboBuscaCliente.Value).
Pero, si su valor es NULL, me devuelves un cero. Y por ello hemos escrito:

vCli = Nz(Me.cboBuscaCliente.Value, 0)

Como podemos ver, si obtenemos un NULL, nos devuelve un Integer, que en este caso es cero.
Debemos ir con cuidado con esto. Por ejemplo, si definimos la variable vCli como String en
caso de obtener un valor NULL debería devolvernos un valor también String. Por ejemplo, una
cadena vacía. Así, en este supuesto, lo que deberíamos haber
  • Links de descarga
http://lwp-l.com/pdf8380

Comentarios de: Curso de VB Capítulo 7 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad