7/25/2019 CursoVB05
1/15
CURSO DE VB
CAPTULO 51
ndice de contenidoY LA ESTRELLA INVITADA... DOCMD!.......................................................................................2
CONVERSACIN ODA AL PASAR............................................................................................2LLAMAR A LOS FORMULARIOS E INFORMES EN CDIGO...............................................2CREANDO UNA MINI-BD PARA IR JUGANDO CON EL CDIGO....................................2DOCMD... PARA ABRIR ALGO................................................................................................3DOCMD... PARA CERRAR ALGO............................................................................................DOCMD PARA SALIR... Y BYE-BYE......................................................................................PROFUNDI"ANDO# DOCMD CON FORMULARIOS...............................................................$
UN PASEO POR... LOS REGISTROS.......................................................................................$%CMO DESEA EL FORMULARIO& %POCO 'EC'O( AL PUNTO O MUY 'EC'O&......)UTILICEMOS UN FILTRO SENCILLO.................................................................................*+Y COMPLI,UEMOS UN POCO EL FILTRO........................................................................**
UNA PUNTUALI"ACIN SOBRE LOS FILTROS..........................................................*2
Y SIGAMOS EPLORANDO MANIPULACIONES............................................................*2UN LTIMO EJEMPLO ALGO M/S COMPLEJO...............................................................*PARA FINALI"AR...................................................................................................................*0
1 La BD donde estn los ejemplos de este captulo os la podis bajar aqu.
1Vistame en http://siliconproject.com.ar/neckkito/
http://db.tt/ZviDNUWghttp://db.tt/ZviDNUWg7/25/2019 CursoVB05
2/15
Y LA ESTRELLA INVITADA... DOCMD!
CONVERSACIN ODA AL PASAR...
Cdigo VBA: !ola" #$u eres%Formulario: &n 'ormularioCVBA: Va(a" )o te haba reconocido. *s+ eres un ,orms"F: #,orms"% -ues me parece bien. e usta esadescripci0n.
CVBA: por cierto+ #c0mo te llamas%F: *h" i nombre es miFormularioCVBA: Bonito nombre... 2e llamar+ pues+ ,orms"mi,ormularioF: e usta ese nombre+ pero si no 3o( equi3ocado 3i3imos en el mismo edi'icioCVBA: #Vi3imos en el mismo edi'icio% 4ntonces somos 3ecinos"F: 5. -or eso creo que ,orms"mi,ormulario es un poco 'ormal+ #no crees%CVBA: 2ienes ra60n: como somos 3ecinos te 3o( a llamar... Me
LLAMAR A LOS FORMULARIOS E INFORMES EN CDIGO
#7ecordamos que en un captulo anterior 3imos que e8istan unos m0dulos de objeto% 4s decir+( para este caso en particular+ cuando creamos c0dio asociado a un 'ormulario se creaba unm0dulo asociado a ese 'ormulario. lo mismo podemos decir para los in'ormes.
La 9con3ersaci0n anterior ;teora pura ( dura+ como habris podido comprobar... je+ je...2FK
,orms",Datos.5et,ocus4nd 5ubI
@reo que con este Eltimo ejemplo ha quedado claro c0mo'unciona 9la cosa+ ( c0mo debemos utili6ar el 4 ;que+ ennuestro ejemplo+ sera equi3alente a ,orms",enu7*@>Q)K' resp O 3b)o 2hen 48it 5ub 4nd >' Do@md.$uit4nd 5ubI
#,cil+ 3erdad%
PROFUNDIZANDO: DOCMD CON FORMULARIOS
Vamos a 3er un poco como podemos manejar un poco ms a 'ondo la apertura de 'ormularioscon Do@md.
5i nos 'ijamos en nuestro bot0n cmd*bre,Datos oriinal 3eamos que el c0dio asinado era elsiuiente:
I-ri3ate 5ub cmd*bre,DatosJ@lick;< [email protected],orm K,DatosK4nd 5ubI
* partir de ese c0dio 3amos a 3er un par de 93ariaciones sobre el tema.
UN PASEO POR... LOS REGISTROS
@omo 3emos+ si pulsamos el bot0n+ el c0dio nos abre ,Datos ( nos lle3a al primer reistro. #
si queremos ir a un reistro nue3o% Vamos a 3er de qu maneras podemos reali6ar lo anterior.o ir creando botones nue3os para cada ejemplo. Vosotros o bien podis crear dichos botonesnue3os ( asinarles el c0dio correspondiente o bien 3ais modi'icando el c0dio en el bot0nque (a tenis creado... 9a usto del consumidor.
5istema 1: 3amos al nue3o reistro sin emular acci0n de macro
Vamos a decirle al c0dio que:1.? )os abra el 'ormulario.? )os 3a(a a un nue3o reistro
-ara eso debemos utili6ar el siuiente c0dio:
I-ri3ate 5ub cmd*bre,Datos)ue3o7eistro5tma1J@lick;< [email protected],orm K,DatosK [email protected] acData,orm+ K,DatosK+ ac)eH7ec4nd 5ubI
La primera lnea de c0dio la tenemos controlada. 5in comentarios.La seunda lnea de c0dio nos dice lo siuiente:
[email protected]*l7eistro ;es un 'ormulario
7/25/2019 CursoVB05
8/15
5i nos 'ijamos en los arumentos del mtodo [email protected] 3emos que: -ara indicar qu tipo de objeto es utili6amos la constante de 3b de *ccess acData,orm 4l nombre del 'ormulario lo indicamos entre comillas -ara indicar a qu reistro queremos ir utili6amos la constante de 3b de*ccess ac)eH7ec
4s mu( importante separar los arumentos concomas. 5i nos ol3idamos una coma le estaremos diciendo
otra cosa al c0dio ;( no nos 'uncionar+ l0icamenteual que en el caso anterior+ podemos utili6ar las siuientes constantes: ac@md7ecordsSo2o,irst para ir al primer reistro ac@md7ecordsSo2oLast para ir al Eltimo reistro ac@md7ecordsSo2o)e8t para ir al reistro siuiente ac@md7ecordsSo2o-re3ious para ir al reistro anterior
Vamos a practicar un poco lo que hemos aprendido. o s0lo har el ejemplo aqu para dos
botones ;aunque en la BD de ejemplo estn todos proramados
7/25/2019 CursoVB05
9/15
I-ri3ate 5ub cmd-rimeroJ@lick;< [email protected]@ommand ac@md7ecordsSo2o,irst4nd 5ubI
para proramar cmd*nterior el c0dio sera:I-ri3ate 5ub cmd*nteriorJ@lick;< [email protected]@ommand ac@md7ecordsSo2o-re3ious4nd 5ubI
Lo dicho: os dejo para 3osotros la proramaci0n de los dos restantes
Fjo. *En no hemos entrado en el tema de control de errores. -or ello+ si estamos en elprimero+ por ejemplo+ ( queremos ir al reistro anterior obtendremos un error de c0dio.2ened un poquito de paciencia ( pronto 3eremos c0mo resol3er este 9incon3eniente.
CMO DESEA EL ORMULARIO POCO "EC"O# AL PUNTO O MUY"EC"O
5i complicamos la estructura del [email protected],orm 3eremos que se nos permite la adici0n de3arios arumentos:
[email protected],orm 9nombre,orm+ Ctipo de 3ista+ C'iltro+ Ccondici0n+ Cmodo de datos+ Cmodode 3entana+ Copen*rs
Vamos a 9meternos con el tipo de 3ista del 'ormulario. @omo (a sabemos ;o deberamossaber< un 'ormulario admite 3arias 3istas+ que son las siuientes:
TIPO DE VISTA CONSTANTE DE VB DE ACCESS
Vista diseAo acDesin
Vista hoja de datos ac,ormD5
Vista de r'ico dinmico ac,orm-i3ot@hart
Vista de tabla dinmica ac,orm-i3ot2able
Vista presentaci0n acLa(out
Vista 'ormulario ac)ormal
Vista preliminar ac-re3ieH
-ues con todo lo anterior (a podemos decirle al c0dio qu tipo de 3ista deseamos cuandoabramos el 'ormulario.
4n ,enu 3amos a crear un bot0n de comando ;que (o he llamado cmd*bre,Datos!ojaDatosL27F 4D*DK+ Y< ZDetectamos si se pulsa cancelar >' 5tr-tr;34dad< O Y 2hen 48it 5ub
Z*plicamos el 'iltro+ abriendo ,Datos en modo !oja deDatos [email protected],orm K,DatosK+ ac,ormD5+ + KC4dad[OK X34dad4nd 5ubI
#)os acordamos el >nputBo8% @on este c0dio el 3alor que introduce el usuario quedauardado en la 3ariable 34dad+ ( aplicamos la condici0n en la lnea que abre el 'ormulario atra3s de KC4dad[OK X 34dad
*unque sea e3idente+ podramos haber puesto el operador l0ico que hubiramos\querido
;ma(or que+ ma(or o iual que+ menor que+ iual a...nputBo8;K>ntrodu6ca la edad in'eriorK+ K4D*D >),47>F7K< 34dad5up O >nputBo8;K>ntrodu6ca la edad superiorK+ K4D*D 5&-47>F7K< mi,iltro O KC4dad]OK X 34dad>n' X K *)D C4dad[OK X 34dad5up
[email protected],orm K,DatosK+ ac,ormD5+ + mi,iltro4nd 5ubI
@omo podemos obser3ar+ hemos: De'inido el 'iltro a tra3s de una 3ariable de tipo 5trin. mi,iltro es en realidad una cadena de te8to+ s0lo que los 3alores in'erior ( superior3ienen dados por las edades que introdu6ca el usuario. Fjo con los espacios+ pues tambin cuentan. @omo 3eis+ ha( un espacio antes de *)D.5uponamos que las edades sean 1 ( . 5i no hubiramos puesto ese espacio la cadena dete8to sera: C4dad]O1*)D C4dad[O. el c0dio hubiera entendido que el 3alor in'erior es
91*)D+ adems de encontrarse con una e8presi0n que 9no entiende porque no se dara
cuenta de que ha( dos condiciones ;'alta el *)D que las une
7/25/2019 CursoVB05
12/15
4n la condici0n basta que ponamos el nombre del 'iltro que hemos creado+ que en estecaso es mi,iltro.
UNA PUNTUALIZACIN SOBRE LOS FILTROS
@omo habis 3isto+ si trabajamos con nEmeros+ el 'iltro es+diamos+ 9directo.
5in embaro+ seEn el tipo de dato deberemos adaptar el'iltro al tipo de dato.
#$u sini'ica eso%
5ini'ica que:
TIPO DE DATO FILTRO
)umrico 9Directo
Booleano 9Directo
5trin 4ntre comillas simples ;Z