You are on page 1of 86

INSTITUTO LIBERTADOR

DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC


1.1 Introduccin
La computadora no solamente es una maquina que puede realizar procesos para
darnos resultados, sin que tengamos la nocin exacta de las operaciones que realiza para
llegar a esos resultados. Con la computadora adems de lo anterior tambin podemos
disear soluciones a la medida, de problemas especficos que se nos presenten. Mas aun, si
estos inolucran operaciones matemticas comple!as "#o repetitias, o requieren del mane!o
de un olumen mu" grande de datos.
$l diseo de soluciones a la medida de nuestros problemas, requiere como en otras
disciplinas una metodologa que nos ensee de manera gradual, la forma de llegar a estas
soluciones.
% las soluciones creadas por computadora se les conoce como programas " no son
mas que una serie de operaciones que realiza la computadora para llegar a un resultado, con
un grupo de datos especficos. Lo anterior nos llea al razonamiento de que un programa
nos sire para solucionar un problema especifico.
&ara poder realizar programas, adems de conocer la metodologa mencionada,
tambin debemos de conocer, de manera especifica las funciones que puede realizar la
computadora " las formas en que se pueden mane!ar los elementos que 'a" en la misma.
Computadora: $s un dispositio electrnico utilizado para procesar informacin " obtener
resultados. Los datos " la informacin se pueden introducir en la computadora como
entrada (input) " a continuacin se procesan para producir una salida (output).
Proceso de informacin en la computadora
*atos de &roceso *atos de
entrada salida

Programa: $s el con!unto de instrucciones escritas de alg+n lengua!e de programacin "
que e!ecutadas secuencialmente resuelen un problema especifico.
Organizacin fsica de una computadora
CPU
Unida de Unidad
Dispositivos de Control Arit.!og. Dispositivos de
"ntrada #alida
$emoria
PROF. JUAN MANSILLA NEYRA ,
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
1.% Definicin de !engua&e
!engua&e: $s una serie de smbolos que siren para transmitir uno o mas mensa!es (ideas)
entre dos entidades diferentes. % la transmisin de mensa!es se le conoce com+nmente
como comunicacin.
La comunicacin es un proceso comple!o que requiere una serie de reglas simples,
pero indispensables para poderse llear a cabo. Las dos principales son las siguientes-
., Los mensa!es deben correr en un sentido a la ez.
./ *ebe forzosamente existir 0 elementos- $misor, 1eceptor, Medio de Comunicacin
" Mensa!e.
!engua&es de Programacin
$s un con!unto de smbolos, caracteres " reglas (programas) que le permiten a las
personas comunicarse con la computadora.
Los lengua!es de programacin tienen un con!unto de instrucciones que nos
permiten realizar operaciones de entrada#salida, calculo, manipulacin de textos,
lgica#comparacin " almacenamiento#recuperacin.
Los lengua!es de programacin se clasifican en-
!engua&e $a'uina: 2on aquellos cu"as instrucciones son directamente entendibles
por la computadora " no necesitan traduccin posterior para que la C&3 pueda comprender
" e!ecutar el programa. Las instrucciones en lengua!e maquina se expresan en trminos de
la unidad de memoria mas pequea el bit (dgito binario , o /).
!engua&e de (a&o )ivel *"nsam+lador,: $n este lengua!e las instrucciones se escriben
en cdigos alfabticos conocidos como mnemotcnicos para las operaciones " direcciones
simblicas.
!engua&e de Alto )ivel: Los lengua!es de programacin de alto niel (4%25C, pascal,
cobol, frotran, etc.) son aquellos en los que las instrucciones o sentencias a la computadora
son escritas con palabras similares a los lengua!es 'umanos (en general en ingles), lo que
facilita la escritura " comprensin del programa.
1.-Definicin de Algoritmo
La palabra algoritmo se deria de la traduccin al latn de la palabra rabe
al6'o7arizmi, nombre de un matemtico " astrnomo rabe que escribi un tratado sobre
manipulacin de n+meros " ecuaciones en el siglo 58.
3n algoritmo es una serie de pasos organizados que describe el proceso que se debe
seguir, para dar solucin a un problema especifico.
PROF. JUAN MANSILLA NEYRA /
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
1.. /ipos de Algoritmos
Cualitativos: 2on aquellos en los que se describen los pasos utilizando palabras.
Cuantitativos: 2on aquellos en los que se utilizan clculos numricos para definir los
pasos del proceso.
1.0 !engua&es Algortmicos
$s una serie de smbolos " reglas que se utilizan para describir de manera explcita
un proceso.
/ipos de !engua&es Algoritmicos
1r2ficos: $s la representacin grfica de las operaciones que realiza un algoritmo
(diagrama de flu!o).
)o 1r2ficos: 1epresenta en forma descriptia las operaciones que debe realizar un
algoritmo (pseudocodigo).
1.3 $etodologa para la solucin de pro+lemas por medio de computadora
1.4 Definicin del Pro+lema
$sta fase est dada por el enunciado del problema, el cual requiere una definicin clara "
precisa. $s importante que se conozca lo que se desea que realice la computadora9 mientras
esto no se conozca del todo no tiene muc'o caso continuar con la siguiente etapa.
1.5 An2lisis del Pro+lema
3na ez que se 'a comprendido lo que se desea de la computadora, es necesario
definir-
Los datos de entrada.
Cual es la informacin que se desea producir (salida)
Los mtodos " frmulas que se necesitan para procesar los datos.
3na recomendacin mu" practica es el que nos pongamos en el lugar de la
computadora " analicemos que es lo que necesitamos que nos ordenen " en que secuencia
para producir los resultados esperados.
1.6 Dise7o del Algoritmo
Las caractersticas de un buen algoritmo son-
*ebe tener un punto particular de inicio.
*ebe ser definido, no debe permitir dobles interpretaciones.
PROF. JUAN MANSILLA NEYRA :
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
*ebe ser general, es decir, soportar la ma"ora de las ariantes que se puedan
presentar en la definicin del problema.
*ebe ser finito en tamao " tiempo de e!ecucin.
1.18 Codificacin
La codificacin es la operacin de escribir la solucin del problema (de acuerdo a la
lgica del diagrama de flu!o o pseudocodigo), en una serie de instrucciones detalladas, en
un cdigo reconocible por la computadora, la serie de instrucciones detalladas se le conoce
como cdigo fuente, el cual se escribe en un lengua!e de programacin o lengua!e de alto
niel.
1.11 Prue+a 9 Depuracin
Los errores 'umanos dentro de la programacin de computadoras son muc'os "
aumentan considerablemente con la comple!idad del problema. $l proceso de identificar "
eliminar errores, para dar paso a una solucin sin errores se le llama depuracin.
La depuracin o prue+a resulta una tarea tan creatia como el mismo desarrollo de
la solucin, por ello se debe considerar con el mismo inters " entusiasmo.
1esulta coneniente obserar los siguientes principios al realizar una depuracin, "a
que de este traba!o depende el xito de nuestra solucin.
1.1% Documentacin
$s la gua o comunicacin escrita es sus ariadas formas, "a sea en enunciados,
procedimientos, dibu!os o diagramas.
% menudo un programa escrito por una persona, es usado por otra. &or ello la
documentacin sire para a"udar a comprender o usar un programa o para facilitar futuras
modificaciones (mantenimiento).
La documentacin se diide en tres partes-
*ocumentacin 5nterna
*ocumentacin $xterna
Manual del 3suario
*ocumentacin 5nterna- 2on los comentarios o mensa!e que se aaden al
cdigo fuente para 'acer mas claro el entendimiento de un proceso.
*ocumentacin $xterna- 2e define en un documento escrito los siguientes
puntos-
*escripcin del &roblema
PROF. JUAN MANSILLA NEYRA ;
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
<ombre del %utor
%lgoritmo (diagrama de flu!o o pseudocodigo)
*iccionario de *atos
Cdigo =uente (programa)
Manual del 3suario- *escribe paso a paso la manera como funciona el
programa, con el fin de que el usuario obtenga el resultado deseado.
1.1- $antenimiento
2e llea acabo despus de terminado el programa, cuando se detecta que es
necesario 'acer alg+n cambio, a!uste o complementacin al programa para que siga
traba!ando de manera correcta. &ara poder realizar este traba!o se requiere que el programa
este correctamente documentado.
Herramientas utilizadas para disear algoritmos
%.1 Diagrama de :lu&o
3n diagrama de flu!o es la representacin grfica de un algoritmo. >ambin se
puede decir que es la representacin detallada en forma grfica de como deben realizarse
los pasos en la computadora para producir resultados.
$sta representacin grfica se da cuando arios smbolos (que indican diferentes
procesos en la computadora), se relacionan entre si mediante lneas que indican el orden en
que se deben e!ecutar los procesos.
Los smbolos utilizados 'an sido normalizados por el instituto norteamericano de
normalizacin (%<25).
#;$(O!O D"#C<IPCI=)
5ndica el inicio " el final de nuestro diagrama
de flu!o.
5ndica la entrada " salida de datos.
2mbolo de proceso " nos indica la asignacin
de un alor en la memoria "#o la e!ecucin de
una operacin aritmtica.
2mbolo de decisin indica la realizacin de
una comparacin de alores.
PROF. JUAN MANSILLA NEYRA 0
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
2e utiliza para representar los subprogramas.
Conector dentro de pagina. 1epresenta la
continuidad del diagrama dentro de la misma
pagina.
Conector fuera de pagina. 1epresenta la
continuidad del diagrama en otra pagina.
5ndica la salida de informacin por impresora.
5ndica la salida de informacin en la pantalla o
monitor.
Lneas de flu!o o direccin. 5ndican la
secuencia en que se realizan las operaciones.
<ecomendaciones para el dise7o de Diagramas de :lu&o
2e deben se usar solamente lneas de flu!o 'orizontales "#o erticales.
2e debe eitar el cruce de lneas utilizando los conectores.
2e deben usar conectores solo cuando sea necesario.
<o deben quedar lneas de flu!o son conectar.
2e deben trazar los smbolos de manera que se puedan leer de arriba 'acia aba!o " de
izquierda a derec'a.
>odo texto escrito dentro de un smbolo deber ser escrito claramente, eitando el uso
de muc'as palabras.
%.% Pseudocodigo
Mezcla de lengua!e de programacin " espaol (o ingles o cualquier otro idioma)
que se emplea, dentro de la programacin estructurada, para realizar el diseo de un
programa. $n esencial, el pseudocodigo se puede definir como un lengua!e de
especificaciones de algoritmos.
PROF. JUAN MANSILLA NEYRA ?
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
$s la representacin narratia de los pasos que debe seguir un algoritmo para dar
solucin a un problema determinado. $l pseudocodigo utiliza palabras que indican el
proceso a realizar.
>enta&as de utilizar un Pseudocodigo a un Diagrama de :lu&o
@cupa menos espacio en una 'o!a de papel
&ermite representar en forma fcil operaciones repetitias comple!as
$s mu" fcil pasar de pseudocodigo a un programa en alg+n lengua!e de programacin.
2i se siguen las reglas se puede obserar claramente los nieles que tiene cada
operacin.
$2>13C>31%2 %LA@15>M5C%2
Las estructuras de operacin de programas son un grupo de formas de traba!o, que
permiten, mediante la manipulacin de ariables, realizar ciertos procesos especficos que
nos lleen a la solucin de problemas. $stas estructuras se clasifican de acuerdo con su
comple!idad en-
B %signacin
2ecuenciales B $ntrada
B 2alida
B 2imples
$structuras Condicionales
%lgoritmicas B M+ltiples
B Cacer para
Cclicas B Cacer mientras
B 1epetir 'asta
0.1. "structuras #ecuenciales
La estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en
secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la
siguiente " as sucesiamente 'asta el fin del proceso. 3na estructura secuencial se
representa de la siguiente forma-
5nicio
%ccion/
%ccion:
.
.
%ccion<
=in
PROF. JUAN MANSILLA NEYRA D
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Asignacin: La asignacin consiste, en el paso de alores o resultados a una zona de la
memoria. *ic'a zona ser reconocida con el nombre de la ariable que recibe el alor. La
asignacin se puede clasificar de la siguiente forma-
#imples: Consiste en pasar un alor constate a una ariable (aE/?)
Contador: Consiste en usarla como un erificador del numero de eces que se
realiza un proceso (aEaF/)
Acumulador: Consiste en usarla como un sumador en un proceso (aEaFb)
De tra+a&o: *onde puede recibir el resultado de una operacin matemtica que
inolucre muc'as ariables (aEcFb.:#0).
!ectura: La lectura consiste en recibir desde un dispositio de entrada (p.e!. el teclado) un
alor. $sta operacin se representa en un pseudocodigo como sigue-
Leer a, b
*onde GaH " GbH son las ariables que recibirn los alores
"scritura: Consiste en mandar por un dispositio de salida (p.e!. monitor o impresora) un
resultado o mensa!e. $ste proceso se representa en un pseudocodigo como sigue-
$scribe G$l resultado es-H, 1
*onde G$l resultado es-H es un mensa!e que se desea aparezca " 1 es una ariable
que contiene un alor.
Pro+lemas #ecuenciales
/) 2uponga que un indiiduo desea inertir su capital en un banco " desea saber cuanto
dinero ganara despus de un mes si el banco paga a razn de :I mensual.
5nicio
Leer capJin
gan E capJin . ,.,:
5mprimir gan
=in
:) 3n endedor recibe un sueldo base mas un /,I extra por comisin de sus entas, el
endedor desea saber cuanto dinero obtendr por concepto de comisiones por las tres
entas que realiza en el mes " el total que recibir en el mes tomando en cuenta su sueldo
base " comisiones.
5nicio
Leer sb, /, :, ;
totJta E / F : F ;
com E totJta . ,./,
tpag E sb F com
5mprimir tpag, com
=in
PROF. JUAN MANSILLA NEYRA K
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
;) 3na tienda ofrece un descuento del /?I sobre el total de la compra " un cliente desea
saber cuanto deber pagar finalmente por su compra.
5nicio
Leer tc
d E tc . ,./?
tp E tc B d
5mprimir tp
=in
0) 3n alumno desea saber cual ser su calificacin final en la materia de %lgoritmos. *ic'a
calificacin se compone de los siguientes porcenta!es-
??I del promedio de sus tres calificaciones parciales.
;,I de la calificacin del examen final.
/?I de la calificacin de un traba!o final.
5nicio
Leer c/, c:, c;, ef, tf
prom E (c/ F c: F c;)#;
ppar E prom . ,.??
pef E ef . ,.;,
ptf E tf . ,./?
cf E ppar F pef F ptf
5mprimir cf
=in
?) 3n maestro desea saber que porcenta!e de 'ombres " que porcenta!e de mu!eres 'a" en
un grupo de estudiantes.
5nicio
Leer n', nm
ta E n' F nm
p' E n' . /,, # ta
pm E nm . /,, # ta
5mprimir p', pm
=in
D) 1ealizar un algoritmo que calcule la edad de una persona.
5nicio
Leer fnac, fact
edad E fact B fnac
5mprimir edad
=in.
0.% "structuras de Condicionales
Las estructuras condicionales comparan una ariable contra otro(s) alor(es), para
que en base al resultado de esta comparacin, se siga un curso de accin dentro del
PROF. JUAN MANSILLA NEYRA L
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
programa. Cabe mencionar que la comparacin se puede 'acer contra otra ariable o contra
una constante, seg+n se necesite. $xisten dos tipos bsicos, las simples " las m+ltiples.
#imples: Las estructuras condicionales simples se les conoce como G>omas de
decisinH. $stas tomas de decisin tienen la siguiente forma-
2i McondicinN entonces
%ccin(es)
=inBsi
Do+les: Las estructuras condicionales dobles permiten elegir entre dos opciones o
alternatias posibles en funcin del cumplimiento o no de una determinada
condicin. 2e representa de la siguiente forma-
2i McondicinN entonces
%ccin(es)
si no
%ccin(es)
=inBsi
*onde-
2i OOOOOOO 5ndica el comando de comparacin
CondicinOOOO 5ndica la condicin a ealuar
entoncesOO..OO &recede a las acciones a realizar cuando se cumple la condicin
accin(es)OOOO 2on las acciones a realizar cuando se cumple o no la condicin
si noOOOOOO &recede a las acciones a realizar cuando no se cumple la condicin
*ependiendo de si la comparacin es cierta o falsa, se pueden realizar una o mas acciones.
$?ltiples: Las estructuras de comparacin m+ltiples, son tomas de decisin
especializadas que permiten comparar una ariable contra distintos posibles
resultados, e!ecutando para cada caso una serie de instrucciones especificas. La
forma com+n es la siguiente-

2i McondicinN entonces
%ccin(es)
si no
2i McondicinN entonces
%ccin(es)
si no
.
. Parias condiciones
.
PROF. JUAN MANSILLA NEYRA Q
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
:orma 1eneral
Casos Pariable
@p/- %ccin(es)
@p:- %ccin(es)
.
.
@p<- accin
=inBcasos
Pro+lemas Condicionales
a,Pro+lemas #electivos #imples
/) 3n 'ombre desea saber cuanto dinero se genera por concepto de intereses sobre la
cantidad que tiene en inersin en el banco. $l decidir reinertir los intereses siempre "
cuando estos excedan a RK,,,, " en ese caso desea saber cuanto dinero tendr finalmente
en su cuenta.
5nicio
Leer pJint, cap
int E cap . pJint
si int N K,,, entonces
capf E cap F int
finBsi
5mprimir capf
fin
:) *eterminar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su
promedio de tres calificaciones es ma"or o igual a K,9 reprueba en caso contrario.
5nicio
Leer calif/, calif:, calif;
prom E (calif/ F calif: F calif;)#;
2i prom NE K, entonces
5mprimir Galumno aprobadoH
si no
5mprimir Galumno reprobadoH
=inBsi
=in
;) $n un almacn se 'ace un :,I de descuento a los clientes cu"a compra supere los R/,,,
S Cual ser la cantidad que pagara una persona por su compraT
5nicio
Leer compra
2i compra N /,,, entonces
desc E compra . ,.:,
si no
desc E ,
PROF. JUAN MANSILLA NEYRA /,
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
finBsi
totJpag E compra B desc
imprimir totJpag
fin.
0) 3n obrero necesita calcular su salario semanal, el cual se obtiene de la sig. manera-
2i traba!a 0, 'oras o menos se le paga R/D por 'ora
2i traba!a mas de 0, 'oras se le paga R/D por cada una de las primeras 0, 'oras "
R:, por cada 'ora extra.
5nicio
Leer 't
2i 't N 0, entonces
'e E 't B 0,
ss E 'e . :, F 0, . /D
si no
ss E 't . /D
=inBsi
5mprimir ss
=in
?) 3n 'ombre desea saber cuanto dinero se genera por concepto de intereses sobre la
cantidad que tiene en inersin en el banco. $l decidir reinertir los intereses siempre "
cuando estos excedan a RK,,,, " en ese caso desea saber cuanto dinero tendr finalmente
en su cuenta.
5nicio
Leer pJint, cap
int E cap . pJint
si int N K,,, entonces
capf E cap F int
finBsi
5mprimir capf
fin

D) Uue lea dos n+meros " los imprima en forma ascendente
5nicio
Leer num/, num:
2i num/ M num: entonces
5mprimir num/, num:
si no
5mprimir num:, num/
finBsi
fin
PROF. JUAN MANSILLA NEYRA //
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Pro+lemas #electivos Compuestos
/) Leer : n+meros9 si son iguales que los multiplique, si el primero es ma"or que el
segundo que los reste " si no que los sume.
5nicio
Leer num/, num:
si num/ E num: entonces
resul E num/ . num:
si no
si num/ N num: entonces
resul E num/ B num:
si no
resul E num/ F num:
finBsi
finBsi
fin
:) Leer tres n+meros diferentes e imprimir el numero ma"or de los tres.
5nicio
Leer num/, num:, num;
2i (num/ N num:) and (num/ N num;) entonces
ma"or E num/
si no
2i (num: N num/) and (num: N num;) entonces
ma"or E num:
si no
ma"or E num;
finBsi
finBsi
5mprimir ma"or
fin
;) *eterminar la cantidad de dinero que recibir un traba!ador por concepto de las 'oras
extras traba!adas en una empresa, sabiendo que cuando las 'oras de traba!o exceden de 0,,
el resto se consideran 'oras extras " que estas se pagan al doble de una 'ora normal cuando
no exceden de L9 si las 'oras extras exceden de L se pagan las primeras L al doble de lo que
se pagan las 'oras normales " el resto al triple.
5nicio
Leer 't, pp'
2i 't M E 0, entonces
tp E 't . pp'
si no
'e E 't B 0,
2i 'e M E L entonces
pe E 'e . pp' . :
si no
pd E L . pp' . :
PROF. JUAN MANSILLA NEYRA /:
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
pt E ('e B L) . pp' . ;
pe E pd F pt
finBsi
tp E 0, . pp' F pe
finBsi
5mprimir tp
fin
0) Calcular la utilidad que un traba!ador recibe en el reparto anual de utilidades si este se le
asigna como un porcenta!e de su salario mensual que depende de su antigVedad en la
empresa de acuerdo con la sig. tabla-
>iempo 3tilidad
Menos de / ao ? I del salario
/ ao o mas " menos de : aos KI del salario
: aos o mas " menos de ? aos /,I del salario
? aos o mas " menos de /, aos /?I del salario
/, aos o mas :,I del salario
5nicio
Leer sm, antig
2i antig M / entonces
util E sm . ,.,?
si no
2i (antig N E /) and (antig M :) entonces
util E sm . ,.,K
si no
2i (antig N E :) and (antig M ?) entonces
util E sm . ,./,
si no
2i (antig N E ?) and (antig M /,) entonces
util E sm . ,./?
si no
util E sm . ,.:,
finBsi
finBsi
finBsi
finBsi
5mprimir util
fin
0.-. "structuras Cclicas
2e llaman problemas repetitios o cclicos a aquellos en cu"a solucin es necesario
utilizar un mismo con!unto de acciones que se puedan e!ecutar una cantidad especifica de
eces. $sta cantidad puede ser fi!a (preiamente determinada por el programador) o puede
PROF. JUAN MANSILLA NEYRA /;
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
ser ariable (estar en funcin de alg+n dato dentro del programa).Los ciclos se clasifican
en-
Ciclos con un )umero Determinado de Iteraciones *@acerPara,
2on aquellos en que el numero de iteraciones se conoce antes de e!ecutarse el ciclo.
La forma de esta estructura es la siguiente-
Cacer para P.C E L.5 a L.2 PCEL5
%ccion/ Pc E L2 P
%ccion: cEcF/
.
. =
.
%ccion< Cuerpo del ciclo
=inBpara
*onde-
P.C Pariable de control del ciclo
L.5 Limite inferir
L.2 Limite superior
$n este ciclo la ariable de control toma el alor inicial del ciclo " el ciclo se repite 'asta
que la ariable de control llegue al limite superior.
Pro+lemas * @acer para ,
/) Calcular el promedio de un alumno que tiene K calificaciones en la materia de *iseo
$structurado de %lgoritmos
5nicio
2umE,
Leer <om
Cacer para c E / a K
Leer calif
2um E sum F calif
=inBpara
prom E sum #K
5mprimir prom
=in.
:) Leer /, n+meros " obtener su cubo " su cuarta.
5nicio
Cacer para n E / a /,
Leer num
cubo E num . num . num
cuarta E cubo . num
5mprimir cubo, cuarta
PROF. JUAN MANSILLA NEYRA /0
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
=inBpara
=in.
Ciclos con un )umero Indeterminado de Iteraciones * @acer$ientrasA <epetir
@asta,
2on aquellos en que el numero de iteraciones no se conoce con exactitud, "a que
esta dado en funcin de un dato dentro del programa.
@acer$ientras: $sta es una estructura que repetira un proceso durante G<H
eces, donde G<H puede ser fi!o o ariable. &ara esto, la instruccin se ale de
una condicin que es la que debe cumplirse para que se siga e!ecutando. Cuando
la condicin "a no se cumple, entonces "a no se e!ecuta el proceso. La forma de
esta estructura es la siguiente-
Cacer mientras McondicinN
%ccion/ <@
%ccion:
.
. 25
%ccion<
=inBmientras
Pro+lemas *@acer $ientras,
/) 3na compaa de seguros tiene contratados a n endedores. Cada uno 'ace tres entas a
la semana. 2u poltica de pagos es que un endedor recibe un sueldo base, " un /,I extra
por comisiones de sus entas. $l gerente de su compaa desea saber cuanto dinero
obtendr en la semana cada endedor por concepto de comisiones por las tres entas
realizadas, " cuanto tomando en cuenta su sueldo base " sus comisiones.
:) $n una empresa se requiere calcular el salario semanal de cada uno de los n obreros que
laboran en ella. $l salario se obtiene de la sig. forma-
2i el obrero traba!a 0, 'oras o menos se le paga R:, por 'ora
2i traba!a mas de 0, 'oras se le paga R:, por cada una de las primeras 0, 'oras "
R:? por cada 'ora extra.
;) *eterminar cuantos 'ombres " cuantas mu!eres se encuentran en un grupo de n personas,
suponiendo que los datos son extrados alumno por alumno.
0) $l *epto. de 2eguridad &ublica " >ransito del *.=. desea saber, de los n autos que entran
a la ciudad de Mxico, cuantos entran con calcomana de cada color. Conociendo el ultimo
dgito de la placa de cada automil se puede determinar el color de la calcomana
utilizando la sig. relacin-
PROF. JUAN MANSILLA NEYRA /?
C3$1&@ *$L
C5CL@
C@<*5C5@<
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
*WA5>@ C@L@1
/ o : amarilla
; o 0 rosa
? o D ro!a
K o L erde
Q o , azul
?) @btener el promedio de calificaciones de un grupo de n alumnos.
<epetir@asta: $sta es una estructura similar en algunas caractersticas, a la anterior.
1epite un proceso una cantidad de eces, pero a diferencia del CacerBMientras, el
1epetirBCasta lo 'ace 'asta que la condicin se cumple " no mientras, como en el
CacerBMientras. &or otra parte, esta estructura permite realizar el proceso cuando
menos una ez, "a que la condicin se eal+a al final del proceso, mientras que en el
CacerBMientras puede ser que nunca llegue a entrar si la condicin no se cumple desde
un principio. La forma de esta estructura es la siguiente-
1epetir
%ccion/
%ccion:
.
.
%ccion<
Casta McondicinN
<@
Pro+lemas <epetir @asta
/) $n una tienda de descuento las personas que an a pagar el importe de su compra llegan
a la ca!a " sacan una bolita de color, que les dir que descuento tendrn sobre el total de su
compra. *eterminar la cantidad que pagara cada cliente desde que la tienda abre 'asta que
cierra. 2e sabe que si el color de la bolita es ro!a el cliente obtendr un 0,I de descuento9
si es amarilla un :?I " si es blanca no obtendr descuento.
:) $n un supermercado una ama de casa pone en su carrito los artculos que a tomando de
los estantes. La seora quiere asegurarse de que el ca!ero le cobre bien lo que ella 'a
comprado, por lo que cada ez que toma un articulo anota su precio !unto con la cantidad
de artculos iguales que 'a tomado " determina cuanto dinero gastara en ese articulo9 a esto
le suma lo que ira gastando en los dems artculos, 'asta que decide que "a tomo todo lo
que necesitaba. %"+dale a esta seora a obtener el total de sus compras.
PROF. JUAN MANSILLA NEYRA /D
C3$1&@ *$L
C5CL@
C@<*5C5@<
25
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
;) un teatro otorga descuentos seg+n la edad del cliente. determinar la cantidad de dinero
que el teatro de!a de percibir por cada una de las categoras. >omar en cuenta que los nios
menores de ? aos no pueden entrar al teatro " que existe un precio +nico en los asientos.
Los descuentos se 'acen tomando en cuenta el siguiente cuadro-
$dad *escuento
Categora / ? B /0 ;? I
Categora : /? B /Q :? I
Categora ; :, B 0? /, I
Categora 0 0D B D? :? I
Categora ? DD en adelante ;? I
Pro+lemas <epetitivos Compuestos
/.B $l profesor de una materia desea conocer la cantidad de sus alumnos que no tienen
derec'o al exmen de nielacin.
*isee un pseudocdigo que lea las calificaciones obtenidas en las ? unidades por
cada uno de los 0, alumnos " escriba la cantidad de ellos que no tienen derec'o al exmen
de nielacin.
:.B *isee un diagrama que lea los :,?,,,,,, otos otorgados a los ; candidatos a
gobernador e imprima el n+mero del candidato ganador " su cantidad de otos.
;.B 2uponga que tiene usted una tienda " desea registrar las entas en una computadora.
*isee un pseudocdigo que lea por cada cliente, el monto total de su compra. %l final del
da escriba la cantidad total de las entas " el n+mero de clientes atendidos.
0.B 2uponga que tiene una tienda " desea registrar sus entas por medio de una
computadora. *isee un pseudocdigo que lea por cada cliente-
a).B el monto de la enta,
b).B calcule e imprima el 5P% ,
c).Bcalcule e imprima el total a pagar,
d).B lea la cantidad con que paga el cliente,
e).Bcalcule e imprime el cambio.
%l final del da deber imprimir la cantidad de dinero que debe 'aber en la ca!a.
?.B Modificar el pseudocdigo anterior de tal forma que no permita que la cantidad con la
que paga el cliente sea menor a lo que debe pagar.
D.B 2e tiene un con!unto de /,,,, tar!etas cada una contiene la informacin del censo para
una persona-
/.B <+mero de censo,
:.B 2exo
;.B $dad
PROF. JUAN MANSILLA NEYRA /K
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Arreglo: 3n Arreglo es una estructura de datos que almacena ba!o el mismo nombre
(ariable) a una coleccin de datos del mismo tipo.
Los arreglos se caracterizan por-
%lmacenan los elementos en posiciones contiguas de memoria
>ienen un mismo nombre de ariable que representa a todos los elementos. &ara
'acer referencia a esos elementos es necesario utilizar un ndice que especifica el
lugar que ocupa cada elemento dentro del arc'io.
3nidimensionales (Pectores)
>ipo de
%rreglos
4idimensionales (Matrices)
3.1. >ectores
$s un arreglo de G<H elementos organizados en una dimensin donde G<H recibe el
nombre de longitud o tamao del ector. &ara 'acer referencia a un elemento del ector se
usa el nombre del mismo, seguido del ndice (entre corc'etes), el cual indica una posicin
en particular del ector. &or e!emplo-
PecXxY
*onde-
PecOOOO <ombre del arreglo
xOOOOO <umero de datos que constitu"en el arreglo
<epresentacin gr2fica de un vector
K
L
Q
/
,
!lenado de un >ector
Cacer para 5 E / a /,
Leer ecX5Y
=inBpara
Cacer mientras 5 ME /,
Leer ecX5Y
=inBmientras
5E/
PROF. JUAN MANSILLA NEYRA /L
PecX/Y
PecX:Y
PecX;Y
PecX0Y
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
1epetir
Leer ecX5Y
5 E 5 F /
CastaBque 5N/,
Pro+lemas propuestos
/) Calcular el promedio de ?, alores almacenados en un ector. *eterminar adems
cuantos son ma"ores que el promedio, imprimir el promedio, el numero de datos
ma"ores que el promedio " una lista de alores ma"ores que el promedio.
:) Llenar dos ectores % " 4 de 0? elementos cada uno, sumar el elemento uno del ector
% con el elemento uno del ector 4 " as sucesiamente 'asta 0?, almacenar el
resultado en un ector C, e imprimir el ector resultante.
;) Llenar un ector de :, elementos, imprimir la posicin " el alor del elemento ma"or
almacenado en el ector. 2uponga que todos los elementos del ector son diferentes.
0) %lmacenar ?,, n+meros en un ector, elear al cuadrado cada alor almacenado en el
ector, almacenar el resultado en otro ector. 5mprimir el ector original " el ector
resultante.
?) %lmacenar ;,, n+meros en un ector, imprimir cuantos son ceros, cuantos son
negatios, cuantos positios. 5mprimir adems la suma de los negatios " la suma de los
positios.
D) %lmacenar /?, n+meros en un ector, almacenarlos en otro ector en orden inerso al
ector original e imprimir el ector resultante.
3.% $atriz
$s un arreglo de M . < elementos organizados en dos dimensiones donde GMH es el
numero de filas o reglones " G<H el numero de columnas.
&ara representar una matriz se necesita un nombre de matriz se necesita un nombre
de matriz acompaado de dos ndices.
Mat X1,CY
*onde 1 indica el rengln " C indica la columna, donde se encuentra almacenado el
dato.
PROF. JUAN MANSILLA NEYRA /Q
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
<epresentacin gr2fica de una matriz
Mat X1,CY
/,/ /,: /,; /,0
:,/ :,: :,; :.0
;,/ ;,: ;,; ;,0
0,/ 0,: 0,; 0,0
!lenado de una matriz
Por renglones
Cacer para 1 E / a ?
Cacer para C E / a ?
Leer Mat X1,CY
=inBpara
=inBpara
Por columnas
Cacer para C E / a ?
Cacer para 1 E / a ?
Leer Mat X1,CY
=inBpara
=inBpara
<ota- &ara 'acer el llenado de una matriz se deben de usar dos ariables para los ndices "
se utilizan : ciclos uno para los renglones " otro para las columnas9 a estos ciclos se les
llama ciclos anidados (un ciclo dentro de otro ciclo).
Pro+lemas propuestos
/) Cacer un algoritmo que almacene n+meros en una matriz de ? . D. 5mprimir la suma de
los n+meros almacenados en la matriz.
:) Cacer un algoritmo que llene una matriz de /, . /, " determine la posicin Xrenglon
,columnaY del numero ma"or almacenado en la matriz. Los n+meros son diferentes.
;) Cacer un algoritmo que llene una matriz de K . K. Calcular la suma de cada rengln "
almacenarla en un ector, la suma de cada columna " almacenarla en otro ector.
0) Cacer un algoritmo que llene una matriz de :, . :,. 2umar las columnas e imprimir
que columna tuo la mxima suma " la suma de esa columna.
PROF. JUAN MANSILLA NEYRA :,
=ila o 1englon
X1Y
Columna
XCY
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
?) Cacer un algoritmo que llene una matriz de ? . ? " que almacene la diagonal principal
en un ector. 5mprimir el ector resultante.
D) Cacer un algoritmo que llene una matriz de /, . /, " que almacene en la diagonal
principal unos " en las dems posiciones ceros.
K) Cacer un algoritmo que llene una matriz de D . L " que almacene toda la matriz en un
ector. 5mprimir el ector resultante.
L) Cacer un algoritmo que llene una matriz de L . L, que almacene la suma de los
renglones " la suma de las columnas en un ector. 5mprimir el ector resultante.
Q) Cacer un algoritmo que llene una matriz de ? . D " que imprima cuantos de los n+meros
almacenados son ceros, cuantos son positios " cuantos son negatios.
3.1 DefinicinA :uncin 9 $anipulacin
3n problema comple!o se puede diidir en pequeos subproblemas mas sencillos.
$stos subproblemas se conocen como Mdulos " su complementacion en un lengua!e se
llama subprograma (procedimientos " funciones).
3n subprograma realiza las mismas acciones que un programa, sin embargo, un
subprograma lo utiliza solamente un programa para un propsito especifico.
3n subprograma recibe datos de un programa " le deuele resultados (el programa
GllamaH o GinocaH al subprograma, este e!ecuta una tarea especifica " deuele el
GcontrolH al programa que lo llamo).
=unciones
>ipos de
Mdulos
&rocedimientos
:uncin: 3na funcin en matemticas, es una operacin que toma un o mas alores
(argumentos) " deuele un resultado (alor de la funcin para los argumentos dados). &or
e!emplo-
=(8) E 8 # (/F8
:
)
*onde-
= OOOO.. <ombre de la funcin
8 OOOO. $s el argumento (tambin conocido como parmetro formal)
PROF. JUAN MANSILLA NEYRA :/
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Definicin de funciones: 3na definicin de funcin se presenta de la siguiente manera-
=uncin nombreJfuncion (p/, p:, O, pn)
5nicio
4loque de instrucciones
=in
*onde-
=uncin OOOOO $s la palabra clae que nos indica una definicin de funcin.
<ombreJfuncion O.. $s el identificador con el cual se reconoce a la funcin en el cuerpo
del
algoritmo principal.
&/,p:,O,pn OO... $s el grupo de parmetros que define a la funcin.
!lamado a una funcin
Cuando definimos una funcin solo le indicamos al algoritmo que esta funcin
existe, pero una definicin de funcin no implica la realizacin de las instrucciones que la
constitu"en. &ara 'acer uso de una funcin, el algoritmo principal la debe llamar. &or
e!emplo-
=uncin =(8)
5nicio
= E 8 #(/ F 8Z:)
=in
5nicio
5mprimir G$ste es el algoritmo principalH
Leer <
1 E =(<) llamado de la funcin
5mprimir G$l resultado de la funcin es-H,1
=in
Pro+lemas Propuestos
/) *isee un algoritmo que llene una matriz de /, . /, " determine-
%) $l numero ma"or almacenado en la matriz
4) $l numero ma"or almacenado en cada rengln
C) La columna que tuo la mxima suma
*) $l rengln que tuo la mxima suma
*isea una funcin para cada inciso.
:) *isee un algoritmo que lea un numero " mediante una funcin regrese el alor de / si
el numero es positio " B/ si es negatio).
PROF. JUAN MANSILLA NEYRA ::
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Curso de Visual Basic
Qu es Visual Basic? La palabra "Visual" hace referencia al mtodo que se utiliza para crear
la interfaz grfica de usuario (GUI) !n lugar de escribir numerosas l"neas de c#digo para
describir la apariencia $ la ubicaci#n de los elementos de la interfaz% simplemente puede
arrastrar $ colocar ob&etos prefabricados en su lugar dentro de la pantalla 'i ha utilizado alguna
(ez un programa de dibu&o como )aint% $a tiene la ma$or parte de las habilidades necesarias
para crear una interfaz de usuario efecti(a
La palabra "Basic" hace referencia al lengua&e *+'I, (*eginners +ll-)urpose '$mbolic
Instruction ,ode)% un lengua&e utilizado por ms programadores que ning.n otro lengua&e en la
historia de la informtica o computaci#n Visual *asic ha e(olucionado a partir del lengua&e
*+'I, original $ ahora contiene centenares de instrucciones% funciones $ palabras cla(e%
muchas de las cuales estn directamente relacionadas con la interfaz grfica de /indo0s Los
principiantes pueden crear aplicaciones .tiles con s#lo aprender unas pocas palabras cla(e%
pero% al mismo tiempo% la eficacia del lengua&e permite a los profesionales acometer cualquier
ob&eti(o que pueda alcanzarse mediante cualquier otro lengua&e de programaci#n de /indo0s
!l lengua&e de programaci#n Visual *asic no es e1clusi(o de Visual *asic La !dici#n para
aplicaciones del sistema de programaci#n de Visual *asic% incluida en 2icrosoft !1cel% 2icrosoft
+ccess $ muchas otras aplicaciones /indo0s% utilizan el mismo lengua&e !l sistema de
programaci#n de Visual *asic% 'cripting !dition (V*'cript) para programar en Internet es un
subcon&unto del lengua&e Visual *asic La in(ersi#n realizada en el aprendiza&e de Visual *asic
le a$udar a abarcar estas otras reas
Si su objetivo es crear un pequeo programa para su uso personal o para su grupo de
trabajo un sistema para una empresa o incluso aplicaciones distribuidas de alcance
mundial a travs de !nternet Visual Basic dispone de las "erramientas que necesita#
Las caracter"sticas de acceso a datos le permiten crear bases de datos $ aplicaciones
cliente para los formatos de las bases de datos ms conocidas% incluidos 2icrosoft '3L
'er(er $ otras bases de datos de mbito empresarial
Las tecnolog"as +cti(e45 le permiten utilizar la funcionalidad proporcionada por otras
aplicaciones% como el procesador de te1tos 2icrosoft /ord% la ho&a de clculo 2icrosoft
!1cel $ otras aplicaciones /indo0s )uede incluso automatizar las aplicaciones $ los
ob&etos creados con la !dici#n profesional o la !dici#n empresarial de Visual *asic
Las capacidades de Internet facilitan el acceso a documentos $ aplicaciones a tra(s de
Internet desde su propia aplicaci#n
La aplicaci#n terminada es un autntico archi(o e1e que utiliza una biblioteca de ("nculos
dinmicos (6LL) de tiempo de e&ecuci#n que puede distribuir con toda libertad
PROF. JUAN MANSILLA NEYRA :;
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
$% !ntroducci&n'
1.1- Programacin orientada a objetos.
$#$#$% (bjetos#
3n ob!eto es una entidad que tiene asociado un con!unto de mtodos, eentos " propiedades. $!emplo - 3na
ca!a de texto (>ext4ox) en la cual podemos escribir cualquier lnea es un ob!eto.
$#$#)% *ropiedades#
2on las caractersticas que posee un ob!eto o un formulario (entana de [indo7s).
$!emplo - Color de fondo del formulario, =uente de texto de un >ext4ox, O.
$#$#+% ,todos#
Los mtodos son funciones internas de un determinado ob!eto que permite realizar funciones sobre l o sobre
otro ob!eto.
$!emplo - *eseamos poner en la entana [indo7s de nuestra aplicacin \Cola mundo\, por tanto pondremos
el mtodo BN Pentana.&rint \Cola mundo\

$#$#-% .ventos#
Los eentos son acciones que se pueden realizar en cualquier control- clic6, doble clic6, moimiento del
ratn. % estos eentos se les puede asociar cdigo para que se e!ecute al producir el eento.
3n programa Pisual 4asic es un &@$ (&rograma orientado a eentos).
>odo lo que 'acemos en un programa Pisual 4asic est generado por medio de eentos

$#$#/% .0plicaci&n integrada 1 ejemplo de (bjetos *ropiedades ,todos 1 .ventos#
Los formularios " controles de Pisual 4asic son ob!etos que exponen sus propios mtodos, propiedades "
eentos.
Las propiedades se pueden considerar como atributos de un ob!eto, los mtodos como sus acciones " los
eentos como sus respuestas.
Un objeto de uso diario como el globo de un nio tiene tambin propiedades, mtodos " eentos. $ntre
las propiedades de un globo se inclu"en atributos isibles como el peso, el dimetro " el color. @tras
propiedades describen su estado (inflado o desinflado) o atributos que no son isibles, como su edad. &or
definicin, todos los globos tienen estas propiedades9 lo que ara de un globo a otros son los alores de
estas propiedades.
3n globo tiene tambin mtodos o acciones in'erentes que puede efectuar. >iene un mtodo inflar (la
accin de llenarlo de 'elio) o un mtodo desinflar (expeler su contenido) " un mtodo elearse (si se de!a
escapar). *e nueo, todos los globos pueden efectuar estos mtodos.
Los globos tienen adems respuestas predefinidas a ciertos eentos externos. &or e!emplo, un globo
respondera al eento de pinc'arlo desinflndose o al eento de soltarlo elendose en el aire.
Los ob!etos tienen propiedades, responden a eentos " e!ecutan mtodos-

2i se pudiera programar un globo, el cdigo de Pisual 4asic podra ser como el siguiente. &ara establecer
las propiedades del globo-
Alobo.Color E 1o!o
Alobo.*imetro E /,
Alobo.5nflado E >rue

@bsere la sintaxis del cdigo- el ob!eto (Alobo) seguido de la propiedad (Color) seguida de la asignacin
del alor (1o!o). &odra modificar el color del globo desde el cdigo si repitiera esta instruccin "
sustitu"era el alor por otro diferente. Las propiedades tambin se pueden establecer en la entana
&ropiedades mientras se est diseando la aplicacin.
Los mtodos de un globo se inocan de esta forma-
Alobo.5nflar
Alobo.*esinflar
PROF. JUAN MANSILLA NEYRA :0
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Alobo.$lear ?

La sintaxis es similar a la sintaxis de las propiedades- el ob!eto (un nombre) seguido de un mtodo (un
erbo). $n el tercer e!emplo 'a" un elemento adicional, llamado argumento, que indica la distancia que se
elea. %lgunos mtodos tendrn uno o ms argumentos para describir ms a fondo la accin que se a a
e!ecutar.
$l globo puede responder a un eento como se muestra a continuacin-
2ub AloboJ&inc'azo()
Alobo.*esinflar
Alobo.Cacer1uido \4ang\
Alobo.5nflado E =alse
Alobo.*imetro E /
$nd 2ub

$n este caso, el cdigo describe el comportamiento del globo cuando se produce un eento &inc'azo-
inoca el mtodo *esinflar " luego inoca el mtodo Cacer1uido con un argumento G4angH (el tipo de
ruido que se a a 'acer). Como el globo "a no est inflado, la propiedad 5nflado tiene el alor =alse " la
propiedad *imetro adopta un nueo alor.
2i bien no puede programar un globo, s puede programar un formulario o un control de Pisual 4asic. Como
programador, tiene el control- decide qu propiedades se deben modificar, qu mtodos se deben inocar o a
qu eentos 'a" que responder para conseguir la apariencia " el comportamiento deseados

$#$#2% 3i4erencias entre la programaci&n procedural 1 la programaci&n bajo 5indo6s#

3na ersin reducida del funcionamiento de [indo7s inclu"e tres conceptos clae- entanas, eentos "
mensa!es.
Una ventana es simplemente una regin rectangular con sus propios lmites. &robablemente "a sabe que
'a" arios tipos de entanas- una entana $xplorador en [indo7s Q?, una entana de documento dentro
de su programa de proceso de textos o un cuadro de dilogo que emerge para recordarle una cita. %unque
stos son los e!emplos ms comunes, realmente 'a" otros muc'os tipos de entanas. 3n botn de comando
es una entana. Los iconos, cuadros de texto, botones de opcin " barras de men+s son todos entanas.
$l sistema operatio Microsoft [indo7s administra todas estas entanas asignando a cada una un +nico
n+mero identificador (controlador de entana o '[nd). $l sistema controla continuamente cada una de
estas entanas para er si existen signos de actiidad o eentos.
Los eventos pueden producirse mediante acciones del usuario, como 'acer clic con el mouse (ratn) o
presionar una tecla, mediante programacin o incluso como resultado de acciones de otras entanas.
Cada ez que se produce un eento se ena un mensaje al sistema operatio. $l sistema procesa el
mensa!e " lo transmite a las dems entanas. $ntonces, cada entana puede realizar la accin apropiada,
basndose en sus propias instrucciones para tratar ese mensa!e en particular (por e!emplo, olerse a
dibu!ar cuando otra entana la 'a de!ado al descubierto).
Como puede imaginar, tratar todas las combinaciones posibles de entanas, eentos " mensa!es podra ser
interminable. %fortunadamente, Pisual 4asic le eita tener que tratar con todos los controladores de
mensa!es de ba!o niel. Muc'os de los mensa!es los controla automticamente Pisual 4asic, mientras que
otros se tratan como procedimientos de eento para su comodidad. $sto le permite crear rpidamente
eficaces aplicaciones sin tener que tratar detalles innecesarios.
$n las aplicaciones tradicionales o \por procedimientos\, la aplicacin es la que controla qu partes de
cdigo " en qu secuencia se e!ecutan. La e!ecucin comienza con la primera lnea de cdigo " contin+a
con una ruta predefinida a tras de la aplicacin, llamando a los procedimientos seg+n se necesiten.

1.3- Proyecto.

PROF. JUAN MANSILLA NEYRA :?
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
$#+#$% 3e4inici&n de *ro1ecto en Visual Basic#
&ara crear una aplicacin con Pisual 4asic se traba!a con pro"ectos. 3n proyeto es una coleccin de
arc'ios que se usan para generar una aplicacin. $ste tema describe cmo generar " administrar
pro"ectos.
%l crear una aplicacin probablemente crear nueos formularios9 tambin puede oler a usar o modificar
formularios creados en pro"ectos anteriores. $sto tambin se aplica a otros mdulos o arc'ios que pueda
incluir en su pro"ecto. Los controles %ctie8 " los ob!etos de otras aplicaciones tambin se pueden
compartir entre pro"ectos.
*espus de ensamblar todos los componentes de un pro"ecto " escribir el cdigo, puede compilar el
pro"ecto para crear un arc'io e!ecutable.


$#+#)%Componentes de un *ro1ecto#
Cuando desarrolla un aplicacin, traba!a con un arc'io de pro"ecto para administrar todos los diferentes
arc'ios que crea. 3n pro"ecto consta de lo siguiente-
3n arc'io de pro"ecto que realiza el seguimiento de todos los componentes (.bp)
3n arc'io para cada formulario (.frm).
3n arc'io de datos binario para cada formulario que contenga datos sobre propiedades de controles
del formulario (.frx). $stos arc'ios no se pueden modificar " los genera automticamente cualquier
arc'io .frm que tenga propiedades en formato binario, como Picture o Icon.
@pcionalmente, un arc'io para cada mdulo de clase (.cls).
@pcionalmente, un arc'io para cada mdulo estndar (.bas).
@pcionalmente, uno o ms arc'ios con controles %ctie8 (.ocx).
@pcionalmente, un +nico arc'io de recursos (.res).

$l ar!"#o de proyeto es simplemente una lista de todos los arc'ios " ob!etos asociados con el pro"ecto,
as como informacin sobre las opciones de entorno establecidas. $sta informacin se actualiza cada ez
que guarda el pro"ecto. >odos los arc'ios " ob!etos tambin se pueden compartir con otros pro"ectos.
Cuando 'a completado todos los arc'ios del pro"ecto puede conertir el pro"ecto en un arc'io
e!ecutable (.exe)- en el men+ Archivo, eli!a el comando Generar proyeto$e%e.

1!"1#$ormularios
3n formulario es una entana. La entana [indo7s de cualquier aplicacin.
&odemos abrir tantas entanas como queramos en nuestro pro"ecto, pero el nombre de las entanas debe ser
distinto. &or defecto como "a 'emos isto, la entana que se abre en Pisual 4asic tiene el nombre de =orm/.
]a eremos como cambiar estas \&ropiedades\ ms adelante.
Los mdulos de formularios (extensin de nombre de arc'io .frm) pueden contener descripciones en
forma de texto del formulario " sus controles, inclu"endo los alores de sus propiedades. >ambin pueden
contener declaraciones a niel de formulario de constantes, ariables " procedimientos externos,
procedimientos de eento " procedimientos generales.

1!""#%&dulos de clase
Los mdulos de clase (extensin de nombre de arc'io .cls) son similares a los mdulos de formulario,
excepto en que no tiene interfaz de usuario isible. &uede usar mdulos de clase para crear sus propios
ob!etos, inclu"endo cdigo para mtodos " propiedades.

1!"!#%&dulos est'ndar
3n mdulo es un arc'io Pisual 4asic donde escribimos parte del cdigo de nuestro programa, " digo parte,
porque puede 'aber cdigo en el formulario tambin.
Las rutinas incluidas dentro de los mdulos pueden ser e!ecutadas desde los formularios de la aplicacin.
Los mdulos estndar (extensin de nombre de arc'io .bas) pueden contener declaraciones p+blicas o a
niel de mdulo de tipos, constantes, ariables, procedimientos externos " procedimientos p+blicos.

1!"(#Archivos de )ecursos
PROF. JUAN MANSILLA NEYRA :D
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Los arc'ios de recursos (extensin de nombre de arc'io .res) contienen mapas de bits, cadenas de texto "
otros datos que puede modificar sin oler a modificar el cdigo. &or e!emplo, si piensa traducir su
aplicacin a un idioma extran!ero, puede guardar todas las cadenas de texto de la interfaz de usuario " los
mapas de bits en un arc'io de recursos, " simplemente traducir el arc'io de recursos en ez de la
aplicacin completa. 3n pro"ecto slo puede contener un arc'io de recursos.

1!"*#+ontroles Active ,
Los controles %ctie8 (extensin de nombre de arc'io .ocx) son controles opcionales que se pueden
agregar al cuadro de 'erramientas " se pueden usar en formularios. Cuando instala Pisual 4asic, los
arc'ios que contienen los controles incluidos en Pisual 4asic se copian a un directorio com+n (el
subdirectorio ^[indo7s^2"stem en [indo7s Q?). $xisten controles %ctie8 adicionales disponibles en
diersas fuentes. >ambin puede crear sus propios controles mediante las ediciones &rofesional "
$mpresarial de Pisual 4asic.

1!"-#+ontroles est'ndar
Los controles estndar los proporciona Pisual 4asic. Los controles estndar, como Command4utton (botn
de comando) o =rame (marco), siempre estn incluidos en el cuadro de 'erramientas, al contrario de lo que
ocurre con los controles %ctie8 " los ob!etos insertables, que se pueden agregar " quitar del cuadro de
'erramientas.

1.4-Entorno de Desarrollo.

787-*arra de men. $ 789-*arra de :erramientas
$n la entana del programa, podemos 'acer todas las funciones normales que nos permite el compilador
Pisual 4asic.

78;-Ventana de )ro$ecto


&ulse \CtrlF1\ (Per BN &ro"ecto) " se abrir la entana de pro"ectos (;).
$n esta entana tenemos todos los fic'eros del pro"ecto Pisual 4asic en el que amos a traba!ar.

788- <ormulario
%l principio " por defecto, el programa abre un formulario con el nombre =orm/ que es la entana [indo7s
de nuestra aplicacin.
78=- Ventana de )ropiedades

PROF. JUAN MANSILLA NEYRA :K
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

&ulsando la tecla \=0\, aparecer la entana de propiedades . $sta entana es fundamental, "a que contiene
todas las propiedades de cada ob!eto que insertaremos en nuestro formulario, as como las propiedades del
formulario en s.

78>- ,a&a de :erramientas


La entana ca!a de 'erramientas contiene todos los ob!etos que podemos incluir en nuestro formulario. $sta
entana se puede abrir en el men+ principal (Per BN Ca!a de 'erramientas).


)%*rogramaci&n'
PROF. JUAN MANSILLA NEYRA :L
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

2.1- Fundamentos de la Programacin.

Cada mdulo de formulario contiene proed"m"entos de e#ento (secciones de cdigo donde se colocan las
instrucciones que se e!ecutarn como respuesta a eentos especficos). Los formularios pueden contener
controles. &or cada control de un formulario, existe el correspondiente con!unto de procedimientos de
eento en el mdulo de formulario. %dems de procedimientos de eento, los mdulos de formulario
pueden contener procedimientos generales que se e!ecutan como respuesta a una llamada desde cualquier
procedimiento de eento.
$l cdigo que no est relacionado con un control o un formulario especfico se puede colocar en un tipo
diferente de mdulo, un mdulo est&ndar (.bas). 2e deben colocar en un mdulo estndar los
procedimientos que se puedan utilizar como respuesta a eentos de diersos ob!etos, en lugar de duplicar el
cdigo en los procedimientos de eento de cada ob!eto.

977- ,omo funciona una aplicaci#n controlada por e(entos

3n eento es una accin reconocida por un formulario o un control. Las aplicaciones controladas por
eentos e!ecutan cdigo 4asic como respuesta a un eento. Cada formulario " control de Pisual 4asic tiene
un con!unto de eentos predefinidos. 2i se produce uno de dic'os eentos " el procedimiento de eento
asociado tiene cdigo, Pisual 4asic llama a ese cdigo.
Los tipos de eentos reconocidos por un ob!eto aran, pero muc'os tipos son comunes a la ma"ora de los
controles. &or e!emplo, la ma"ora de los ob!etos reconocen el eento Clic6- si un usuario 'ace clic en un
formulario, se e!ecuta el cdigo del procedimiento de eento Clic6 del formulario9 si un usuario 'ace clic
en un botn de comando, se e!ecuta el cdigo del procedimiento de eento Clic6 del botn. $l cdigo en
cada caso ser diferente.
Ce aqu una secuencia tpica de eentos en una aplicacin controlada por eentos-
1 2e inicia la aplicacin " se carga " muestra un formulario.
" $l formulario (o un control del formulario) recibe un eento. $l eento puede estar causado por el
usuario (por e!emplo, por la pulsacin de una tecla), por el sistema (por e!emplo, un eento de cronmetro)
o, de forma indirecta, por el cdigo (por e!emplo, un eento Load cuando el cdigo carga un formulario).
! 2i 'a" cdigo en el procedimiento de eento correspondiente, se e!ecuta.
( La aplicacin espera al eento siguiente.

2.2- Variables.
)#)#$% 7lcance de las variables#
$l alcance de una ariable define qu partes del cdigo son conscientes de su existencia. Cuando declara
una ariable en un procedimiento, slo el cdigo de dic'o procedimiento puede tener acceso o modificar el
alor de la ariable9 tiene un alcance que es local al procedimiento. % eces, sin embargo, se necesita
utilizar una ariable con un alcance ms general, como aquella cu"o alor est disponible para todos los
procedimientos del mismo mdulo o incluso para todos los procedimientos de toda la aplicacin. Pisual
4asic le permite especificar el alcance de una ariable cuando la declara.

.stablecimiento del alcance de las variables
*ependiendo de cmo se declara, una ariable tiene como alcance un procedimiento (local) o un mdulo.
Alcance Privado P.blico
?i(el de procedimiento Las (ariables son pri(adas del
procedimiento en el que
aparecen
?o es aplicable ?o puede
declarar (ariables p.blicas dentro
de un procedimiento
?i(el de m#dulo Las (ariables son pri(adas del
m#dulo en el que aparecen
Las (ariables estn disponibles
para todos los m#dulos
Variables utilizadas en un rocedimiento
PROF. JUAN MANSILLA NEYRA :Q
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

Las ariables a niel de procedimiento slo se reconocen en el procedimiento en el que se 'an declarado.
2e las conoce tambin como ariables locales. 2e declaran mediante las palabras clae /im o 0tatic. &or
e!emplo-
*im int>emp %s 5nteger
_ o bien _
2tatic int&ermanent %s 5nteger

Los alores de ariables locales declaradas con 0tatic existen mientras se e!ecuta la aplicacin, mientras
que las ariables declaradas con /im slo existen mientras se e!ecuta el procedimiento.
Las ariables locales resultan una eleccin apropiada para clculos temporales. &or e!emplo, puede crear
una docena de procedimientos distintos que contengan una ariable llamada int>emp. Como cada int>emp
se 'a declarado como una ariable local, cada procedimiento slo reconoce su propia ersin de int>emp.
Cualquier procedimiento puede alterar el alor de su int>emp local sin que ello afecte a las ariables
int>emp de los dems procedimientos.

Variables utilizadas en un mdulo
*e forma predeterminada, una ariable a niel de mdulo est disponible para todos los procedimientos
del mdulo, pero no para el cdigo de otros mdulos. Cree ariables a niel de mdulo declarndolas con
la palabra clae Private en la seccin *eclaraciones al principio del mdulo. &or e!emplo-
Private int1emp As Integer

% niel de mdulo, no 'a" diferencia entre Private " /im, pero es preferible Private porque contrasta con
Public " 'ace que el cdigo sea ms fcil de comprender.

Variables utilizadas or todos los mdulos
&ara 'acer que una ariable a niel de mdulo est disponible para otros mdulos, utilice la palabra clae
Public para declarar la ariable. Los alores de las ariables p+blicas estn disponibles para todos los
procedimientos de la aplicacin. %l igual que todas las ariables a niel de mdulo, las ariables p+blicas
se declaran en la seccin *eclaraciones al principio del mdulo. &or e!emplo-
Public int1emp As Integer

2ota <o puede declarar ariables p+blicas en un procedimiento, slo en la seccin *eclaraciones de un
mdulo.

)#)#)% 3eclaraci&n
La forma de declarar las ariables es la siguiente-
/im3 Public3 0tatic nombreJariable As tipo
/im: %l declarar una ariable con esta palabra estamos diciendo que la ariable sea local al mbito en que se
declara. &uede ser dentro de un procedimiento o dentro de un formulario, de esta forma no sera accesible
desde los dems procedimientos o formularios.
Public- Las ariables declaradas sern publicas " podrn estar accesibles desde todos los formularios de la
aplicacin. &ara conseguirlo tendremos que declararlas en un mdulo de cdigo, no en la seccin delarat"ons
de cualquier formulario de los que conste la aplicacin. &ara crear un mdulo de cdigo en el men+ principal
de Pisual 4asic marcamos en &1@]$C>@#5<2$>%1 M`*3L@ " aparecer !unto a los dems formularios
de la entana de pro"ecto aunque con un icono distinto indicando que se trata de un mdulo de cdigo.
0tatic: Con esta forma de declarar ariables conseguiremos que las ariables locales no se creen " se
destru"an al entrar " salir de los procedimientos donde fueron declaradas sino que se mantenga su alor
durante todo el periodo de e!ecucin de la aplicacin. *e esta forma a entrar en alg+n procedimiento las
ariables recuerdan el alor que tenan cuando se sali de l.
)#)#+% 8ipos de variables
&15P%>$1IP4 +4%521A)I4
PROF. JUAN MANSILLA NEYRA ;,
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
4@@L$%< 2lo admite : alores >13$ o =%L2$
4]>$ admite alores entre , " :??
5<>$A$1 admite alores entre B;:KDL " ;:KDK
L@<A
admite alores entre B:./0K.0L;.D0L "
:./0K.0L;.D0K
25<AL$
admite alores decimales con precisin
simple
*@34L$
admite alores decimales de doble
precisin
C311$<C] lido para alores de tipo moneda
2>15<A cadenas de caracteres
*%>$ fec'as, permite operar con ellas

)#)#-% ,atrices
&ara declarar matrices debemos colocar entre parntesis el n+mero de elementos de los que constar a
continuacin del nombre de la ariable-
/im medidas(Q) as integer
*e esta forma tenemos una matriz de /, elementos identificados del , al Q. &odemos obligar a que el primer
elemento de una matriz tenga el ndice con alor /. $sto lo 'aremos colocando la instruccin option base / en
la seccin declarations de nuestro formulario. >ambin podemos indicar los lmites inferior " superior de la
matriz-
/im medidas(? to /0) as integer
es una matriz de /, elementos cu"os indices an del ? al /0. Las matrices multidimensionales se declaran de
la siguiente forma-
/im medidas(/ to /,, / to /,) as integer

CO)#ID"<ACIO)"#
%l traba!ar con Pisual 4asic es preferible que actiemos la opcin que nos obligue a declarar todas
las ariables que utilicemos, de esta forma nos a'orraremos errores inesperados como el de traba!ar con una
ariable "a utilizada anteriormente producindose un conflicto dficil de resoler.
&ara actiar esta opcin debemos ir a la opcin del men+ Cerramientas " @pciones para que aparezca un
cuadro de dialogo como este.
La opcin que nos interesa actiar es <e'uerir declaracin de varia+les que en este caso "a lo est. *e esta
forma en cada seccin declarations de cada formulario aparecer la sentencia option explicit
@tra opcin que es interesante actiar, es la de 1uardar los cam+ios en la fic'a entornoA la cual te guarda una
copia del cdigo antes de e!ecutarlo por si acaso luego no podemos, se bloquea la aplicacin etc... no suele
PROF. JUAN MANSILLA NEYRA ;/
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
pasar pero nunca se sabe. *e esta forma te aseguras que lo +ltimo que 'a"as e!ecutado lo tienes guardado en
el disco.
La opcin Compro+acin autom2tica de sintaBis normalmente iene actiada por defecto, no coniene
desactiarla puesto que te aisa de errores de sintaxis conforme as escribiendo el cdigo- 2i te falta el t'en
despus del if, el do antes del 7'ile etc...

2.3- Procedimientos y !unciones.

9;7-Introducci#n a los )rocedimientos

&uede simplificar las tareas de programacin si diide los programas en componentes lgicos ms
pequeos. $stos componentes, llamados proed"m"entos, pueden conertirse en bloques bsicos que le
permiten me!orar " ampliar Pisual 4asic.
Los procedimientos resultan mu" +tiles para condensar las tareas repetitias o compartidas, como clculos
utilizados frecuentemente, manipulacin de texto " controles, " operaciones con bases de datos.
Ca" dos enta!as principales cuando se programa con procedimientos-
Los procedimientos le permiten diidir los programas en unidades lgicas discretas, cada una de las
cuales se puede depurar ms fcilmente que un programa entero sin procedimientos.
Los procedimientos que se utilizan en un programa pueden actuar como bloques de construccin de
otros programas, normalmente con pocas o ninguna modificacin.

$n Pisual 4asic se utilizan arios tipos de procedimientos-
&rocedimientos 0ub que no deuelen un alor.
&rocedimientos $unction que deuelen un alor (normalmente conocidos como funciones).

)#+#)% *rocedimientos#

3n procedimiento 0ub es un bloque de cdigo que se e!ecuta como respuesta a un eento. %l diidir el
cdigo de un mdulo en procedimientos 0ub, es ms sencillo encontrar o modificar el cdigo de la
aplicacin.
La sintaxis de un procedimiento 0ub es la siguiente-
6Private3Public760tatic70ub nom're(proed"m"ento (argumentos)
"nstru"ones
5nd 0ub

Cada ez que se llama al procedimiento se e!ecutan las "nstru"ones que 'a" entre 0ub " 5nd 0ub. 2e
pueden colocar los procedimientos 0ub en mdulos estndar, mdulos de clase " mdulos de formulario.
*e forma predeterminada, los procedimientos 0ub son Public en todos los mdulos, lo que significa que
se les puede llamar desde cualquier parte de la aplicacin.
Los argumentos de un procedimiento son como las declaraciones de ariables9 se declaran alores que se
pasan desde el procedimiento que 'ace la llamada.
1esulta mu" +til en Pisual 4asic distinguir entre dos tipos de procedimientos 0ub, proed"m"entos
generales " proed"m"entos de e#ento.

Procedimientos generales

3n procedimiento general indica a la aplicacin cmo realizar una tarea especfica. 3na ez que se define
un procedimiento general, se le debe llamar especficamente desde la aplicacin. &or el contrario, un
procedimiento de eento permanece inactio 'asta que se le llama para responder a eentos proocados
por el usuario o desencadenados por el sistema.
S&or qu crear procedimientos generalesT 3na razn es que muc'os procedimientos de eento distintos
pueden necesitar que se lleen a cabo las mismas acciones. $s una buena estrategia de programacin colocar
las instrucciones comunes en un procedimiento distinto (un procedimiento general) " 'acer que los
PROF. JUAN MANSILLA NEYRA ;:
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
procedimientos de eento lo llamen. $sto elimina la necesidad de duplicar cdigo " tambin 'ace que la
aplicacin sea ms fcil de mantener.

Procedimientos de e"ento

Cuando un ob!eto en Pisual 4asic reconoce que se 'a producido un eento, llama automticamente al
procedimiento de eento utilizando el nombre correspondiente al eento. Como el nombre establece una
asociacin entre el ob!eto " el cdigo, se dice que los procedimientos de eento estn ad!untos a
formularios " controles.
3n procedimiento de eento de un control combina el nombre real del control (especificado en la
propiedad 2ame), un carcter de subra"ado (J) " el nombre del eento. &or e!emplo, si desea que un
botn de comando llamado cmd&la" llame a un procedimiento de eento cuando se 'aga clic en l,
utilice el procedimiento cmd&la"JClic6.
3n procedimiento de eento de un formulario combina la palabra \=orm\, un carcter de subra"ado "
el nombre del eento. 2i desea que un formulario llame a un procedimiento de eento cuando se 'ace
clic en l, utilice el procedimiento =ormJClic6. (Como los controles, los formularios tienen nombres
+nicos, pero no se utilizan en los nombres de los procedimientos de eento.)

>odos los procedimientos de eento utilizan la misma sintaxis general.

0inta8is de un evento de control 0inta8is de un evento de 9ormulario

Private 0ub nom'reontrol(nom'ree#ento (argumentos )
"nstru"ones
5nd 0ub

Private 0ub $ormJnom'ree#ento (argumentos)
"nstru"ones
5nd 0ub


)#+#+% 9unciones#

La sintaxis de un procedimiento $unction es la siguiente-
6Private3Public760tatic7$unction nom're(proed"m"ento (argumentos) XAs t"poY
"nstru"ones
5nd $unction

%l igual que un procedimiento 0ub, un procedimiento $unction es un procedimiento diferente que puede
tomar argumentos, realizar una serie de instrucciones " cambiar el alor de los argumentos. % diferencia de
los procedimientos 0ub, los procedimientos $unction pueden deoler un alor al procedimiento que
realiza la llamada. Ca" tres diferencias entre los procedimientos 0ub " $unction-
Aeneralmente, se llama a una funcin inclu"endo el nombre " los argumentos del procedimiento en la
parte derec'a de una instruccin o expresin ma"or (#alor(retorno ) *un"n+,).
Los procedimientos $unction tienen tipos de datos, al igual que las ariables. $sto determina el tipo
del alor de retorno. ($n ausencia de la clusula As, el tipo es el tipo predeterminado :ariant.)
2e deuele un alor asignndole al propio nom're(proed"m"ento. Cuando el procedimiento
$unction deuele un alor, se puede conertir en parte de una expresin ma"or.

&or e!emplo, podra escribir una funcin que calculara el tercer lado, o 'ipotenusa, de un tringulo
rectngulo, dados los alores de los otros dos lados-
$unction Hipotenusa ;A As Integer< = As Integer> As 0tring
Hipotenusa ? 0@r;A A " B = A ">
PROF. JUAN MANSILLA NEYRA ;;
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
5nd $unction

2e llama a un procedimiento $unction de la misma forma que a las funciones incorporadas en Pisual
4asic-
Label1+aption ? Hipotenusa;+Int;1e8t11e8t><+Int;1e8t"1e8t>>
str, ? Hipotenusa;Cidth< Height>

)#+#-% Llamadas a *rocedimientos#

3n procedimiento 0ub difiere de un procedimiento $unction en que al procedimiento 0ub no se le puede
llamar mediante su nombre en una expresin. La llamada a un procedimiento 0ub es una instruccin +nica.
%dems, un procedimiento 0ub no deuele un alor en su nombre como 'ace una funcin. 2in embargo,
al igual que $unction, un procedimiento 0ub puede modificar los alores de las ariables que se le pasan.
Ca" dos formas de llamar a un procedimiento 0ub-
a %mbas instrucciones llaman a un 2ub denominado Mi&roc.
+all %iProc ;PrimerArgumento< 0egundoArgumento>
%iProc PrimerArgumento< 0egundoArgumento

@bsere que cuando utiliza la sintaxis +all, debe poner los argumentos entre parntesis. 2i omite la palabra
clae +all, deber tambin omitir los parntesis alrededor de los argumentos.

)#+#/% Llamadas a 9unciones#

<ormalmente se llama a un procedimiento de funcin que se 'a escrito de la misma forma en que se llama
a una funcin intrnseca de Pisual 4asic como Abs9 es decir, utilizando su nombre en una expresin-
D Las instrucciones siguientes llamarEan a una 9unci&n F
D llamada 1o/ec
Print 1G H Adec
, ? Adec
I9 Adec ? 1G 1hen /ebugPrint I$uera del intervaloI
, ? 4tra$unci&n;1G H Adec>

>ambin es posible llamar a una funcin igual que se llama a un procedimiento 0ub. Las instrucciones
siguientes llaman a la misma funcin-
Call ]ear(<o7)
]ear <o7

Cuando llama a una funcin de esta manera, Pisual 4asic desec'a el alor de retorno.
)#+#2% *asaje de argumentos a los procedimientos 1 4unciones#

<ormalmente el cdigo de un procedimiento necesita cierta informacin sobre el estado del programa para
realizar su traba!o. $sta informacin consiste en ariables que se pasan al procedimiento cuando se le
llama. Cuando se pasa una ariable a un procedimiento, se llama argumento.

#ios de datos de los argumentos

PROF. JUAN MANSILLA NEYRA ;0
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Los argumentos de los procedimientos que escriba tienen el tipo de dato :ariant de forma predeterminada.
2in embargo, puede declarar otros tipos de datos para los argumentos. &or e!emplo, la funcin siguiente
acepta una cadena " un entero-

$unction JuK+omer ;/Ea0emana As 0tring< Hora As Integer> As 0tring
D /evuelve el men. del almuerzo bas'ndose en el dEa L la hora
I9 /Ea0emana ? I:iernesI then
JuK+omer ? IPescadoI
5lse
JuK+omer ? IPolloI
5nd I9
I9 Hora M ( 1hen JuK+omer ? I/emasiado tardeI
5nd $unction

Paso de argumentos or "alor
2lo se pasa una copia de la ariable cuando se pasa un argumento por alor. 2i el procedimiento cambia el
alor, el cambio afecta slo a la copia " no a la ariable propiamente dic'a. 3tilice la palabra clae =L:al
para indicar un argumento pasado por alor.
&or e!emplo-
0ub +uentas ;=L:al int2um+uenta as Integer>

D Ponga a@uE sus instrucciones

5nd 0ub

Paso de argumentos or re!erencia
&asar argumentos por referencia le da al procedimiento acceso al contenido real de la ariable en su
ubicacin de direccin de memoria. Como resultado, el procedimiento al que se 'a pasado el alor de la
ariable se puede modificar de forma permanente. La forma predeterminada de pasar alores en Pisual
4asic es por referencia. 2i especifica el tipo de dato de un argumento que se pasa por referencia, debe
pasar un alor de ese tipo para el argumento. &uede eludirlo si pasa una expresin en ez de un tipo de dato
como argumento. Pisual 4asic eal+a la expresin " la pasa como el tipo requerido si puede. La forma
ms sencilla de conertir una ariable en una expresin es ponerla entre parntesis. &or e!emplo, para pasar
una ariable declarada como entero a un procedimiento que espera una cadena como argumento, debera
'acer lo siguiente-

0ub ProcedimientoJueLlama ;>
/im int, As Integer
int, ? 1" H !
$oo;int,>
5nd 0ub

0ub $oo;=ar As 0tring>
%sg=o8 =ar D5l valor de =ar es la cadena I!-I
5nd 0ub
2.4- Estructuras de $ontrol %&eeticin y Decisin'.

)#-#$%3o 5"ile : Loop ; 3o : Loop 5"ile#
PROF. JUAN MANSILLA NEYRA ;?
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
3tilice el bucle /o para e!ecutar un bloque de instrucciones un n+mero indefinido de eces. Ca" algunas
ariantes en la instruccin /oLoop, pero cada una eal+a una condicin numrica para determinar si
contin+a la e!ecucin. Como ocurre con I91hen, la ond""n debe ser un alor o una expresin que d
como resultado $alse (cero) o 1rue (distinto de cero).
$n el e!emplo de /oLoop siguiente, las "nstru"ones se e!ecutan siempre " cuando ond""n sea 1rue-

/o Chile ond""n
"nstru"ones
Loop

Cuando Pisual 4asic e!ecuta este bucle /o, primero eal+a ond""n. 2i ond""n es $alse (cero), se
salta todas las instrucciones. 2i es 1rue (distinto de cero), Pisual 4asic e!ecuta las instrucciones, uele a
la instruccin /o Chile " prueba la condicin de nueo.
&or tanto, el bucle se puede e!ecutar cualquier n+mero de eces, siempre " cuando ond""n sea distinta
de cero o 1rue. <unca se e!ecutan las instrucciones si ond""n es $alse inicialmente. &or e!emplo, este
procedimiento cuenta las eces que se repite una cadena de destino dentro de otra cadena repitiendo el
bucle tantas eces como se encuentre la cadena de destino-

$unction +ontar+adenas ;cadenalarga< destino>
/im posici&n< contador
posici&n ? 1
/o Chile In0tr;posici&n< cadenalarga< destino>
posici&n ? In0tr;posici&n< cadenalarga< destino> B1
contador ? contador B 1
Loop
+ontar+adenas ? contador
5nd $unction

2i la cadena de destino no est en la otra cadena, In0tr deuele , " no se e!ecuta el bucle.
@tra ariante de la instruccin /oLoop e!ecuta las instrucciones primero " prueba ond""n despus de
cada e!ecucin. $sta ariacin garantiza al menos una e!ecucin de "nstru"ones-

/o
"nstru"ones
Loop Chile ond""n

<ace el bucle cero o m=s veces <ace el bucle al menos una ve>
3o ?ntil condicin
instrucciones
Loop
3o
instrucciones
Loop ?ntil condicin


)#-#)% 9or : @e0t#
Los bucles /o funcionan bien cuando no se sabe cuntas eces se necesitar e!ecutar las instrucciones del
bucle. 2in embargo, cuando se sabe que se an a e!ecutar las instrucciones un n+mero determinado de
eces, es me!or elegir el bucle $orN2e8t. % diferencia del bucle /o, el bucle $or utiliza una ariable
llamada contador que incrementa o reduce su alor en cada repeticin del bucle. La sintaxis es la siguiente-

$or ontador E "n""ar 1o *"nal"-ar X0tep "nrementoY
"nstru"ones
2e8t XontadorY

Los argumentos ontador, "n""ar, *"nal"-ar e "nremento son todos numricos.
2ota $l argumento "nremento puede ser positio o negatio. 2i "nremento es positio, "n""ar debe ser
menor o igual que *"nal"-ar o no se e!ecutarn las instrucciones del bucle. 2i "nremento es negatio,
PROF. JUAN MANSILLA NEYRA ;D
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
"n""ar debe ser ma"or o igual que *"nal"-ar para que se e!ecute el cuerpo del bucle. 2i no se establece
0tep, el alor predeterminado de "nremento es /.

%l e!ecutar el bucle $or, Pisual 4asic-
1 $stablece ontador al mismo alor que "n""ar.
" Comprueba si ontador es ma"or que *"nal"-ar. 2i lo es, Pisual 4asic sale del bucle.
(2i "nremento es negatio, Pisual 4asic comprueba si ontador es menor que *"nal"-ar.)
! $!ecuta "nstru"ones.
( 5ncrementa ontador en / o en "nstru"ones, si se especific.
* 1epite los pasos : a 0.

$ste cdigo imprime los nombres de todas las fuentes de pantalla disponibles-

Private 0ub $ormF+licO ;>
/im I As Integer
$or i ? G 1o 0creen$ont+ount
Print 0creen$onts;i>
2e8t
5nd 0ub

$n la aplicacin de e!emplo PC1, el procedimiento Cig'lig't4utton utiliza un bucle $or2e8t para pasar
por la coleccin de controles del formulario PC1 " mostrar el control 0hape apropiado-

0ub Highlight=utton;%L+ontrol As :ariant>
/im i As Integer
$or i ? G 1o 9rm:+)+ontrols+ount # 1
I9 1Lpe49 9rm:+)+ontrols;i> Is 0hape 1hen
I9 9rm:+)+ontrols;i>2ame ? %L+ontrol 1hen
9rm:+)+ontrols;i>:isible ? 1rue
5lse
9rm:+)+ontrols;i>:isible ? $alse
5nd I9
5nd I9
2e8t
5nd 0ub

2.4.3- (! ) Else ) End (!.

3se la estructura I91hen para e!ecutar una o ms instrucciones basadas en una condicin. &uede utilizar
la sintaxis de una lnea o un 'lo.ue de arias lneas-

I9 ond""n 1hen "nstru"n
I9 ond""n 1hen
"nstru"ones
5nd I9

/ond""n normalmente es una comparacin, pero puede ser cualquier expresin que d como resultado un
alor numrico. Pisual 4asic interpreta este alor como 1rue o $alse9 un alor numrico cero es $alse " se
considera 1rue cualquier alor numrico distinto de cero. 2i ond""n es 1rue, Pisual 4asic e!ecuta todas
las "nstru"ones que siguen a la palabra clae 1hen. &uede utilizar la sintaxis de una lnea o de arias
lneas para e!ecutar una instruccin basada en una condicin (estos dos e!emplos son equialentes)-
I9 cual@uier$echa P 2oQ 1hen cual@uier$echa ? 2oQ

I9 cual@uier$echa P 2oQ 1hen
cual@uier$echa ? 2oQ
PROF. JUAN MANSILLA NEYRA ;K
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
5nd I9

@bsere que el formato de una +nica lnea de I91hen no utiliza la instruccin 5nd I9. 2i desea e!ecutar
ms de una lnea de cdigo cuando ond""n sea 1rue, debe utilizar la sintaxis de bloque de arias lneas
I91hen5nd I9.

I9 cual@uier$echa P 2oQ 1hen
cual@uier$echa ? 2oQ
1imer15nabled ? $alse D /esactiva el control 1imer
5nd I9

(!...#*en...Else
3tilice un bloque I91hen5lse para definir arios bloques de instrucciones, uno de los cuales se
e!ecutar-

I9 ond""n0 1hen
X'lo.ue de "nstru"ones 0Y
X5lse
X'lo.ue de "nstru"ones nYY
5nd I9

Pisual 4asic eal+a primero ond""n0. 2i es $alse, Pisual 4asic e!ecuta el bloque de instrucciones
correspondientes a 5lse " despus e!ecuta el cdigo que sigue a 5nd I9.
&or e!emplo, la aplicacin podra realizar distintas acciones dependiendo del control en que se 'a"a 'ec'o
clic de una matriz de controles de men+-

Private 0ub mnu+utF+licO ;Inde8 As Integer>
I9 Inde8 ? G 1hen D +omando +ortar
+opLActive+ontrol
+learActive+ontrol
5lse D +omando Pegar
PasteActive+ontrol
5nd I9
5nd 0ub

)#-#-% Select % Case

Pisual 4asic proporciona la estructura 0elect +ase como alternatia a I91hen5lse para e!ecutar
selectiamente un bloque de instrucciones entre arios bloques de instrucciones. La instruccin 0elect
+ase ofrece posibilidades similares a la instruccin I91hen5lse, pero 'ace que el cdigo sea ms
legible cuando 'a" arias opciones.
La estructura 0elect +ase funciona con una +nica expresin de prueba que se eal+a una ez solamente, al
principio de la estructura. Pisual 4asic compara el resultado de esta expresin con los alores de cada
+ase de la estructura. 2i 'a" una coincidencia, e!ecuta el bloque de instrucciones asociado a ese +ase-

0elect +ase e%pres"n(prue'a
X+ase l"sta(e%pres"ones0
X'lo.ue de "nstru"ones 0YY
X+ase l"sta(e%pres"ones1
X'lo.ue de "nstru"ones 1YY
.
.
PROF. JUAN MANSILLA NEYRA ;L
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
.
X+ase 5lse
X'lo.ue de "nstru"ones nYY
5nd 0elect

Cada l"sta(e%pres"ones es una lista de uno o ms alores. 2i 'a" ms de un alor en una lista, se separan
los alores con comas. Cada 'lo.ue de "nstru"ones contiene cero o ms instrucciones. 2i ms de un +ase
coincide con la expresin de prueba, slo se e!ecutar el bloque de instrucciones asociado con la primera
coincidencia. Pisual 4asic e!ecuta las instrucciones de la clusula (opcional) +ase 5lse si ning+n alor de
la lista de expresiones coincide con la expresin de prueba.
&or e!emplo, suponga que agrega otro comando al men+ 5dici&n en el e!emplo I91hen5lse. &odra
agregar otra clusula 5lseI9 o podra escribir la funcin con 0elect +ase-

Private 0ub mnu+utF+licO ;Inde8 As Integer>
0elect +ase Inde8
+ase G D +omando +ortar
+opLActive+ontrol D Llama a procedimientos generales
+learActive+ontrol
+ase 1 D +omando +opiar
+opLActive+ontrol
+ase " D +omando =orrar
+learActive+ontrol
+ase ! D +omando Pegar
PasteActive+ontrol
+ase 5lse
9rm$ind0hoQ D %uestra el cuadro de di'logo =uscar
5nd 0elect
5nd 0ub

@bsere que la estructura 0elect +ase eal+a una expresin cada ez al principio de la estructura.

+% Controles
3.1- Controles bsicos
Pamos a er los siguientes puntos-
Introduccin al uso de controles
PROF. JUAN MANSILLA NEYRA ;Q
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Control /eBt(oB.
Control !a+el
Control Command(utton
Control Option(utton
<ealizacon de una pe'ue7a aplicacin de e&emplo

%ntes de empezar a conocer los controles bsicos eamos cuales son sus caractersticas generales-
Propiedades->odos los controles disponen de una serie de propiedades las cuales podemos
cambiar al incluirlos en nuestras aplicaciones. $!emplos de propiedades son el color, el tipo
de letra, el nombre, el texto, etc...
%etodos: 2on procedimientos asociados a los controles, es decir, rutinas "a establecidas
que podemos inocar desde nuestras aplicaciones para que se realice alguna operacin
sobre el control. &or e!emplo el control ListPie7 ( la lista de arc'ios que aparece en el
explorador de 7indo7s) dispone del mtodo order que te ordena los datos aparecidos en la
lista.
5ventos: 2on acciones que pueden ser motiadas por el propio usuario o por mismo
sistema operatio. $!emplos pueden ser el moimiento del ratn o 'acer clic6 sobre su
botn. $n Pisual 4asic digamos que se utiliza la programacin orientada a eentos, lo cual
es una de las diferencias ms importantes respecto a la programacin lineal de M2 *@2. <o
necesitamos detectar cuando se 'a producido un eento determinado, [indo7s lo detecta
automticamente. Los eentos "a estan definidos, son bastantes " cada control cuenta con
los su"os propios, aunque son mu" parecidos. Lo +nico que tendremos que 'acer es asociar
el cdigo necesario al eento que necesitemos tratar.
Te%tBo%
Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras aplicaciones.
<o 'ace falta que indiquemos las coordenadas de la situacin del formulario en pantalla, simplemente
tendremos que marcar sobre el control de la ca!a de 'erramientas " dibu!arlo con el tamao que queramos en
nuestro formulario.

P<OPI"DAD"#
Las propiedades de las que dispone el control son las siguientes-(para obtener el cuadro de propiedades,
seleccionar el control " pulsar $( o pulsar con el boton derec'o para obtener el men+ contextual " marcar
Propierties)
1e8t: %qu indicamos el texto que aparecer en el control. &odemos asignarle cualquier texto en
tiempo de diseo o e!ecucin. >ambin podemos tomar el texto que 'a"a introducido el usuario para
tratarlo durante la e!ecucin.
2ame: $sta propiedad la tienen todos los controles, el nombre que iene por defecto en este caso
>ext/ " es el nombre con el que se conocer el control cuando lo utilicemos en el cdigo. $n un
mismo formulario no puede 'aber : controles con el mismo nombre. Coniene poner un nombre que
represente la funcin que tiene el control en la aplicacin para que el cdigo quede ms claro.
$!emplo, si en el textbox amos a introducir la direccin de una persona podemos asignarle a esta
propiedad el alor *ireccin.
%ultiLine: &ermite que introduzcamos arias lineas de texto en el control en lugar de slo una.
Alignment: %lineacin que tendr el texto dentro del control- izquierda, centro o derec'a. &ara que
funcione la propiedad MultiLine debe estar con el alor true.
LocOed: 2i esta con alor true bloquea el control, es decir, el usuario no puede introducir ni
modificar el texto que contenga. <os puede serir para utilizar el control como salida de datos sin
que el usuario pueda modificarlos por error.
@tras propiedades que son comunes a la ma"oria de los controles-
PROF. JUAN MANSILLA NEYRA 0,
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
=acOcolor: color de fondo.
$orecolor: color de letra.
$ont: tipo " tamao de letra.

$"/ODO#
1ecordemos que por mtodos se entienten los procedimientos o funciones asociados a un control, los cuales
nos permiten realizar ciertas operaciones +tiles sobre dic'o control- $!. ordenar sus elementos, buscar un dato,
etc..
&ues bien, los controles bsicos que amos a er en este captulo +nicamente contienen mtodos aanzados
que no amos a analizar por a'ora, "a que son mtodos que no se suelen utilizar. Ms adelante cuando
eamos otros tipos de controles estudiaremos cuales son los mtodos que nos podrn serir. 2i alguien est
interesado en conocer todas las caractersticas de los controles puede 'acerlo mirando en la a"uda que
proporciona P4, 'aciendo clic6 sobre cualquier control de la ca!a de 'erramientas " pulsando a continuacin
=/ obtendr a"uda referente a ese control donde aparecern todas sus propiedades, metodos " eentos.

">")/O#
Los eentos son acciones que se pueden realizar en cualquier control- clic6, doble clic6, moimiento del
ratn. % estos eentos se les puede asociar cdigo para que se e!ecute al producir el eento.
%ouse%ove- al moer el raton por encima del control.
%ousedoQn: al pulsar cualquier boton del raton
+hange: al cambiar el contenido del control
+licO: al 'acer clic6 con el botn izquierdo del ratn sobre el control
/oubleclicO: al 'acer doble clic6 con el con el botn izquierdo del ratn sobre el control
Get9ocus: este eento se actia cuando el control recibe el enfoque, es decir, cuando se actia el control
en tiempo de e!ecucin para introducir datos en l o realizar alguna operacin.
Lost9ocus: $s el contrario del anterior eento, se actia cuando el control pierde el enfoque, es decir, se
pasa a otro control para seguir introduciendo datos.

5R5%PL4
Pamos a probar el uso del control Te%tBo% mediante un pequeo e!emplo en el que teniendo un +nico control
de este tipo en un formulario, lo programaremos de forma que al pasar el ratn sobre el control (eento
mousemove) aparecer en el formulario el texto que contenga.

@bseramos que al situar el control en el formulario aparece por defecto el texto 1e8t1. &ara que no aparezca
ese texto al e!ecutar la aplicacin, debemos cambiar la propiedad 1e8t pulsando $( " colocar el texto que
queramos o no colocar nada.
Lo que queremos 'acer es que cada ez que moamos el raton por el control aparezca su contenido en el
formulario. $ntonces lo que 'abr que 'acer abrir la entana de cdigo, seleccionando el control " pulsando
$S< o con el botn derec'o del ratn " la opcin >ieC code del men+ contextual. $ste proceso nos llear al
cuadro de la imagen siguiente.
PROF. JUAN MANSILLA NEYRA 0/
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Lo que tendremos que 'acer es seleccionar el eento que necesitemos de la seccin Proc, en nuestro caso
mousemoe " a continuacin teclear el codigo correspondiente- La instruccin print isualiza un texto en el
formulario " si le ponemos te8t1te8t le decimos que nos muestre la propiedad 1e8t del control 1e8t1 que ese
ser el nombre que tendr el control por defecto si no lo 'emos cambiado en la propiedad name.
%l e!ecutar esta pequea aplicacin pulsando $* obseraremos como aparece en el formulario lo que 'a"amos
tecleado en el control cada ez que moemos el raton sobre el Te%t'o%$
&odemos modificar el programa para que responda a cualquier otro eento sin ms que seleccionarlo en la
seccin Proc e introduciendo el codigo que sea necesario.

La'el
$ste control es tambin uno de los ms utilizados, aunque su utilidad queda restringida a la isualizacin de
datos en el mismo, no permitiendo la introduccin de datos por parte del usuario.
La forma de utilizarlo es similar a la del control anterior, dibu!ar el control en el formulario con el tamao que
queramos " asignarle un texto en tiempo de diseo o de e!ecucin esta ez sin utilizar la propiedad text puesto
que no la incorpora, sino utilizando la propiedad caption.
$ste control sire para mostrar mensa!es en nuestro formulario que orienten al usuario sobre la utilidad de los
dems controles que tengamos en la aplicacin o para indicarnos acciones que podemos realizar. $n el
e!emplo anterior donde apareca un textbox en el formulario, 'ubiera quedado me!or con un mensa!e
aclaratorio contenido en un control label-


P<OPI"DAD"#
+aption: $s el texto que contendr el control.
Alignment: %lineacin del texto contenido en el control, no necesita que est actiada ninguna otra
propiedad.
=order0tLle- 2i queremos que aparezca un borde alrededor del control actiaremos esta propiedad.

&ara este control no se suelen utilizar los eentos "a que su contenido suele cambiar poco a lo largo de la
e!ecucin de la aplicacin. *e todas formas los eentos son casi los mismos del control textbox excepto que
no dispone de los eentos Get$ocus " Lost$ocus "a que a este control no se le puede dar el enfoque.
$n la parte final de este capitulo eremos un e!emplo donde se muestra el funcionamiento de todos los
controles que amos a ir iendo.&or a'ora a er si conseguis que a'ora el mensa!e no aparezca en el
formulario sino en un segundo label situado en el formulario, de!ando un control label que muestre el mensa!e
aclaratorio que 'emos isto antes.

PROF. JUAN MANSILLA NEYRA 0:
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
/ommandButton
$ste control es el tpico botn que aparece en todas las aplicaciones " que al 'acer clic6 sobre l nos permite
realizar alguna operacin concreta, normalmente %ceptar o Cancelar. %unque seg+n el cdigo que le
asociemos podremos realizar las operaciones que queramos.
$n el e!emplo anterior podemos aadir un control de este tipo para salir de la aplicacin sin tener pulsar sobre
la equis de la esquina superior derec'a.


&ero slo con introducir un control de este tipo con el texto salir que se introduce a traes de la propiedad
caption no basta. Cabr que asociarle un cdigo que nos permita salir de la aplicacin en el eento adecuado.
] el eento por excelencia de este control es clic6. %s pues accederemos al cdigo del control " la sentencia
nos permitir salir de la aplicacin es $nd, simplemente tecleamos esa palabra en el eento clic6 " comprobar
que realmente finalizaremos nuestra aplicacin al pulsar sobre dic'o botn.
P<OPI"DAD"#
+aption: %qui pondremos el letrero que queremos que apaezca en el botn- aceptar, cancelar, salir,
etc...
5nabled: $sta es una nuea propiedad, cuando su alor es true el botn funciona normalmente,
cuando su alor es false el boton se encuentra desactiado, no responde a los eentos producidos
sobre l " el texto aparece en un gris claro adirtiendonos de su estado. &odemos utilizar esta
propiedad para actiar o desactiar un boton dependiendo del estado de otros controles. &or e!emplo,
en un boton %ceptar, no actiarlo 'asta que se 'a"a introducido una cantidad en un control textbox,
"a que ese botn nos calcular el 5P% de la cantidad.
">")/O#
+licO: $s el eento tipico de este control " el que ms se utiliza.
%ouse%ove- Como sabemos detecta el moimiento del raton sobre el control. &uede serir para que
aparezca un mensa!e en un control Label que nos aporte informacin sobre la utilidad del control
ampliando el texto que 'a"amos colocado como caption del commandbutton.

Opt"onButton
$ste control nos permite elegir una opcin entre arias de las que se nos plantean. Cada opcin ser un control
optionbutton diferente.
=acilita la introduccin de datos por parte del usuario-

PROF. JUAN MANSILLA NEYRA 0;
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

*e todas las opciones que se nos ofrece, en este caso los 0 colores, slo podremos actiar una. 2i actiamos
cualquier otra opcin, se desactiar automticamente la +ltima que tenamos actiada.
$l marco que est alrededor de los 0 controles optionbutton se trata del control :rame , es opcional,
aunque es coniente colocarlo siempre que 'agamos uso de las opciones. <o slo por motios de presentacin
sino porque de esta manera podremos establecer grupos de controles optionbutton independientes en los que
en cada grupo slo pueda 'aber una opcion actiada a la ez. >ambin, al moer el marco se moern los
controles incluidos en l facilitndonos las modificaciones.
&ara que los controles Opt"on'utton queden englobados dentro de un control 2rame, primero tendremos que
colocar el control 2rame en el formulario con el tamao adecuado " despues ir colocando los controles
Opt"on'utton dentro del 2rame$
*el control =rame la +nica propiedad que nos interesar es caption, que es el texto que aparecer en el
encabezado, en el e!emplo anterior- colores.
P<OPI"DAD"# D" OP/IO)(U//O)
+aption: $l texto que aparecer al lado del control- 1o!o, erde, etc...
:alue: $s el alor que tendr el control- True si se encuentra actiado " False si no lo est. &ara
comprobar que opcion 'a actiado el usuario comprobaremos el estado de esta propiedad.
Alignment: %lineacin del texto respecto al control- Left Justify- el control aparece a la
izquierda del texto. $s el e!emplo anterior.Right Justify: el control aparece a la derec'a del
texto.

Los eentos del control son los mismos que en anteriores controles, aunque no se suele asociar cdigo a los
eentos de este tipo de controles, sino +nicamente conocer el alor que tienen- true o false.

+#$#$% 7*L!C7C!(@ 3. .A.,*L(
&ara practicar con los controles que 'emos isto amos a realizar una pequea aplicacin que consistir en
realizar con : n+meros que introduzcamos, una operacin que seleccionemos " mostrar el resultado.
$l formulario donde estarn todos los controles es el siguiente-

PROF. JUAN MANSILLA NEYRA 00
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
La propiedad +aption de cada uno de los controles es la que se muestra en el formulario.
Ce modificado la propiedad 2ame de cada control para que al utilizarlos desde el codigo sepamos cual es el
control con el que traba!amos-
Los controles Te%tBo% tienen los nombres- 2um1, 2um" " )esul
Los controles Opt"on'utton tienen cada uno de ellos el mismo nombre que su caption
Los controles /ommandButton tienen los nombres- +alcular, Limpiar " 0alir
% los controles La'el " al 2rame no 'ae falta cambiarles el nombre.

Lo que 'abr que 'acer a'ora es asociar codigo a cada uno de los botones que es de donde se an a realizar
las operaciones-
&ara el botn Calcular que es el que nos mostrar el resultado seg+n la operacin seleccionada, 'e
utilizado la instruccin If Then Else que imos en el captulo anterior-

$l botn !impiar Datos nos a a serir para borrar de una forma rpida los datos introducidos por el
usuario " el resultado preparando los controles para introducir nueos datos. $l cdigo que
tendremos que introducir es mu" simple-
$l botn #alir +nicamente contendr la sentencia End.

- %9ormularios#
PROF. JUAN MANSILLA NEYRA 0?
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Los formularios tienen sus propios eentos, propiedades " mtodos con los que se puede controlar su
apariencia " comportamiento.
$l primer paso para disear un formulario consiste en establecer sus propiedades. &uede establecer las
propiedades de un formulario en tiempo de diseo en la entana &ropiedades o en tiempo de e!ecucin,
escribiendo cdigo.
2ota $n t"empo de d"se3o, que es cualquier momento mientras est desarrollando una aplicacin en el
entorno de Pisual 4asic, se traba!a con formularios " controles, se establecen propiedades " se escribe
cdigo para los eentos. T"empo de e4eu"n es cualquier momento mientras se e!ecuta realmente la
aplicacin " se interact+a con ella como lo 'ara un usuario.

4.1- Estableciendo las Proiedades m+s imortantes de los
!ormularios.

Muc'as propiedades de un formulario afectan a su apariencia fsica. La propiedad +aption determina el
texto que muestra la barra de ttulo del formulario " la propiedad Icon establece el icono que aparece
cuando se minimiza un formulario.
Las propiedades %a8=utton " %in=utton determinan si el formulario se puede maximizar o minimizar.
Cambiando la propiedad =order0tLle puede controlar el comportamiento de cambio de tamao del
formulario.
Las propiedades Height " Cidth determinan el tamao inicial de un formulario, mientras que las
propiedades Le9t " 1op determinan la ubicacin del formulario en relacin con la esquina superior
izquierda de la pantalla. Con la propiedad CindoQ0tate puede establecer si el formulario se inicia en
estado maximizado, minimizado o normal.
La propiedad 2ame establece el nombre con el que 'ar referencia al formulario en el cdigo. *e forma
predeterminada, cuando se agrega un formulario por primera ez a un pro"ecto, su nombre es =orm/,
=orm:, etc. $s coneniente establecer la propiedad 2ame a algo ms significatio, como Gfrm$ntr"H para
un formulario de entrada de pedidos.

4.2- E"entos y ,-todos de los !ormularios.

Como ob!etos que son, los formularios pueden e!ecutar mtodos " responder a eentos.
$l eento 1esize de un formulario se desencadena siempre que se cambia el tamao de un formulario, "a
sea por una accin del usuario o a tras del cdigo. $sto permite realizar acciones como moer o cambiar
el tamao de los controles de un formulario cuando 'an cambiado sus dimensiones.
5l evento Activate se produce siempre que un formulario se conierte en el formulario actio9 el evento
/eactivate se produce cuando otro formulario u otra aplicacin se conierte en actio. $stos eentos son
adecuados para iniciar o finalizar acciones del formulario. &or e!emplo, en el eento %ctiate podra
escribir cdigo para resaltar el texto de un determinado cuadro de texto9 con el eento *eactiate podra
guardar los cambios efectuados en un arc'io o en una base de datos.
&ara 'acer isible un formulario se inoca el mtodo 0hoQ-

$orm"0hoQ

&ara descargar un formulario (cerrarlo), se inoca al mtodo Unload-

$orm"Unload
Unload %e T%e signi9ica el $ormulario activo

&ara ocultar un formulario (pero de!arlo actio en memoria) se inoca al mtodo Hide-
PROF. JUAN MANSILLA NEYRA 0D
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

$orm"Hide

5nocar el mtodo 0hoQ tiene el mismo efecto que establecer a 1rue la propiedad :isible del formulario.
Muc'os mtodos de un formulario implican texto o grficos. Los mtodos Print, Line, +ircle " )e9resh
son +tiles para imprimir o dibu!ar directamente en la superficie de un formulario.

4.3- Establecer el !ormulario de arran.ue de la alicacin.

*e forma predeterminada, el primer formulario de la aplicacin es el *ormular"o "n""al. Cuando la
aplicacin inicia la e!ecucin, se presenta este formulario (el primer cdigo que se e!ecuta es el del eento
=ormJ5nitialize de dic'o formulario). 2i quiere presentar un formulario diferente cuando se inicie la
aplicacin, debe cambiar el formulario inicial.

Para cambiar el 9ormulario inicial

/. $n el men+ ProLecto, eli!a Propiedades del proLecto.
:. $li!a la fic'a General.
;. $n el cuadro de lista 4bjeto inicial, seleccione el formulario que desee que sea el nueo formulario
inicial.
0. $li!a Aceptar.

Inicio sin 9ormulario inicial

%lgunas eces puede desear que la aplicacin se inicie sin cargar ning+n formulario. &or e!emplo, puede
que desee e!ecutar cdigo que cargue un arc'io de datos " despus presentar uno de entre arios
formularios, seg+n el contenido de dic'o arc'io. &uede 'acerlo creando un procedimiento 0ub llamado
Main en un mdulo estndar, como en el siguiente e!emplo-

2ub Main()
*im int2tatus %s 5nteger
a Llamar a un procedimiento de funcin para comprobar el estado
a del usuario.
int2tatus E Aet3ser2tatus
a Mostrar un formulario inicial distinto seg+n el estado.
5f int2tatus E / >'en
frmMain.2'o7
$lse
frm&ass7ord.2'o7
$nd 5f

$ste procedimiento tiene que ser un procedimiento 0ub " no puede estar en un mdulo de formulario. &ara
establecer el procedimiento 0ub %ain como ob!eto inicial, en el men+ ProLecto eli!a Propiedades del
proLecto, seleccione la fic'a General " seleccione 0ub %ain en el cuadro 4bjeto inicial.

/ %Combo Bo0 Blista comboC

3n control +ombo=o8 combina las caractersticas de un control 1e8t=o8 " un control List=o89 los
usuarios pueden introducir informacin en la parte del cuadro de texto o seleccionar un elemento en la
parte de cuadro de lista del control.
&ara agregar o eliminar elementos en un control +ombo=o8, use el mtodo AddItem o )emoveItem.
$stablezca las propiedades List, List+ount " ListInde8 para permitir a un usuario tener acceso a los
elementos de un control +ombo=o8. Como alternatia, puede agregar elementos a la lista mediante la
propiedad List en tiempo de diseo.
PROF. JUAN MANSILLA NEYRA 0K
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
2ota 3n eento 2croll ocurrir en un control +ombo=o8 slo cuando se desplace el contenido de la parte
desplegable del +ombo=o8, no cada ez que cambie el contenido del +ombo=o8. &or e!emplo, si la parte
desplegable de un +ombo=o8 contiene cinco elementos " el elemento superior est resaltado, no ocurrir
un eento 2croll 'asta que presione seis eces la flec'a 'acia aba!o (o una ez la tecla %P &bA). *espus de
eso, ocurrir un eento 2croll por cada pulsacin de la tecla de flec'a 'acia aba!o. 2in embargo, si despus
presiona la tecla de flec'a 'acia arriba, no ocurrir un eento 2croll 'asta que presione seis eces la tecla
de flec'a 'acia arriba (o una ez la tecla 1$ &bA). *espus de eso, cada ez que presione la tecla de flec'a
'acia arriba se producir un eento 2croll.

5ventos:
$ento C'ange $ento Lost=ocus
$ento Clic6 $ento @L$Complete*rag
$ento *blClic6 $ento @L$*rag*rop
$ento *rag*rop $ento @L$*rag@er
$ento *rag@er $ento @L$Aie=eedbac6
$ento *rop*o7n $ento @L$2et*ata
$ento Aot=ocus $ento @L$2tart*rag
$entos ce"*o7n " ce"3p $ento 2croll
$ento ce"&ress

%Ktodos:
Mtodo %dd5tem Mtodo 1efres'
Mtodo Clear (Clipboard, Combo4ox, List4ox) Mtodo 1emoe5tem
Mtodo *rag Mtodo 2et=ocus
Mtodo Moe Mtodo 2'o7['ats>'is
Mtodo @L$*rag Mtodo d@rder

Propiedades:
&ropiedad %ppearance &ropiedad List5ndex
&ropiedades 4ac6Color " =oreColor &ropiedad Loc6ed
&ropiedad Container &ropiedad Mouse5con
&ropiedad *ataC'anged &ropiedad Mouse&ointer
&ropiedad *ata=ield &ropiedad <ame
&ropiedad *rag5con &ropiedad <e75ndex
&ropiedad *ragMode &ropiedad @L$*ragMode
&ropiedad $nabled &ropiedad @L$*ropMode
&ropiedad =ont &ropiedad &arent
&ropiedades =ont4old, =ont5talic, =ont2tri6et'ru " =ont3nderline
&ropiedad =ont<ame &ropiedades 2elLengt', 2el2tart " 2el>ext (Controles %ctie8)
&ropiedad =ont2ize &ropiedad 2orted
&ropiedades Ceig't " [idt' &ropiedad 2t"le
&ropiedad CelpContext5* &ropiedad >ab5ndex
&ropiedad '[nd &ropiedad >ab2top
&ropiedad 5ndex (Control %rra") &ropiedad >ag
&ropiedad 5ntegralCeig't &ropiedad >ext
&ropiedad 5tem*ata &ropiedad >ool>ip>ext
&ropiedades Left " >op &ropiedad >op5ndex
&ropiedad List &ropiedad Pisible
&ropiedad ListCount &ropiedad ['ats>'isCelp5*
&ropiedades 2elLengt', 2el2tart " 2el>ext

2% List Bo0 BlistaC#

PROF. JUAN MANSILLA NEYRA 0L
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
3n control List=o8 muestra una lista de elementos entre los cuales el usuario puede seleccionar uno o
ms. 2i el n+mero de elementos supera el n+mero que puede mostrarse, se agregar automticamente una
barra de desplazamiento al control List=o8.
2i no se selecciona ning+n elemento, el alor de la propiedad ListInde8 ser B/. $l primer elemento de la
lista es ListInde8 , " el alor de la propiedad List+ount siempre es uno ms que el ma"or alor de
ListInde8.
&ara agregar o eliminar elementos de un control List=o8, use el mtodo AddItem o )emoveItem.
$stablezca las propiedades List, List+ount " ListInde8 para permitir que un usuario tenga acceso a
elementos del List=o8. >ambin puede agregar elementos a la lista mediante la propiedad List en tiempo
de diseo.

5ventos
$ento Clic6 $entos Mouse*o7n " Mouse3p
$ento *blClic6 $ento MouseMoe
$ento *rag*rop $ento @L$Complete*rag
$ento *rag@er $ento @L$*rag*rop
$ento Aot=ocus $ento @L$*rag@er
$ento 5temC'ec6 $ento @L$Aie=eedbac6
$entos ce"*o7n " ce"3p $ento @L$2et*ata
$ento ce"&ress $ento @L$2tart*rag
$ento Lost=ocus $ento 2croll

%Ktodos
Mtodo %dd5tem Mtodo 1efres'
Mtodo Clear (Clipboard, Combo4ox, List4ox) Mtodo 1emoe5tem
Mtodo *rag Mtodo 2et=ocus
Mtodo Moe Mtodo 2'o7['ats>'is
Mtodo @L$*rag Mtodo d@rder

Propiedades
&ropiedad %ppearance &ropiedad Mouse&ointer
&ropiedades 4ac6Color " =oreColor &ropiedad Multi2elect
&ropiedad Columns (List4ox) &ropiedad <ame
&ropiedad Container &ropiedad <e75ndex
&ropiedad *ataC'anged &ropiedad @L$*ragMode
&ropiedad *ata=ield &ropiedad @L$*ropMode
&ropiedad *ata2ource &ropiedad &arent
&ropiedad *rag5con &ropiedad 2elCount
&ropiedad *ragMode &ropiedad 2elected
&ropiedad $nabled &ropiedad 2orted
&ropiedad =ont &ropiedad 2t"le
&ropiedades =ont4old, =ont5talic, =ont2tri6et'ru " =ont3nderline
&ropiedad =ont<ame &ropiedad >ab2top
&ropiedad =ont2ize &ropiedad >ag
&ropiedades Ceig't " [idt' &ropiedad >ext
&ropiedad CelpContext5* &ropiedad >ool>ip>ext
&ropiedad '[nd &ropiedad >op5ndex
&ropiedad 5ndex (Control %rra") &ropiedad Pisible
&ropiedad 5tem*ata &ropiedad ['ats>'isCelp5*
&ropiedades Left " >op &ropiedad >ab5ndex
&ropiedad List &ropiedad ListCount
&ropiedad List5ndex &ropiedad Mouse5con

D% 8imer Bcron&metroC

3n control 1imer puede e!ecutar cdigo a interalos peridicos produciendo un eento >imer.
PROF. JUAN MANSILLA NEYRA 0Q
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
$l control 1imer, inisible para el usuario, resulta +til para el procesamiento de fondo.
<o puede establecer la propiedad 5nabled de un 1imer para una seleccin m+ltiple de controles que no
sean controles 1imer.
<o existe ning+n lmite prctico en cuanto al n+mero de controles 1imer actios que puede tener en Pisual
4asic ?., e!ecutndose en [indo7s Q? o en [indo7s <>.

5ventos:
$ento >imer
Propiedades:
&ropiedad $nabled &ropiedad <ame
&ropiedad 5ndex (Control %rra") &ropiedad &arent
&ropiedad 5nteral &ropiedad >ag
&ropiedades Left " >op

E% S"ape B4iguraC#

0hape es un control grfico que se muestra como un rectngulo, un cuadrado, una elipse, un crculo, un
rectngulo redondeado o un cuadrado redondeado.
3tilice controles 0hape en tiempo de diseo en lugar de o adems de inocar los mtodos +ircle " Line en
tiempo de e!ecucin. &uede dibu!ar un control 0hape en un contenedor, pero no puede actuar como
contenedor. $l efecto de establecer la propiedad =order0tLle depende del alor de la propiedad
=orderCidth. 2i =orderCidth no es / " =order0tLle no es , D, =order0tLle se establece a /.

%Ktodos:
Mtodo Moe Mtodo d@rder
Mtodo 1efres'

Propiedades:
&ropiedades 4ac6Color " =oreColor &ropiedades Ceig't " [idt'
&ropiedad 4ac62t"le &ropiedad 5ndex (Control %rra")
&ropiedad 4orderColor &ropiedades Left " >op
&ropiedad 4order2t"le &ropiedad <ame
&ropiedad 4order[idt' &ropiedad &arent
&ropiedad Container &ropiedad 2'ape
&ropiedad *ra7Mode &ropiedad >ag
&ropiedad =illColor &ropiedad Pisible
&ropiedad =ill2t"le

F% Line BlGneaC#

Line es un control grfico que se muestra como una lnea 'orizontal, ertical o diagonal.
&uede utilizar un control Line en tiempo de diseo para dibu!ar lneas en formularios. $n tiempo de
e!ecucin puede utilizar un control Line en lugar del mtodo Line, o adems de l. Las lneas dibu!adas
con el control Line permanecen en el formulario aunque la propiedad Auto)edraQ sea $alse. Los
controles Line pueden mostrarse en formularios, en cuadros de imagen " en marcos. <o puede utilizar el
mtodo %ove para moer un control Line en tiempo de e!ecucin, pero s se puede moer o cambiar de
tamao alterando sus propiedades ,1, ,", U1 e U". $l efecto de establecer la propiedad =order0tLle
depende del alor de la propiedad =orderCidth. 2i =orderCidth no es / " =order0tLle no es , D,
=order0tLle se establecer a /.

%Ktodos:
Mtodo Refresh
Mtodo ZOrder
PROF. JUAN MANSILLA NEYRA ?,
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Propiedades:
&ropiedad 4orderColor &ropiedad <ame
&ropiedad 4order2t"le &ropiedad &arent
&ropiedad 4order[idt' &ropiedad >ag
&ropiedad Container &ropiedad Pisible
&ropiedad *ra7Mode &ropiedades 8/, ]/, 8: " ]:
&ropiedad 5ndex (Control %rra")

$H% !mage BimagenC

3tilice el control Image para mostrar un grfico. 3n control Image puede mostrar un grfico desde un
mapa de bits, un icono o un metarc'io, as como un metarc'io me!orado, un arc'io e&$A o arc'ios
A5=.
$l control Image utiliza menos recursos del sistema " actualiza con ms rapidez que un control
Picture=o8, pero slo admite un subcon!unto de las propiedades, los eentos " los mtodos de
Picture=o8. 3se la propiedad 0tretch para determinar si el grfico se escala para a!ustarse al control o
iceersa. %unque puede colocar un control Image dentro de un contenedor, un control Image no puede
actuar como contenedor.

5ventos:
$ento Clic6 $ento @L$Complete*rag
$ento *blClic6 $ento @L$*rag*rop
$ento *rag*rop $ento @L$*rag@er
$ento *rag@er $ento @L$Aie=eedbac6
$entos Mouse*o7n " Mouse3p $ento @L$2et*ata
$ento MouseMoe $ento @L$2tart*rag

%Ktodos:
Mtodo *rag Mtodo 1efres'
Mtodo Moe Mtodo 2'o7['ats>'is
Mtodo @L$*rag Mtodo d@rder

Propiedades:
&ropiedad %ppearance &ropiedad Mouse5con
&ropiedad 4order2t"le &ropiedad Mouse&ointer
&ropiedad Container &ropiedad <ame
&ropiedad *ataC'anged &ropiedad @L$*ragMode
&ropiedad *ata=ield &ropiedad @L$*ropMode
&ropiedad *ata2ource &ropiedad &arent
&ropiedad *rag5con &ropiedad &icture
&ropiedad *ragMode &ropiedad 2tretc'
&ropiedad $nabled &ropiedad >ag
&ropiedades Ceig't " [idt' &ropiedad >ool>ip>ext
&ropiedad 5ndex (Control %rra") &ropiedad Pisible
&ropiedades Left " >op &ropiedad ['ats>'isCelp5*

$$% 3ata Bacceso a bases de datosC

&roporciona acceso a datos almacenados en bases de datos mediante uno de los tres tipos de ob!etos
)ecordset. $l control /ata le permite desplazarse de un registro a otro, as como presentar " manipular
PROF. JUAN MANSILLA NEYRA ?/
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
datos de los registros en controles enlazados. 2in un control /ata los controles enlazados a datos
(inculados) de un formulario no pueden tener acceso a los datos automticamente.
&uede realizar la ma"ora de las operaciones de acceso a datos utilizando el control /ata sin escribir
cdigo. Los controles enlazados a datos inculados a un control /ata presentan automticamente los datos
de uno o arios campos del registro actual o, en algunos casos, de un con!unto de registros situado a ambos
lados del registro actual. $l control /ata realiza todas sus operaciones sobre el registro actual.
2i el control /ata recibe instrucciones para desplazarse a un registro diferente, todos los controles
enlazados pasan automticamente los posibles cambios al control /ata para que los guarde en la base de
datos. *espus, el control /ata se desplaza al registro solicitado " pasa los datos del registro actual a los
controles enlazados, en los que se presentan.
$l control /ata administra automticamente una serie de contingencias entre las que se inclu"en los
con!untos de registros acos, la insercin de nueos registros, la modificacin " actualizacin de registros
existentes, " la administracin de ciertos tipos de errores. 2in embargo, en aplicaciones ms sofisticadas es
necesario interceptar algunas condiciones de error que el control /ata no puede administrar. &or e!emplo,
si el motor de base de datos Microsoft eet tiene un problema al tener acceso al arc'io de base de datos, no
tiene el permiso adecuado o no puede e!ecutar la consulta, se producir un error interceptable. 2i el error se
produce antes de que se inicien los procedimientos de la aplicacin o se trata de errores internos, se
desencadenar el eento $rror.

$)% Controles enla>ados

Los controles /=List, /=+ombo, /=Grid " %0$le8Grid son capaces de administrar con!untos de
registros cuando estn enlazados a un control /ata. >odos estos controles permiten presentar o manipular
arios registros a la ez.
Los controles incorporados Picture, Label, 1e8t=o8, +hecO=o8, Image, 4L5, List=o8 " +ombo=o8
tambin son controles enlazados a datos " se pueden enlazar a un +nico campo de un )ecordset
administrado por un control /ata. $n las ediciones &rofesional " $mpresarial se encuentran disponibles
otros controles enlazados a datos como %asOed5dit " )ich1e8t=o89 otros proeedores tambin ofrecen
controles adicionales.

12.1 Funcionamiento

3na ez iniciada la aplicacin, Pisual 4asic utiliza las propiedades del control /ata para abrir la base de
datos seleccionada, crear un ob!eto /atabase " crear un ob!eto )ecordset. Las propiedades /atabase "
)ecordset del control /ata 'acen referencia a los ob!etos /atabase " )ecordset recin creados, que se
pueden manipular de forma independiente del control /ata, con o sin controles enlazados. $l control
/ata se inicializa antes del eento =ormJLoad inicial del formulario en el que se encuentra. 2i se producen
errores durante esta fase de inicializacin, se produce un error no interceptable.
Cuando Pisual 4asic utiliza el motor de base de datos eet para crear un )ecordset, no se pueden producir
otras operaciones o eentos de Pisual 4asic 'asta que se termine la operacin. 2in embargo, otras
aplicaciones basadas en [indo7s pueden seguir en e!ecucin mientras se est creando el )ecordset. 2i el
usuario presiona C>1LF5<>$1 mientras el motor eet est generando un )ecordset, la operacin termina, se
produce un error interceptable " la propiedad )ecordset del control /ata se establece a <ot'ing. $n
tiempo de diseo, la segunda ez que se presiona C>1LF5<>$1 'ace que Pisual 4asic presente la entana
/epuraci&n.
&uede manipular el control /ata con el mouse (ratn), desplazndose de un registro a otro, o al principio o
al final del )ecordset. Las propiedades 54$Action " =4$Action determinan lo que ocurre cuando el
usuario se desplaza al principio o al final de un )ecordset con el mouse. <o puede establecer el enfoque
en un control /ata.

12.2 Validacin

PROF. JUAN MANSILLA NEYRA ?:
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
$l eento :alidate " la propiedad /ata+hanged se utilizan para realizar comprobaciones de +ltima 'ora
sobre los registros que se an a escribir en la base de datos.

12.3 Objetos de acceso a datos
$n los procedimientos puede utilizar los ob!etos de acceso a datos /atabase " )ecordset creados por el
control /ata. Cada ob!eto /atabase " )ecordset tiene sus propias propiedades " mtodos, " puede
escribir procedimientos que utilicen dic'as propiedades " mtodos para manipular sus datos.
&or e!emplo, el mtodo %ove2e8t de un ob!eto )ecordset desplaza el registro actual al siguiente registro
dentro del )ecordset. &ara inocar este mtodo, podra utilizar el cdigo siguiente-
*ata/.1ecordset.Moe<ext

$l control /ata puede tener acceso a cualquiera de los tres tipos de ob!etos )ecordset del motor eet
ersin ;.,. 2i no selecciona el tipo de con!unto de registros, se crea un )ecordset de tipo d"naset.
$n muc'os casos, el tipo predeterminado " la configuracin del ob!eto )ecordset creado son mu"
ineficientes. $s decir, puede que no necesite un cursor actualizable totalmente desplazable de con!unto de
claes para tener acceso a los datos. &or e!emplo, un )ecordset de tipo snaps'ot, de slo lectura "
unidireccional se creara con ms rapidez que el cursor predeterminado. %seg+rese de elegir el tipo ms
eficiente, as como las propiedades 58clusive, 4ptions " )ead4nlL adecuadas a su situacin.

&ara seleccionar un tipo de )ecordset especfico, establezca la propiedad )ecordset1Lpe del control /ata
a-
)ecordset1Lpe :alor +onstante
>able , vb)01Lpe1able
*"naset / vb)01Lpe/Lnaset (&redeterminado)
2naps'ot : vb)01Lpe0napshot

12.4 Ediciones Pro!esional y Emresarial

$n lo que concierne al acceso a datos, la principal diferencia entre las ediciones de %prendiza!e,
&rofesional " $mpresarial de Pisual 4asic es la capacidad de crear nueos ob!etos de acceso a datos. $n la
$dicin estndar no puede declarar (con la palabra clae /im) ariables como ob!etos de acceso a datos
dentro del cdigo. $sto significa que slo el control /ata puede crear ob!etos /atabase " )ecordset.
$n las ediciones &rofesional " $mpresarial de Pisual 4asic ersin ?., puede crear un ob!eto )ecordset "
asignarlo a la propiedad )ecordset de un control /ata. Cualquier control enlazado que est conectado al
control /ata permitir manipular los registros del )ecordset que 'a creado. %seg+rese de que las
propiedades /ata$ield de los controles enlazados estn establecidas a nombres de campo lidos dentro
del nueo )ecordset.

12./ $onsultas almacenadas

@tra opcin importante al utilizar el control /ata es la posibilidad de e!ecutar consultas almacenadas. 2i
antes 'a creado un ob!eto JuerL/e9, el control /ata puede e!ecutarlo " crear un )ecordset mediante las
propiedades 0JL, +onnect " otras del ob!eto JuerL/e9. &ara e!ecutar un JuerL/e9, establezca la
propiedad )ecord0ource del control /ata al nombre del JuerL/e9 " utilice el mtodo )e9resh.
2i el JuerL/e9 almacenado contiene parmetros, tiene que crear el )ecordset " pasarlo al control /ata.

12.0 #ratamiento de 12F3E2F
$l control /ata tambin puede administrar lo que ocurre cuando se encuentre con un )ecordset sin
registros. Modificando la propiedad 54$Action puede programar el control /ata para que pase al modo
%dd<e7 de forma automtica.
PROF. JUAN MANSILLA NEYRA ?;
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
&uede programar el control /ata para que se a!uste automticamente a la parte superior o inferior del
formulario primario utilizando la propiedad Align. $n cualquiera de los casos, el control /ata cambia de
tamao 'orizontalmente para llenar todo el anc'o de su formulario primario, siempre que ste cambie de
tamao.

5ventos:
$ento *rag*rop $ento @L$*rag@er
$ento *rag@er $ento @L$Aie=eedbac6
$ento $rror $ento @L$2et*ata
$entos Mouse*o7n, Mouse3p $ento @L$2tart*rag
$ento MouseMoe $ento 1eposition
$ento @L$Complete*rag $ento 1esize
$ento @L$*rag*rop $ento Palidate

%Ktodos
Mtodo *rag Mtodo 2'o7['ats>'is
Mtodo Moe Mtodo 3pdateControls
Mtodo @L$*rag Mtodo 3pdate1ecord
Mtodo 1efres' Mtodo d@rder

Propiedades
&ropiedad %lign &ropiedad =ont2ize
&ropiedad %ppearance &ropiedades Ceig't, [idt'
&ropiedades 4ac6Color, =oreColor &ropiedad 5ndex (Matriz de controles)
&ropiedad 4@=%ction, $@=%ction &ropiedades Left, >op
&ropiedad Caption &ropiedad Mouse5con
&ropiedad Connect &ropiedad Mouse&ointer
&ropiedad *atabase &ropiedad <ame
&ropiedad *atabase<ame &ropiedad @L$*ropMode
&ropiedad *efaultCursor>"pe &ropiedad @ptions
&ropiedad *efault>"pe &ropiedad &arent
&ropiedad *rag5con &ropiedad 1ead@nl" (%ceso de datos)
&ropiedad *ragMode &ropiedad 1ecordset
&ropiedad $ditMode &ropiedad 1ecordset>"pe
&ropiedad $nabled &ropiedad 1ecord2ource
&ropiedad $xclusie &ropiedad >ag
&ropiedad =ont &ropiedad >ool>ip>ext
&ropiedades =ont4old, =ont5talic, =ont2tri6et'ru, =ont3nderline
&ropiedad =ont<ame &ropiedad ['ats>'isCelp5*
&ropiedad Pisible

$+ %.ventos m=s importantes de los controles est=ndares#

13.1-Change

%plicable a-
Control Combo4ox, Controles C2croll4ar " P2croll4ar, Control Label, Control &icture4ox, Control
>ext4ox

5ndica que el contenido de un control 'a cambiado. Cmo " cundo 'a ocurrido este eento ara seg+n el
control-
+ombo=o8- cambia el texto de la parte de cuadro de texto del control. @curre slo si la propiedad
0tLle est establecida a , (*ropdo7n Combo) o / (2imple Combo) " el usuario cambia el texto o
usted cambia la configuracin de la propiedad 1e8t mediante cdigo.
PROF. JUAN MANSILLA NEYRA ?0
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
/irList=o8- cambia el directorio seleccionado. @curre cuando el usuario 'ace doble clic en un nueo
directorio o cuando usted cambia la configuracin de la propiedad Path mediante cdigo.
/riveList=o8- cambia la unidad seleccionada. @curre cuando el usuario selecciona una nuea unidad
o cuando usted cambia la configuracin de la propiedad /rive mediante cdigo.
H0croll=ar " :0croll=ar (barras de desplazamiento 'orizontal " ertical)- mueen la parte de cuadro
de desplazamiento de la barra de desplazamiento. @curre cuando el usuario desplaza o cuando usted
cambia la configuracin de la propiedad :alue mediante cdigo.
Label- cambia el contenido del control Label. @curre cuando un nculo **$ actualiza los datos o
cuando usted cambia la configuracin de la propiedad +aption mediante cdigo.
Picture=o8- cambia el contenido del control Picture=o8. @curre cuando un nculo **$ actualiza
los datos o cuando usted cambia la configuracin de la propiedad Picture mediante cdigo.
1e8t=o8- cambia el contenido del cuadro de texto. @curre cuando un nculo **$ actualiza los datos,
cuando un usuario cambia el texto o cuando usted cambia la configuracin de la propiedad 1e8t
mediante cdigo.

0inta8is
Private 0ub o'4etoF+hange;X5nd"e As IntegerY>

La sintaxis del eento C'ange consta de las siguientes partes-
Parte /escripci&n
o'4eto 3na expresin de ob!eto que da como resultado un ob!eto de la lista %plicable a.
5nd"e 3n entero que identifica +nicamente a un control si est en una matriz de controles.

+omentarios
$l procedimiento del eento C'ange puede sincronizar o coordinar la presentacin de datos entre
controles. &or e!emplo, puede utilizar un procedimiento de eento C'ange de una barra de desplazamiento
para actualizar la configuracin de la propiedad :alue de la barra de desplazamiento de un control
1e8t=o8. @ bien, puede utilizar un procedimiento de eento C'ange para mostrar datos " frmulas en un
rea de traba!o " los resultados en otra rea.
Los procedimientos de eento C'ange son tambin +tiles para actualizar propiedades de controles del
sistema de arc'ios (/irList=o8, /riveList=o8 " $ileList=o8). &or e!emplo, puede actualizar la
configuracin de la propiedad Path para que un control /irList=o8 refle!e un cambio en la configuracin
de la propiedad /rive de un control /riveList=o8.
2ota 3n procedimiento de eento C'ange puede algunas eces causar un eento en cascada. $sto ocurre
cuando el procedimiento de eento C'ange del control altera el contenido del control, por e!emplo,
estableciendo una propiedad en el cdigo que determina el alor del control, como el alor de la propiedad
1e8t para un control 1e8t=o8. &ara impedir un eento en cascada-
2i es posible, eite escribir un procedimiento de eento C'ange para un control que altere el
contenido de ese control. 2i escribe un procedimiento as, aseg+rese de establecer un indicador que
impida cambios posteriores mientras el cambio actual est en curso.
$ite crear dos o ms controles cu"os procedimientos de eento C'ange se ean afectados entre s,
por e!emplo, dos controles 1e8t=o8 que se actualicen entre s durante sus eentos C'ange.
$ite utilizar una funcin o una instruccin %sg=o8 en este eento para los controles H0croll=ar "
:0croll=ar.

Ejemlo del e"ento $*ange

PROF. JUAN MANSILLA NEYRA ??
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
$ste e!emplo muestra la configuracin numrica de la propiedad :alue de una barra de desplazamiento
'orizontal en un control 1e8t=o8. &ara probar este e!emplo, cree un formulario con un control 1e8t=o8 "
un control H0croll=ar " despus pegue el cdigo en la seccin *eclaraciones de un formulario que
contenga una barra de desplazamiento 'orizontal (control H0croll=ar) " un control 1e8t=o8. &resione =?
" 'aga clic en la barra de desplazamiento 'orizontal.

&riate 2ub =ormJLoad ()
C2croll/.Min E , a $stablece Min.
C2croll/.Max E /,,, a $stablece Max.
C2croll/.LargeC'ange E /,, a $stablece LargeC'ange.
C2croll/.2mallC'ange E / a $stablece 2mallC'ange.
$nd 2ub

&riate 2ub C2croll/JC'ange ()
>ext/.>ext E C2croll/.Palue
$nd 2ub

13.2-Click

%plicable a-
Control C'ec64ox, Control Combo4ox, Control Command4utton, @b!eto =orm, Control =rame, Control
5mage, Control Label, Control List4ox, Control Menu, Control @ption4utton, Control &icture4ox, Control
>ext4ox.
@curre cuando el usuario presiona " suelta un botn del mouse (ratn) en un ob!eto. >ambin puede ocurrir
cuando se cambia el alor de un control.
&ara un ob!eto $orm, este eento ocurre cuando el usuario 'ace clic en un rea en blanco o en un control
desactiado. &ara un control, este eento ocurre cuando el usuario-
Cace clic en un control con el botn primario o secundario del mouse. Con un control +hecO=o8,
+ommand=utton, List=o8 o 4ption=utton, el eento Clic6 slo ocurre cuando el usuario 'ace clic
con el botn primario del mouse.
2elecciona un elemento de un control +ombo=o8 o List=o8, "a sea presionando las teclas de
direccin o 'aciendo clic con el botn del mouse.
&resiona la 4%11% $2&%C5%*@1% cuando un control +ommand=utton, 4ption=utton o
+hecO=o8 tiene el enfoque.
&resiona $<>1%1 cuando un formulario tiene un control +ommand=utton con su propiedad
/e9ault establecida a 1rue.
&resiona $2C cuando un formulario tiene un botn +ancelar, un control +ommand=utton con su
propiedad +ancel establecida a 1rue.
&resiona una tecla de acceso para un control. &or e!emplo, si el ttulo de un control +ommand=utton
es \f5r\, al presionar %L>F5 se desencadena este eento.

>ambin puede desencadenar el eento Clic6 en el cdigo si-
$stablece la propiedad :alue de un control +ommand=utton a 1rue.
$stablece la propiedad :alue de un control 4ption=utton a 1rue.
Cambia el alor de la propiedad :alue de un control +hecO=o8.

0inta8is
Private 0ub $ormF+licO; >
Private 0ub o'4etoF+licO;X5nd"e As IntegerY>

La sintaxis del eento Clic6 consta de las siguientes partes-
Parte /escripci&n
o'4eto 3na expresin de ob!eto que da como resultado un ob!eto de la lista %plicable a.
5nd"e 3n entero que identifica +nicamente a un control si est en una matriz de controles.
PROF. JUAN MANSILLA NEYRA ?D
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

+omentarios
&or lo general se ad!unta un procedimiento de eento Clic6 a un control +ommand=utton, un ob!eto
%enu o un control Picture=o8 para realizar comandos " acciones similares a comandos. &ara los dems
controles aplicables, utilice este eento para desencadenar acciones como respuesta a un cambio en el
control.
&uede utilizar la propiedad :alue de un control para comprobar el estado del control desde el cdigo.
Cacer clic en un control genera los eentos Mouse*o7n " Mouse3p adems del eento Clic6. $l orden en
que ocurren estos tres eentos ara de un control a otro. &or e!emplo, para los controles List=o8 "
+ommand=utton, los eentos ocurren en este orden- Mouse*o7n, Clic6, Mouse3p. &ero para los
controles $ileList=o8, Label o Picture=o8, los eentos ocurren en este otro orden- Mouse*o7n,
Mouse3p " Clic6. Cuando est ad!untando procedimientos para estos eentos relacionados, aseg+rese de
que sus acciones no entran en conflicto. 2i el orden de los eentos es importante en la aplicacin, pruebe el
control para determinar el orden de los mismos.
2ota &ara distinguir entre los botones primario, secundario " central del mouse, utilice los eentos
Mouse*o7n " Mouse3p.

2i 'a" cdigo en el eento Clic6, nunca se actiar el eento *lbClic6 "a que de los dos eentos, Clic6 es
el primero que se actia. Como resultado, el eento Clic6 intercepta el clic del mouse, por lo que *blClic6
nunca se producir.

Ejemlo del E"ento $lic4

$n este e!emplo, cada ez que se 'ace clic en un control Picture=o8 se muee diagonalmente por un
formulario. &ara probar este e!emplo, pegue el cdigo en la seccin *eclaraciones de un formulario que
contenga un control Picture=o8 en la esquina inferior izquierda del mismo, despus presione =? " 'aga
clic en el control Picture=o8.
&riate 2ub &icture/JClic6 ()
&icture/.Moe &icture/.Left F K?,, &icture/.>op B ??,
$nd 2ub

13.3- 5otFocus

%plicable a-
Control C'ec64ox, Control Combo4ox, Control Command4utton, , @b!eto =orm Controles C2croll4ar "
P2croll4ar, Control List4ox, Control @ption4utton, Control &icture4ox, Control >ext4ox.

@curre cuando un ob!eto recibe el enfoque, "a sea mediante una accin del usuario, como tabular o 'acer
clic en el ob!eto, o cambiando el enfoque en el cdigo mediante el mtodo 0et$ocus. 3n formulario recibe
el enfoque slo cuando todos los controles isibles estn desactiados.
0inta8is
Private 0ub $ormFGot$ocus; >
Private 0ub o'4etoFGot$ocus;X5nd"e As IntegerY>

La sintaxis del eento Aot=ocus consta de las siguientes partes-
Parte /escripci&n
o'4eto 3na expresin de ob!eto que da como resultado un ob!eto de la lista %plicable a.
5nd"e 3n entero que identifica de manera +nica a un control si est en una matriz de controles.

+omentarios

<ormalmente, el procedimiento de eento Aot=ocus se utiliza para especificar las acciones que ocurren
cuando un control o un formulario recibe primero el enfoque. &or e!emplo, si ad!unta un procedimiento de
eento Aot=ocus a cada control de un formulario puede guiar al usuario mostrndole instrucciones brees
PROF. JUAN MANSILLA NEYRA ?K
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
o mensa!es en la barra de estado. >ambin puede proporcionar aisos isuales actiando, desactiando o
mostrando otros controles que dependan del control que tiene el enfoque.
2ota 3n ob!eto puede recibir el enfoque slo si sus propiedades 5nabled " :isible estn establecidas a
1rue. &ara personalizar el interfaz de teclado en Pisual 4asic para moer el enfoque, establezca el orden
de tabulacin o especifique teclas de acceso para controles de un formulario.

5jemplo del evento Got$ocus

$ste e!emplo muestra un mensa!e en la barra de estado cuando un botn de un grupo 4ption=utton
obtiene el enfoque. &ara probar este e!emplo, pegue el cdigo en la seccin *eclaraciones de un formulario
que contenga dos controles 4ption=utton " un control Label. $stablezca la propiedad 2ame de ambos
controles 4ption=utton a @ptionAroup ", despus, presione =? " 'aga clic en los controles
4ption=utton.

&riate 2ub =ormJLoad ()
Label/.%uto2ize E >rue
$nd 2ub

&riate 2ub @ptionAroupJAot=ocus (5ndex %s 5nteger)
2elect Case 5ndex
Case ,
Label/.Caption E \La opcin / tiene el enfoque.\
Case /
Label/.Caption E \La opcin : tiene el enfoque.\
$nd 2elect
$nd 2ub

&riate 2ub @ptionAroupJLost=ocus (5ndex %s 5nteger)
Label/.Caption E \\
$nd 2ub

13.4- 6eyPress

%plicable a-
Control C'ec64ox, Control Combo4ox, Control Command4utton, @b!eto =orm Controles C2croll4ar "
P2croll4ar, Control List4ox, Control @ption4utton, Control &icture4ox, Control >ext4ox.

@curre cuando el usuario presiona " suelta una tecla.
0inta8is
Private 0ub $ormFVeLPress;6eyas"" As Integer>
Private 0ub o'4etoFVeLPress;X5nd"e As Integer,Y6eyas"" As Integer>

La sintaxis del eento ce"&ress consta de las siguientes partes-
Parte /escripci&n
o'4eto 3na expresin de ob!eto que da como resultado un ob!eto de la lista %plicable a.
5nd"e 3n entero que identifica de manera +nica a un control si est en una matriz de controles.
6eyas"" 3n entero que deuele un cdigo de tecla numrico %<25 estndar. 6eyas"" se pasa por
referencia9
al cambiarlo se ena un carcter diferente al ob!eto. Cambiar 6eyas"" a , cancela la pulsacin de
tecla, de forma que el ob!eto no recibe ning+n carcter.

+omentarios

$l ob!eto que tiene el enfoque recibe el eento. 3n formulario puede recibir el eento slo si no tiene
controles isibles " actiados. 3n eento ce"&ress puede implicar a cualquier carcter imprimible del
teclado, a la tecla C>1L combinada con un carcter del alfabeto estndar o uno de los caracteres especiales,
PROF. JUAN MANSILLA NEYRA ?L
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
" la tecla $<>1%1 o 1$>1@C$2@. 3n procedimiento de eento ce"&ress es +til para interceptar pulsaciones
de teclas realizadas en un control 1e8t=o8 o +ombo=o8. $sto le permite comprobar inmediatamente la
alidez de las pulsaciones o el formato de los caracteres a medida que se escriben. Cambiar el alor del
argumento 6eyas"" cambia el carcter mostrado.
ce"&ress interpreta las ma"+sculas " min+sculas de cada carcter como cdigos de tecla distintos ", por
tanto, como caracteres diferentes.
2ota $l n+mero %<25 para la combinacin de teclado C>1LFg es ,. &uesto que Pisual 4asic reconoce un
alor 6eyas"" de , como una cadena de longitud cero (\\), eite utilizar C>1LFg en sus aplicaciones.

5jemplo del evento VeLPress

$ste e!emplo conierte a ma"+sculas el texto escrito en un control 1e8t=o8. &ara probar este e!emplo,
pegue el cdigo en la seccin *eclaraciones de un formulario que contenga un control 1e8t=o8 ", despus,
presione =? " escriba algo en el control 1e8t=o8.

&riate 2ub >ext/Jce"&ress (ce"%scii %s 5nteger)
C'ar E C'r(ce"%scii)
ce"%scii E %sc(3Case(C'ar))
$nd 2ub

13./- 7oad

%plicable a-
@b!eto =orm.

@curre cuando se carga un formulario. &ara un formulario de inicio, ocurre cuando una aplicacin se inicia
como resultado de una instruccin Load o como resultado de una referencia a una propiedad o control de
un formulario descargado.
0inta8is
Private 0ub $ormFLoad; >
Private 0ub %/I$ormFLoad; >

+omentarios

<ormalmente utiliza un procedimiento de eento Load para incluir cdigo de inicializacin para un
formulario9 por e!emplo, cdigo que especifica los alores predeterminados de los controles, indica el
contenido que se a a cargar en controles +ombo=o8 o List=o8 e inicializa ariables a niel del
formulario.
$l eento Load ocurre tras el eento 5nitialize.
2ota Cuando cree procedimientos para eentos relacionados, como %ctiate, Aot=ocus, &aint " 1esize,
aseg+rese de que sus acciones no entran en conflicto " no producen eentos recursios.

5jemplo del evento Load

$ste e!emplo carga elementos en un control +ombo=o8 cuando se carga un formulario. &ara probar este
e!emplo, pegue el cdigo en la seccin *eclaraciones de un formulario que contenga un control
+ombo=o8 " despus presione =?.

&riate 2ub =ormJLoad ()
Combo/.%dd5tem \Mozart\ a %grega elementos a la lista.
Combo/.%dd5tem \4eet'oen\
Combo/.%dd5tem \1oc6 an 1oll\
Combo/.%dd5tem \1eggae\
Combo/.List5ndex E : a $stablece la seleccin predeterminada.
$nd 2ub
PROF. JUAN MANSILLA NEYRA ?Q
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

13.0- 7ostFocus

%plicable a
Control C'ec64ox, Control Combo4ox, Control Command4utton, @b!eto =orm Controles C2croll4ar "
P2croll4ar, Control List4ox, Control @ption4utton, Control &icture4ox, Control >ext4ox.

@curre cuando un ob!eto pierde el enfoque, "a sea por una accin del usuario, como tabular o 'acer clic en
otro ob!eto, o bien mediante un cambio del enfoque en el cdigo con el mtodo 0et$ocus.
0inta8is
Private 0ub $ormFLost$ocus; >
Private 0ub o'4etoFLost$ocus;X5nd"e As IntegerY>

La sintaxis del eento Lost=ocus consta de las siguientes partes-
Parte /escripci&n
o'4eto 3na expresin de ob!eto que da como resultado un ob!eto de la lista %plicable a.
5nd"e 3n entero que identifica de manera +nica a un control si est en una matriz de controles.

+omentarios

3n procedimiento de eento Lost=ocus resulta especialmente +til para comprobar " alidar
actualizaciones. 3tilizar Lost=ocus puede 'acer que la alidacin tenga lugar conforme el usuario muee
el enfoque del control. @tro uso para este tipo de procedimiento de eento es actiar, desactiar, ocultar "
mostrar otros ob!etos, como en un procedimiento de eento Aot=ocus. >ambin puede inertir o cambiar
condiciones que estableci en el procedimiento de eento Aot=ocus del ob!eto.

Ejemlo del e"ento 7ostFocus

$ste e!emplo cambia el color de un control 1e8t=o8 cuando recibe o pierde el enfoque (se selecciona con
el mouse o la tecla >%4) " muestra el texto apropiado en el control Label. &ara probar este e!emplo, pegue
el cdigo en la seccin *eclaraciones de un formulario que contenga dos controles 1e8t=o8 " un control
Label ", despus, presione =? " muea el enfoque entre >ext/ " >ext:.

&riate 2ub >ext/JAot=ocus ()
a Muestra el enfoque en ro!o.
>ext/.4ac6Color E 1A4(:??, ,, ,)
Label/.Caption E \>ext/ tiene el enfoque.\
$nd 2ub

&riate 2ub >ext/JLost=ocus ()
a Muestra la prdida del enfoque en azul.
>ext/.4ac6Color E 1A4(,, ,, :??)
Label/.Caption E \>ext/ no tiene el enfoque.\
$nd 2ub

13.8- ,ouse,o"e

%plicable a-
Control C'ec64ox, Control Command4utton, Control *ata, @b!eto =orm, Control =rame, Control 5mage,
Control Label, Control List4ox, Control @ption4utton, Control &icture4ox, Control >ext4ox.

@curre cuando el usuario muee el mouse.

0inta8is
PROF. JUAN MANSILLA NEYRA D,
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Private 0ub $ormF%ouse%ove;'otn As Integer, may7s As Integer, % As 0ingle, y As 0ingle>
Private 0ub %/I$ormF%ouse%ove;'otn As Integer, may7s As Integer, % As 0ingle, y As 0ingle>
Private 0ub o'4etoF%ouse%ove;X5nd"e As Integer,Y 'otn As Integer, may7s As Integer, % As 0ingle,
y As 0ingle>

La sintaxis del eento MouseMoe consta de las siguientes partes-
Parte /escripci&n
o'4eto 3na expresin de ob!eto que da como resultado un ob!eto de la lista %plicable a.
5nd"e 3n entero que identifica de manera +nica a un control si est en una matriz de controles.
'otn 3n entero que corresponde al estado de los botones del mouse en el cual un bit se establece si el botn
est presionado. $l argumento 'otn es un campo de bit con los bits correspondientes al botn primario (bit
,), al botn secundario (bit /) " al botn central (bit :). $stos bits corresponden a los alores /, : " 0,
respectiamente. 5ndica el estado completo de los botones del mouse9 alguno, todos o ninguno de estos tres
bits puede estar establecido, lo que indica que algunos, todos o ninguno de los botones est presionado.
may7s 3n entero que corresponde al estado de las teclas M%]h2, C>1L " %L>. 3n bit est establecido si la
tecla est presionada. $l argumento may7s es un campo de bits con los bits menos significatios
correspondientes a la tecla M%]h2 (bit ,), C>1L (bit /) " %L> (bit : ). $stos bits corresponden a los alores /, :
" 0, respectiamente. $l argumento may7s indica el estado de estas teclas. %lguno, todos o ninguno de los bits
puede estar establecido, lo que indica que alguna, todas o ninguna de las teclas est presionada. &or e!emplo,
si se presionaron las teclas C>1L " %L>, el alor de s!"*t sera D.
%, y 3n n+mero que especifica la ubicacin actual del puntero del mouse. Los alores % e y siempre se
expresan en trminos del sistema de coordenadas establecido por las propiedades 0caleHeight, 0caleCidth,
0caleLe9t " 0cale1op del ob!eto.

+omentarios

$l eento MouseMoe se genera continuamente a medida que el puntero del mouse se muee por los
ob!etos. % menos que otro ob!eto 'a"a capturado el mouse, un ob!eto reconoce un eento MouseMoe
siempre que la posicin del mouse est dentro de sus bordes.

5jemplo del evento %ouse%ove

$ste e!emplo muestra una aplicacin de dibu!o simple. $l procedimiento de eento Mouse*o7n funciona
con un procedimiento MouseMoe relacionado para actiar el dibu!o cuando est presionado cualquier
botn del mouse. $l procedimiento de eento Mouse3p desactia el dibu!o. &ara probar este e!emplo,
pegue el cdigo en la seccin *eclaraciones de un formulario, despus presione =?, 'aga clic en el
formulario " muea el mouse mientras est presionado el botn del mismo.

*im &aint<o7 %s 4oolean a *eclara una ariable.
&riate 2ub =ormJMouse*o7n (4utton %s 5nteger, 2'ift %s 5nteger, 8 %s 2ingle, ] %s 2ingle)
&aint<o7 E >rue a %ctia el dibu!o.
$nd 2ub

&riate 2ub =ormJMouse3p (4utton %s 5nteger, 8 %s 2ingle, ] %s 2ingle)
&aint<o7 E =alse a *esactia el dibu!o.
$nd 2ub

&riate 2ub =ormJMouseMoe (4utton %s 5nteger, 2'ift %s 5nteger, 8 %s 2ingle, ] %s 2ingle)
5f &aint<o7 >'en
&2et (8, ]) a *ibu!a un punto.
$nd 5f
$nd 2ub

&riate 2ub =ormJLoad ()
*ra7[idt' E /, a 3tiliza un pincel ms anc'o.
PROF. JUAN MANSILLA NEYRA D/
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
=oreColor E 1A4(,, ,, :??) a $stablece el color de dibu!o.
$nd 2ub

13.9- #imer

%plicable a-
Control >imer

@curre cuando 'a transcurrido un interalo preestablecido para un control 1imer. La frecuencia del
interalo se almacena en la propiedad Interval del control, que especifica el tiempo en milisegundos.

0inta8is
Private 0ub o'4etoF1imer;X5nd"e As IntegerY>

La sintaxis del eento >imer consta de las siguientes partes-
Parte /escripci&n
o'4eto 3na expresin de ob!eto que da como resultado un ob!eto de la lista %plicable a.
5nd"e 3n entero que identifica de manera +nica a un control si est en una matriz de controles.

+omentarios

3tilice este procedimiento de eento para indicar a Pisual 4asic qu 'acer cada ez que se agote el
interalo de tiempo de un control 1imer. Cuando est traba!ando con el eento >imer-
La propiedad Interval especifica el interalo entre los eentos >imer, en milisegundos.
2iempre que la propiedad 5nabled del control 1imer est establecida a 1rue " la propiedad Interval
sea ma"or que ,, el eento >imer espera durante el periodo especificado en la propiedad Interval.

5jemplo del evento 1imer

$ste e!emplo muestra un relo! digital. &ara probar este e!emplo, pegue el cdigo en la seccin
*eclaraciones de un formulario que contenga un control Label " un control 1imer ", despus, presione =?.

&riate 2ub =ormJLoad ()
>imer/.5nteral E /,,, a $stablece el interalo de >imer.
$nd 2ub

&riate 2ub >imer/J>imer ()
Label/.Caption E >ime a %ctualiza la presentacin de la 'ora.
$nd 2ub

$ste e!emplo muee un control Picture=o8 por un formulario. &ara probar este e!emplo, pegue el cdigo
en la seccin *eclaraciones de un formulario que contenga un control 1imer " un control Picture=o8 ",
despus, presione =?. 2i desea obtener un efecto isual me!or puede asignar un mapa de bits al control
Picture=o8 mediante la propiedad Picture.

*im *elta8, *elta] %s 5nteger a *eclara ariables.
&riate 2ub >imer/J>imer ()
&icture/.Moe &icture/.Left F *elta8, &icture/.>op F *elta]
5f &icture/.Left M 2caleLeft >'en *elta8 E /,,
5f &icture/.Left F &icture/.[idt' N 2cale[idt' F 2caleLeft >'en
*elta8 E B/,,
$nd 5f
5f &icture/.>op M 2cale>op >'en *elta] E /,,
5f &icture/.>op F &icture/.Ceig't N 2caleCeig't F 2cale>op >'en
*elta] E B/,,
PROF. JUAN MANSILLA NEYRA D:
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
$nd 5f
$nd 2ub

&riate 2ub =ormJLoad ()
>imer/.5nteral E /,,, a $stablece el interalo.
*elta8 E /,, a 5nicializa ariables.
*elta] E /,,
$nd 2ub

13.:- ;nload

%plicable a-
@b!eto =orm.

@curre cuando un formulario est a punto de quitarse de la pantalla. Cuando ese formulario se uele a
cargar, el contenido de todos sus controles se reinicializa. $ste eento se desencadena porque un usuario
cierra el formulario mediante el comando +errar del men+ +ontrol o una instruccin Unload.

0inta8is
Private 0ub o'4etoFUnload;anelar As Integer>

La sintaxis del eento 3nload consta de las siguientes partes-
Parte /escripci&n
o'4eto 3na expresin de ob!eto que da como resultado un ob!eto de la lista %plicable a.
anelar 3n entero que determina si el formulario se quita de la pantalla. 2i anelar es ,, el
formulario se quita. $stablecer anelar a cualquier alor distinto de cero impide que el formulario se quite.

+omentarios

$stablecer anelar a un alor distinto de cero impide que el formulario se quite, pero no detiene los
dems eentos, como la salida del entorno operatio Microsoft [indo7s. 3tilice el eento Uuer"3nload
para detener la salida de [indo7s.
3tilice un procedimiento de eento 3nload para comprobar si el formulario se debe descargar o para
especificar acciones que desea que tengan lugar cuando se descargue el formulario. >ambin puede incluir
cualquier cdigo de alidacin a niel del formulario que pueda necesitar para cerrar el formulario o
guardar los datos en un arc'io.
$l eento Uuer"3nload ocurre antes que el eento 3nload. $l eento 3nload ocurre antes que el eento
>erminate.
$l eento 3nload puede estar causado por la utilizacin de la instruccin Unload o porque el usuario eli!a
el comando +errar del men+ +ontrol del formulario, salga de la aplicacin con el botn $inalizar tarea
de la Lista de tareas, o salga del entorno operatio Microsoft [indo7s mientras la aplicacin se est
e!ecutando.

5jemplo del evento Unload

$ste e!emplo muestra un procedimiento simple para cerrar un formulario mientras se aisa al usuario con
arios cuadros de mensa!es. $n una aplicacin real, puede agregar llamadas a procedimientos 0ub de
propsito general que emulen el proceso de los comandos 0alir, Guardar " Guardar como del men+
Archivo de Pisual 4asic. &ara probar este e!emplo, pegue el cdigo en la seccin *eclaraciones de un
formulario ", despus, presione =?. 3na ez que se muestre el formulario, presione %L>F=0 para cerrar el
formulario.

&riate 2ub =ormJ3nload (Cancel %s 5nteger)
*im Msg, 1esponse a *eclara ariables.
Msg E \S*esea guardar los datos antes de cerrarT\
1esponse E Msg4ox(Msg, bUuestion F b]es<oCancel, \*ilogo Cerrar\)
PROF. JUAN MANSILLA NEYRA D;
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
2elect Case 1esponse
Case bCancel a <o se permite cerrar.
Cancel E B/
Msg E \2e 'a cancelado el comando.\
Case b]es
a 5ntroduzca cdigo para guardar los datos aqu.
Msg E \*atos guardados.\a
Case b<o
Msg E \*atos no guardados.\
$nd 2elect
Msg4ox Msg, b@c@nl", \Confirmacin\ a Mostrar mensa!e.
$nd 2ub


13.1<- =uery;nload

%plicable a-
@b!eto =orm " Coleccin =orms, @b!eto M*5=orm

@curre antes de que se cierre un formulario o una aplicacin.

0inta8is
Private 0ub $ormFJuerLUnload;anelar As Integer, modo(desarga As Integer>
Private 0ub %/I$ormFJuerLUnload;anelar As Integer, modo(desarga As Integer>

La sintaxis del eento Uuer"3nload consta de las siguientes partes-
Parte /escripci&n
anelar 3n entero. $stablecer este argumento a cualquier alor distinto de , detiene el eento
Uuer"3nload en todos los formularios cargados " detiene el cierre del formulario " de la aplicacin.
modo(desarga 3n alor o una constante que indica la causa del eento Uuer"3nload, tal " como se describe
en Palores que se pueden obtener.

:alores @ue se pueden obtener
$l argumento modo(desarga deuele los siguientes alores-
+onstante :alor /escripci&n
vb$orm+ontrol%enu , $l usuario eligi el comando +errar del men+ +ontrol del formulario.
vb$orm+ode / 2e inoc la instruccin Unload desde el cdigo.
:bAppCindoQs : La sesin actual del entorno operatio Microsoft [indo7s est inalizando.
vbApp1asO%anager ; $l %dministrador de tareas de Microsoft [indo7s est cerrando la
aplicacin.
vb$orm%/I$orm 0 3n formulario M*5 secundario se est cerrando porque el formulario M*5
tambin se est cerrando.

+omentarios

<ormalmente este eento se utiliza para asegurarse de que no 'a" tareas sin finalizar en los formularios
incluidos en una aplicacin antes de que esa aplicacin se cierre. &or e!emplo, si un usuario no 'a
guardado todaa algunos datos nueos de cualquier formulario, su aplicacin puede pedir al usuario que
los guarde.
Cuando una aplicacin se cierra, puede utilizar los procedimientos de eento Uuer"3nload o 3nload para
establecer la propiedad +ancel a 1rue, deteniendo el proceso de cierre. 2in embargo, el eento
Uuer"3nload ocurre en todos los formularios antes de que se descargue ninguno de ellos " el eento
3nload ocurre conforme se descarga cada formulario.

5jemplo del evento JuerLUnload

PROF. JUAN MANSILLA NEYRA D0
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
$n este e!emplo, al cerrar un formulario se consulta al operador si realmente quiere salir o no. >ambin se
c'equea si est saliendo del formulario o de toda la aplicacin.

a &egar en la seccin *eclaraciones de =orm/.
&riate 2ub =ormJUuer"3nload (Cancel %s 5nteger, 3nloadMode %s 5nteger)
*im Msg a *eclara la ariable.
5f 3nloadMode N , >'en
a 2i sale de la aplicacin.
Msg E \S1ealmente desea salir de la aplicacinT\
$lse
a 2i slo se cierra el formulario.
Msg E \S1ealmente desea cerrar el formularioT\
$nd 5f
a 2i el usuario 'ace clic en el botn <o, se detiene Uuer"3nload.
5f Msg4ox(Msg, bUuestion F b]es<o, Me.Caption) E b<o >'en Cancel E >rue
$nd 2ub


13.11- Validate

%plicable a-
Control *ata

2e produce antes de que otro registro se conierta en el registro actual, antes del mtodo Update (excepto
cuando se guardan los datos con el mtodo Update)ecord) " antes de una operacin /elete, Unload o
+lose.
0inta8is
Private 0ub o'4etoF:alidate ;X5nd"e As Integer,Y a"n As Integer, guardar As Integer>

La sintaxis del eento Palidate consta de las siguientes partes-
Parte /escripci&n
o'4eto 3na expresin de ob!eto cu"o resultado es un ob!eto de la lista %plicable a
5nd"e 5dentifica el control si se encuentra en una matriz de controles
a"n 3n entero que indica la operacin que prooca el eento, como se describe en Palores
guardar 3na expresin booleana que especifica si los datos enlazados 'an cambiado, como se describe en
Palores

:alores
Los alores de a"n son-
+onstante :alor /escripci&n
vb/ataAction+ancel , Cancela la operacin al salir de 0ub
vb/ataAction%ove$irst / Mtodo %ove$irst
vb/ataAction%ovePrevious : Mtodo %ovePrevious
vb/ataAction%ove2e8t ; Mtodo %ove2e8t
vb/ataAction%oveLast 0 Mtodo %oveLast
vb/ataActionAdd2eQ ? Mtodo Add2eQ
vb/ataActionUpdate D @peracin Update (no Update)ecord)
vb/ataAction/elete K Mtodo /elete
vb/ataAction$ind L Mtodo $ind
vb/ataAction=ooOmarO Q 2e 'a establecido la propiedad =ooOmarO
vb/ataAction+lose /, $l mtodo +lose
vb/ataActionUnload // 2e est descargando el formulario

Los alores de guardar son-
:alor /escripci&n
1rue Los datos enlazados 'an cambiado
PROF. JUAN MANSILLA NEYRA D?
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
$alse Los datos enlazados no 'an cambiado

+omentarios

$l argumento guardar indica inicialmente si los datos enlazados 'an cambiado. $ste argumento puede ser
$alse si los datos del b+fer de copia 'an cambiado. 2i guardar es 1rue cuando este eento termina, se
inocan los mtodos 5dit " Update)ecord. $l mtodo Update)ecord slo guarda los datos de controles
enlazados o del b+fer de copia en los que la propiedad /ata+hanged sea 1rue.
$ste eento se produce incluso aunque no se 'a"an modificado los datos de los controles enlazados "
aunque no existan controles enlazados. &uede utilizar este eento para cambiar alores " actualizar datos.
>ambin puede decidir guardar los datos o detener cualquier accin que est proocando el eento "
sustituirla por otra accin diferente.
&uede cambiar el argumento a"n para cambiar una accin por otra. &uede cambiar los diersos mtodos
Moe " el mtodo Add2eQ, que se pueden intercambiar libremente (cualquier Moe en Add2eQ,
cualquier Moe en cualquier otro Moe o Add2eQ en cualquier Moe). Cuando utilice Add2eQ, puede
utilizar %ove2e8t " despus e!ecutar otro Add2eQ para examinar la propiedad 5dit%ode " determinar si
'a" una operacin 5dit o Add2eQ en curso. $l intento de sustituir Add2eQ o una accin Moe en
cualquier otra accin se pasa por alto o genera un error interceptable. 2i se establece a"n a ,, se puede
detener cualquier accin.
*entro del cdigo de este eento puede comprobar los datos de cada control enlazado en el que
/ata+hanged sea 1rue. *espus puede establecer /ata+hanged a $alse para eitar guardar dic'os datos
en la base de datos.
*urante este eento no puede utilizar ning+n mtodo (como %ove2e8t) en el ob!eto )ecordset
sub"acente.
Ejemlo de la roiedad Data$*anged y del e"ento Validate

$ste e!emplo ilustra una alidacin de datos sencilla. $n la tabla %ut'ors de la base de datos 4iblio.mdb
'a" dos campos- %uJ5* " %ut'or. Como el alor de %uJ5* se utiliza para identificar de forma +nica al
autor, este alor no se debe cambiar. $l e!emplo no permite que se modifique el campo %uJ5*, que est
enlazado a >ext/.

&riate 2ub *ata/JPalidate (%ction %s 5nteger, 2ae %s 5nteger)
5f >ext/.*ataC'anged >'en a Comprueba si los datos 'an cambiado.
Msg4ox \<o puede cambiar el n+mero de 5d.\
>ext/.*ataC'anged E =alse a <o guarda los datos modificados.
$nd 5f

$nd 2ub

$-% ,todos m=s importantes de los controles est=ndares#

14.1- >dd(tem

%plicable a-
ControlCombo4ox, ControlList4ox

%grega un elemento a un control List=o8 o +ombo=o8
0inta8is
o'4etoAddItem elemento, 5nd"e

La sintaxis del mtodo AddItem consta de las siguientes partes-
Parte /escripci&n
o'4eto 1equerido. 3na expresin de ob!eto cu"o resultado es un ob!eto de la lista %plicable a.
PROF. JUAN MANSILLA NEYRA DD
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Elemento 1equerido. expresin de cadena que especifica el elemento que se a a agregar al ob!eto.
5nd"e @pcional. $ntero que especifica la posicin dentro del ob!eto donde se insertan el elemento o la
fila nueos. &ara el primer elemento de un control List=o8 o +ombo=o8, 5nd"e es ,.

+omentarios

2i se especifica un alor lido para 5nd"e, elemento se sit+a en dic'a posicin dentro del o'4eto. 2i se
omite 5nd"e, elemento se agrega en la posicin que le corresponda dentro del orden apropiado (si la
propiedad 0orted es 1rue) o al final de la lista (si 0orted es $alse).
Los controles List=o8 o +ombo=o8 que estn enlazados a un control /ata no aceptan el mtodo
AddItem.

Ejemlo del m-todo >dd(tem

$ste e!emplo utiliza el mtodo AddItem para agregar /,, elementos a un cuadro de lista. &ara probar este
e!emplo, pegue el cdigo en la seccin *eclaraciones de un formulario con un control List=o8 llamado
List/, " despus presione =? " 'aga clic en el formulario.
&riate 2ub =ormJClic6 ()
*im $ntr", 5, Msg a *eclara ariables.
Msg E \Caga clic en %ceptar para agregar /,, elementos a su cuadro de lista.\
Msg4ox Msg a Muestra el mensa!e.
=or 5 E / >o /,, a Cuenta de / a /,,.
$ntr" E \$ntrada \ f 5 a Crea la entrada.
List/.%dd5tem $ntr" a %grega la entrada.
<ext 5
Msg E \Caga clic en %ceptar para quitar una de cada dos entradas.\
Msg4ox Msg a Muestra el mensa!e.
=or 5 E / >o ?, a *etermina cmo quitar
List/.1emoe5tem 5 a cada elemento
<ext 5
Msg E \Caga clic en %ceptar para quitar todos los elementos del cuadro de lista.\
Msg4ox Msg a Muestra el mensa!e.
List/.Clear a Limpia el cuadro de lista.
$nd 2ub

14.2- >dd?e@ %2bjeto &ecordset'

%plicable a-
@b!eto 1ecordset.

Crea un nueo registro para un ob!eto )ecordset de tipo >able o *"naset.

0inta8is
reordsetAdd2eQ

$l marcador de posicin del reordset es una ariable de ob!eto que representa un ob!eto )ecordset que se
puede actualizar al que puede agregar un registro nueo.

+omentarios

3tilice el mtodo Add2eQ para crear " agregar un nueo registro en el ob!eto )ecordset llamado por el
reordset. $ste mtodo establece los campos a los alores predeterminados " si no se especifican alores
predeterminados, establece los campos a 2ull (los alores predeterminados especificados pare el
)ecordset tipo >able).
PROF. JUAN MANSILLA NEYRA DK
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
*espus de modificar el nueo registro, utilice el mtodo Update para guardar los cambios " agregar el
registro al )ecordset. <o se producirn cambios en la base de datos 'asta que no se utilice el mtodo
Update.

Precauci&n 2i e!ecuta un Add2eQ " a continuacin realiza una operacin que desplace otro registro sin
usar Update, los cambios se perdern sin preio aiso. %dems, si cierra el )ecordset o finaliza el
procedimiento que declara el )ecordset o su ob!eto /atabase, el nueo registro " los cambios realizados
se descartarn sin preio aiso.

2i no se 'a desplazado 'asta el +ltimo registro de su )ecordset, los registros agregados a las tablas
sub"acentes pueden incluirse, si se colocan ms all del registro actio. 2in embargo, si agrega un registro
a un )ecordset, el registro ser isible en el )ecordset " se incluir en la tabla sub"acente donde estar
isible para todos los nueos ob!etos )ecordset.
La posicin del nueo registro depende del tipo de )ecordset-
$n un ob!eto )ecordset tipo *"naset, los registros se insertan al final del con!unto del )ecordset,
independientemente de las reglas de clasificacin u orden que estuieran en igor cuando se abri el
)ecordset.
$n un ob!eto )ecordset tipo >able en el que su propiedad Inde8 se 'a"a establecido, los registros se
insertan en el lugar adecuado dentro del orden definido. 2i no se 'a establecido la propiedad Inde8,
los nueos registros se insertarn al final del )ecordset.

5jemplo de mKtodo Add2eQ

$n este e!emplo se agrega un regisro nueo a la tabla %genda de la base de datos Clientes, tomando los datos
desde un formulario que contiene ; ca!as de texto (txtCodigo, txt<ombre " txt*ireccion) " un botn para
agregar los datos (cmd%gregar)


&riate 2ub cmd%gregarJClic6 ()
*im 7sp as [or62pace i*imensiono las ariables
*im 4ase as *atabase
*im %genda as 1ecordset

2et 7sp E *b$ngine.[or6spaces(,) i2eteo el espacio de traba!o
2et 4ase E 7sp.@pen*atabase (GClientes.mdbH) i%bro la base de *atos
2et %genda E 4asede*atos.@pen1ecordset(G2$L$C> . =1@M %gendaH) i%bro el 1ecordset

%genda.%dd<e7 i%grego un registro en blanco
%gendajCodigo E txtCodigo.>ext i%signo los alores de las ca!as de texto a los campos
%gendaj*ireccion E txt*ireccion.>ext
%genda.<ombre E txt<ombre.>ext
%genda.3pdate

%genda.Close iCierro el 1ecordset
4ase.Close iCierro la base de *atos
[sp.Close iCierro el espacio de traba!o

$nd 2ub


14.3- $ancel;date %2bjeto &ecordset'

%plicanble a-
@b!eto 1ecordset.

PROF. JUAN MANSILLA NEYRA DL
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Cancela todas las actualizaciones pendientes del ob!eto )ecordset.

0inta8is
reordset+ancelUpdate t"po

La sintaxis del mtodo +ancelUpdate consta de las siguientes partes.

Parte /escripci&n
reordset 3na ariable de ob!eto que representa el ob!eto )ecordset en el que se cancelan las
actualizaciones pendientes.
T"po @pcional. 3na constante que indica el tipo de actualizacin, como se especifica en Palores (slo
espacios de traba!o @*4C*irect).

+omentarios

$l mtodo +ancelUpdate cancela todas las actualizaciones pendientes a causa de una operacin 5dit o
Add2eQ. &or e!emplo, si un usuario llama al mtodo 5dit o Add2eQ sin 'aber llamado anteriormente al
mtodo Update, +ancelUpdate cancelar todos los cambios efectuados despus de llamar a 5dit o
Add2eQ.

5jemplo del mKtodo +ancelUpdate

%l mismo e!emplo del $ento Add2eQ, le agregamos la opcin de confirmar o oler para atrs la
actualizacin al operador, seg+n la respuesta a una ca!a de mensa!es.

&riate 2ub cmd%gregarJClic6 ()
*im 7sp as [or62pace i*imensiono las ariables
*im 4ase as *atabase
*im %genda as 1ecordset

2et 7sp E *b$ngine.[or6spaces(,) i2eteo el espacio de traba!o
2et 4ase E 7sp.@pen*atabase (GClientes.mdbH) i%bro la base de *atos
2et %genda E 4asede*atos.@pen1ecordset(G2$L$C> . =1@M %gendaH) i%bro el 1ecordset

%genda.%dd<e7 i%grego un registro en blanco
%gendajCodigo E txtCodigo.>ext i%signo los alores de las ca!as de texto a los campos
%gendaj*ireccion E txt*ireccion.>ext
%genda.<ombre E txt<ombre.>ext

5f Msg4ox (\%grega el nueo registroH, b]es<o) E b]es t'en
%genda.3pdate
$lse
%genda.Cancel3pdate
$nd 5f

%genda.Close iCierro el 1ecordset
4ase.Close iCierro la base de *atos
[sp.Close iCierro el espacio de traba!o

$nd 2ub


14.4- $lear %$liboardA $ombo 1oBA 7ist 1oB'

%plicable a-
@b!eto Control Combo4ox, Control List4oxB
PROF. JUAN MANSILLA NEYRA DQ
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

4orra el contenido de los controles List=o8 o +ombo=o8.
0inta8is
o'4eto.+lear

$l marcador de posicin o'4eto representa una expresin de ob!eto cu"o resultado es un ob!eto de la lista
%plicable a.

+omentarios

Los controles List=o8 o +ombo=o8 que estn enlazados a un control /ata no aceptan el mtodo +lear.

5jemplo del mKtodo +lear

$ste e!emplo utiliza el mtodo +lear para borrar todos los elementos de un cuadro de lista. &ara probar
este e!emplo, pegue el cdigo en la seccin *eclaraciones de un formulario con un control List=o8
llamado List/, " despus presione =? " 'aga clic en el formulario.
&riate 2ub =ormJClic6 ()
*im $ntr", 5, Msg a *eclara ariables.
Msg E \Caga clic en %ceptar para agregar /,, elementos a su cuadro de lista.\
Msg4ox Msg a Muestra el mensa!e.
=or 5 E / >o /,, a Cuenta de / a /,,.
$ntr" E \$ntrada \ f 5 a Crea la entrada.
List/.%dd5tem $ntr" a %grega la entrada.
<ext 5
Msg E \Caga clic en %ceptar para quitar cualquier otra entrada.\
Msg4ox Msg a Muestra el mensa!e.
=or 5 E / >o ?, a *etermina cmo quitar
List/.1emoe5tem 5 a uno de cada dos
<ext 5 a elementos.
Msg E \Caga clic en %ceptar para quitar todos los elementos del cuadro de lista.\
Msg4ox Msg a Muestra el mensa!e.
List/.Clear a Limpia el cuadro de lista.
$nd 2ub

14./- $lose %2bjetos DatabaseA &ecordset o Cor4sace'

%plicable a-
@b!eto *atabase, @b!eto 1ecordset, @b!eto [or6space.

Cierra un ob!eto *%@ (*ata %ccess @b!ect).

0inta8is
o'4eto+lose

$l marcador de posicin o'4eto es una ariable de ob!eto que representa un ob!eto /atabase, )ecordset o
CorOspace abierto.

+omentarios

2i el ob!eto /atabase, )ecordset o CorOspace llamado por o'4eto est cerrado cuando utiliza +lose se
produce un error en tiempo de e!ecucin.

PROF. JUAN MANSILLA NEYRA K,
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Precauci&n 2i sale de un procedimiento que declara ob!etos /atabase o )ecordset " la base de datos est
cerrada, los cambios no guardados se perdern, todas las transacciones pendientes se anularn " se
anularn todas las modificaciones pendientes de los datos.

2i intenta cerrar un ob!eto +onnection o /atabase mientras 'a" alg+n ob!eto )ecordset abierto, estos
ob!etos )ecordset se cerrarn " las actualizaciones o modificaciones pendientes quedarn anuladas. 2i
intenta cerrar un ob!eto CorOspace mientras 'a" alg+n ob!eto /atabase abierto, los ob!etos /atabase se
cerrarn, el cual cerrar sus ob!etos )ecordset.
La utilizacin del mtodo +lose en un ob!eto )ecordset original o duplicado no afecta al otro ob!eto
)ecordset.
3na alternatia al mtodo +lose es establecer el alor de una ariable de ob!eto a 2othing (2et dbs>emp E
<ot'ing).

5jemplo de mKtodo +lose

2on lidos los e!emplos de los mtodos Add2eQ " +ancelUpdate. (donde se cierran ob!etos [or6space,
*atabase " 1ecordset),

14.0- $ls

%plicable a-
@b!eto =orm, Control &icture4ox.

4orra los grficos " el texto generados en tiempo de e!ecucin de los controles $orm o Picture=o8.

DintaBis
o'4eto.+ls

$l marcador de posicin o'4eto representa una expresin de ob!eto cu"o resultado es un ob!eto de la lista
%plicable a. 2i se omite o'4eto, se supone que el o'4eto es el control $orm que tenga el enfoque.

$omentarios

+ls borra el texto " los grficos generados en tiempo de e!ecucin por instrucciones grficas " de
impresin. Los mapas de bits de fondo definidos mediante la propiedad Picture " los controles colocados
en un $orm en tiempo de diseo no se en afectados por +ls.
*espus de llamar a +ls, las propiedades +urrent, " +urrentU del o'4eto se restablecen a ,.

5jemplo del mKtodo +ls

$ste e!emplo utiliza el mtodo +ls para eliminar la informacin impresa de un formulario. &ara probar este
e!emplo, pegue el cdigo en la seccin *eclaraciones de un formulario, " despus presione =? " 'aga clic
en el formulario.
&riate 2ub =ormJClic6 ()
*im Msg a *eclara ariable.
=oreColor E U4Color(/?) a $stablece el color de primer plano a blanco.
4ac6Color E U4Color(/) a $stablece el color de fondo a azul.
Msg E \$sta informacin se imprime en el fondo del formulario.\
&rint Msg a 5mprime el mensa!e en el formulario.
Msg E \Caga clic en %ceptar para borrar la informacin " el patrn de fondo \
Msg E Msg f \mostrado en el formulario.\
Msg4ox Msg a Muestra el mensa!e.
Cls a 4orra el fondo del formulario.
$nd 2ub
PROF. JUAN MANSILLA NEYRA K/
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

14.8- $omactDatabase %2bjeto D1Engine'

%plicable a-
@b!eto *4$ngine

Copia, compacta " ofrece la posibilidad de cambiar la ersin, la secuencia de ordenacin " la
codificacin. (slo espacio de traba!o Microsoft eet).

DintaBis
/=5ngine+ompact/atabase ant"gua'asededatos< nue#a'asededatos< esenar"o< op"onesA ontrase3a

La sintaxis del mtodo +ompact/atabase tiene los siguientes argumentos-

Antigua+asededatos: 3na 0tring que identifica una base de datos existente " cerrada. &uede ser una ruta
completa " un nombre de arc'io, como \C-^db/.mdb\. 2i el nombre de arc'io tiene una extensin, deber
especificarla. 2i su red lo admite, tambin puede especificar una ruta de red, como
\^^serer/^s'are/^dir/^db/.mdb\.
nueva+asededatos: 3n tipo de datos 0tring que es la ruta completa de la base de datos compactada que a a
crear. >ambin puede especificar una ruta de acceso de red al igual que con ant"gua'asededatos. <o puede
usar el argumento nue#a'asededatos para especificar el mismo arc'io de base de datos que
ant"gua'asededatos$
"scenario: @pcional. 3n tipo de datos :ariant que es una expresin de cadena que se utiliza para
especificar la secuencia de ordenacin para crear nue#a'asededatos, como se especifica en @pciones. 2i
omite este argumento, el escenario de la nue#a'asededatos ser el mismo que el de la ant"gua'asededatos.
>ambin puede crear una contrasea para nue#a'asededatos concatenando la cadena de la contrasea (que
comienza con \9p7dE\) con una constante del argumento esenar"o, como este-
dbLang2panis' f \9p7dE<ueaContrasea\
2i desea utilizar el mismo esenar"o como ant"gua'asededatos (el alor predeterminado), pero especificar
una contrasea nuea, simplemente escriba una contrasea en esenar"o-
\9p7dE<ueaContrasea\
op"ones @pcional. 3n alor entero que indica una o ms opciones, seg+n se especifica en @pciones.
&uede combinar opciones sumando las correspondientes constantes.
Contrase7a: @pcional. 3n tipo de datos :ariant que es una expresin de cadena que contiene una
contrasea, si la base de datos est protegida con contrasea. La cadena \9p7dE\ debe preceder a la propia
contrasea. 2i inclu"e una alor de contrasea en esenar"o, este alor se ignora.

&uede utilizar una de las siguientes constantes en el argumento op"ones para especificar si desea o no
codificar la base de datos mientras se compacta.
+onstante /escripci&n
db5ncrLpt Codifica la base de datos durante la compactacin.
/b/ecrLpt *escodifica la base de datos durante la compactacin.

2i omite una constante de codificacin o si inclu"e a la ez db/ecrLpt " db5ncrLpt, nue#a'asededatos
tendr la misma codificacin que ant"gua'asededatos$
&uede usar una de las siguientes constantes en el argumento op"ones para especificar la ersin del
formato de los datos para la base de datos compactada. $sta constante afecta slo a la ersin del formato
de datos de nue#a'asededatos " no afecta a la ersin de ninguno de los ob!etos definidos por Microsoft
%ccess, como formularios e informes.
+onstante /escripci&n
db:ersion1G Crea una base de datos que utiliza el motor de base de datos Microsoft eet ersin /.,
durante la compactacin.
/b:ersion11 Crea una base de datos que utiliza el motor de base de datos Microsoft eet ersin /./
durante la compactacin.
/b:ersion"G Crea una base de datos que utiliza el motor de base de datos Microsoft eet ersin :.,
PROF. JUAN MANSILLA NEYRA K:
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
durante la compactacin.
/b:ersion!G Crea una base de datos que utiliza el motor de base de datos Microsoft eet ersin ;.,
(compatible con la ersin ;.?) durante la compactacin.

2lo puede especificar una constante de ersin. 2i omite una constante de ersin, nue#a'asededatos
tendr la misma ersin que ant"gua'asededatos. 2lo puede compactar nue#a'asededatos a una ersin
igual o posterior a la de ant"gua'asededatos$

+omentarios

%l cambiar datos de una base de datos, el arc'io de base de datos puede fragmentarse " utilizar ms
espacio en disco del necesario. 1egularmente, puede usar el mtodo +ompact/atabase en la base de
datos para desfragmentar el arc'io de base de datos. La base de datos compactada suele ser ms pequea
" e!ecutarse con ms rapidez. >ambin puede cambiar la secuencia de ordenacin, la codificacin o la
ersin del formato de datos, mientras copia " compacta la base de datos.
>iene que cerrar ant"gua'asededatos antes de compactarla. $n un entorno multiusuario, los dems usuarios
no pueden tener abierta ant"gua'asededatos mientras usted la compacta. 2i ant"gua'asededatos no est
cerrada o no se encuentra disponible para su uso exclusio, se producir un error.
&uesto que +ompact/atabase crea una copia de la base de datos, deber disponer de espacio suficiente en
disco para la base de datos original " la duplicada. La operacin de compactacin fracasar si no 'a"
suficiente espacio disponible en disco. La base de datos duplicada nue#a'asededatos no tiene por qu estar
en el mismo disco que ant"gua'asededatos$ *espus de compactar una base de datos, puede eliminar el
arc'io ant"gua'asededatos " cambiar el nombre del arc'io compactado nue#a'asededatos por el
nombre del arc'io original.
$l mtodo +ompact/atabase copia todos los datos " alores de permisos de seguridad de la base de datos
especificada en ant"gua'asededatos a la base de datos especificada en nue#a'asededatos.
2i utiliza el mtodo +ompact/atabase para conertir una base de datos ersin /.% a una ersin :.? o
;.%, solamente las aplicaciones que utilizan las ersiones de Microsoft eet :.? o ;. % pueden abrir la base de
datos conertida.

Precauci&n *ebido a que el mtodo +ompact/atabase no conertir ob!etos Microsoft %ccess, no es
recomendable utilizar +ompact/atabase para conertir una base de datos que contenga dic'os ob!etos.
&ara conertir una base de datos que contenga ob!etos Microsoft %ccess, en el men+ Herramientas, eli!a
Utilidades de la base de datos " despus 'aga clic en +onvertir base de datos.

Ejemlo de m-todo $omactDatabase

$ste e!emplo utiliza el mtodo +ompact/atabase compactar la base de *atos Clientes.mdb.
2ub Compact*atabase8()
*4$ngine.Compact*atabase \Clientes.mdb\, GCompact.mdb\
$nd 2ub

14.9- Delete %2bjeto &ecordset'

%plicable a-
@b!eto 1ecordset.

@b!etos )ecordset- elimina el registro actio de un ob!eto )ecordset de tipo *"naset o >able. &ara
espacios de traba!o @*4C*irect, el tipo de controlador determina si los ob!etos )ecordset se pueden
actualizar ", por tanto, admiten el mtodo /elete.

0inta8is
reordset/elete

La sintaxis del mtodo /elete utiliza los siguientes argumentos.
PROF. JUAN MANSILLA NEYRA K;
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Argumentos /escripci&n
reordset 3na ariable de ob!eto que identifica un ob!eto )ecordset de tipo *"naset o >able abierto,
que contiene el registro que desea eliminar.

$omentarios

&uede utilizar el mtodo /elete para eliminar un registro actio de un ob!eto )ecordset
)ecordsets
3n ob!eto )ecordset debe contener un registro actio antes de que utilice el mtodo /elete9 en caso
contrario se produce un error en tiempo de e!ecucin.
$n ob!etos )ecordset, /elete elimina el registro actio " lo 'ace inaccesible. %unque no pueda
modificarlo o utilizarlo, el registro eliminado permanecer actio. 2in embargo, una ez que se desplace a
otro registro no podr oler a conertir en actio el registro eliminado. Las referencias subsiguientes a un
registro eliminado en un )ecordset no son lidas " producen un error.
2i la tabla base es la tabla principal en una relacin de eliminacin de cascada, al eliminar el registro actio
tambin se eliminarn uno o ms registros de una tabla externa.
2ota &ara agregar, modificar o eliminar un registro, debe tener un ndice +nico en el registro en el origen
de datos de base. 2i no es as, se producir un error \&ermiso denegado\ en la llamada al mtodo Add2eQ,
/elete o 5dit en un espacio de traba!o Microsoft eet.

Ejemlo de m-todo Delete

2e necesitan borrar todos los registros de la tabla %genda (dentro de la base de datos Clientes) cu"os cdigos
de Clientes sean menores a /,.

&riate 2ub cmd%gregarJClic6 ()
*im 7sp as [or62pace i*imensiono las ariables
*im 4ase as *atabase
*im %genda as 1ecordset

2et 7sp E *b$ngine.[or6spaces(,) i2eteo el espacio de traba!o
2et 4ase E 7sp.@pen*atabase (GClientes.mdbH) i%bro la base de *atos
2et %genda E 4asede*atos.@pen1ecordset(G2$L$C> . =1@M %genda [C$1$ %genda.Codigo M /,H)
i%bro el 1ecordset

5f <ot %genda.$@= isi encontr alg+n registro
%genda.Moe=irst ime mueo al primer registro
*o ['ile <ot %genda.$@= imientras no sea fin de arc'io
%genda.*elete ielimino el registro
%genda.Moe<ext ime desplazo al siguiente registro
Loop
$nd 5f

%genda.Close iCierro el 1ecordset
4ase.Close iCierro la base de *atos
[sp.Close iCierro el espacio de traba!o

$nd 2ub


14.:- Edit %2bjeto &ecordset'

%plicable a -
@b!eto 1ecordset.
PROF. JUAN MANSILLA NEYRA K0
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

Copia el registro actio de un ob!eto )ecordset al b+fer de copia para su posterior edicin.

0inta8is
reordset5dit

$l reordset representa el nombre de un ob!eto )ecordset abierto " que se puede actualizar que contiene el
registro que desea modificar.

$omentarios

3na ez que utiliza el mtodo 5dit, los cambios realizados en los campos del registro actio son copiados
al b+fer de copia. *espus de realizar los cambios deseados en el registro, utilice el mtodo Update para
guardar los cambios.
$l registro actio permanece actio despus de utilizar el mtodo 5dit.

Precauci&n 2i modifica un registro " a continuacin pasa a otro registro sin utilizar antes Update, los
cambios se perdern sin preio aiso. %dems, si cierra reordset o finaliza el procedimiento que declara el
)ecordset o el ob!eto /atabase o +onnection, el registro modificado se descarta sin preio aiso.

La utilizacin de 5dit produce un error ba!o las siguientes condiciones-
<o 'a" ning+n registro actio.
$l ob!eto /atabase o )ecordset se abri de slo lectura.
<o 'a" campos que se pueden actualizar en el registro.
$l ob!eto /atabase o )ecordset se abri para uso en modo exclusio por otro usuario (espacio de
traba!o Microsoft eet).

2ota &ara agregar, modificar o eliminar un registro, debe tener un ndice +nico en el registro en el origen
de datos de base. 2i no es as, se producir un error \&ermiso denegado\ en la llamada al mtodo Add2eQ,
/elete o 5dit en un espacio de traba!o Microsoft eet, o se producir un error \%rgumento no lido\ el la
llamada al mtodo Update en un espacio de traba!o @*4C*irect.

Ejemlo de m-todo Edit

2e necesita asignar la zona / a todos los registros de la tabla %genda (dentro de la base de datos Clientes)
cu"os cdigos de Clientes sean menores a :,.

&riate 2ub cmd%gregarJClic6 ()
*im 7sp as [or62pace i*imensiono las ariables
*im 4ase as *atabase
*im %genda as 1ecordset

2et 7sp E *b$ngine.[or6spaces(,) i2eteo el espacio de traba!o
2et 4ase E 7sp.@pen*atabase (GClientes.mdbH) i%bro la base de *atos
2et %genda E 4asede*atos.@pen1ecordset(G2$L$C> . =1@M %genda [C$1$ %genda.Codigo M :,H)
i%bro el 1ecordset

5f <ot %genda.$@= isi encontr alg+n registro
%genda.Moe=irst ime mueo al primer registro
*o ['ile <ot %genda.$@= imientras no sea fin de arc'io
%genda.$dit i$dito el registro
%gendajdona E /
%genda.3pdate
%genda.Moe<ext ime desplazo al siguiente registro
PROF. JUAN MANSILLA NEYRA K?
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
Loop
$nd 5f
%genda.Close iCierro el 1ecordset
4ase.Close iCierro la base de *atos
[sp.Close iCierro el espacio de traba!o

$nd 2ub

14.1<- Eide

%plicable a-
@b!eto =orm.

@culta un ob!eto $orm pero no lo descarga.

0inta8is
o'4eto.Hide

$l marcador de posicin o'4eto representa una expresin de ob!eto cu"o resultado es un ob!eto de la lista
%plicable a. 2i se omite o'4eto, se supone que o'4eto es el formulario que tenga el enfoque.

$omentarios

Cuando se oculta un formulario, se quita de la pantalla " su propiedad :isible queda establecida a $alse.
Los controles de un formulario oculto no son accesibles para el usuario, pero estn disponibles para la
aplicacin de Pisual 4asic en e!ecucin " para otros procesos que se estn comunicando con la aplicacin
mediante **$, as como para los eentos del control 1imer.
Cuando se oculta un formulario, el usuario no puede interactuar con la aplicacin 'asta que el cdigo del
procedimiento de eento que 'a proocado la ocultacin del formulario 'a"a terminado de e!ecutarse.
2i el formulario no est cargado cuando se llama al mtodo Hide, el mtodo Hide carga el formulario pero
no lo presenta.

5jemplo del mKtodo Hide

$ste e!emplo utiliza el mtodo Hide para ocultar un formulario. &ara probar este e!emplo, pegue el cdigo
en la seccin *eclaraciones de un formulario, " despus presione =? " 'aga clic en el formulario.
&riate 2ub =ormJClic6 ()
*im Msg a *eclara ariable.
Cide a @culta el formulario.
Msg E \Caga clic en %ceptar para que uela a aparecer el formulario.\
Msg4ox Msg a Muestra el mensa!e.
2'o7 a Muestra de nueo el formulario.
$nd 2ub

14.11-,o"eFirst - ,o"e7ast - ,o"e?eBt ) ,o"ePre"ious %2bjeto
&ecordset'

%plicable a-
@b!eto 1ecordset.

Mueen al registro primero, +ltimo, siguiente o anterior de un ob!eto )ecordset " lo conierten en el
registro actio.

PROF. JUAN MANSILLA NEYRA KD
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
DintaBis
reordsetk%ove$irst l %oveLast Xdb)unAsLncY l %ove2e8t l %ovePreviousm

$l marcador de posicin reordset es una ariable de ob!eto que representa un ob!eto )ecordset abierto.

$omentarios

Precauci&n 2i modifica el registro actio, utilice el mtodo Update para guardar los cambios antes de ir a
otro registro. 2i a a otro registro sin actualizar, los cambios se perdern sin preio aiso.

%l abrir un )ecordset, el primer registro est actio " la propiedad =4$ es $alse. 2i el )ecordset no
contiene registros la propiedad =4$ es 1rue " no 'abr ning+n registro actio.
2i el primer o el +ltimo registro est actio cuando utiliza %ove$irst o %oveLast, el registro actio no
cambia.
2i utiliza %ovePrevious cuando el primer registro est actio, la propiedad =4$ es 1rue " no 'abr
ning+n registro actio. 2i uele a utilizar %ovePrevious se producir un error " =4$ ser 1rue.
2i utiliza %ove2e8t cuando el +ltimo registro est actio, la propiedad 54$ es 1rue " no 'abr ning+n
registro actio. 2i uele a utilizar %ove2e8t se producir un error " 54$ ser 1rue.
2i reordset 'ace referencia a un ob!eto )ecordset de tipo >able (slo espacios de traba!o Microsoft eet),
el moimiento seguir el ndice actio. &uede establecer el ndice actio utilizando la propiedad Inde8. 2i
no establece el ndice actio, el orden de los registros deueltos no estar definido.
Importante &uede utilizar el mtodo %oveLast para llenar completamente un ob!eto )ecordset de tipo
*"naset o 2naps'ot para obtener el n+mero de registros actios en el )ecordset. 2in embargo, si utiliza
%oveLast puede 'acer ms lentas sus aplicaciones. 2lo debe utilizar %oveLast para obtener un total de
registros si es absolutamente necesario obtener un total exacto en un )ecordset abierto recientemente.

<o puede utilizar los mtodos %ove$irst, %oveLast " %ovePrevious en un )ecordset de tipo =or7ardB
onl".
&ara moer la posicin del registro actio en un ob!eto )ecordset un n+mero especfico de registros 'acia
adelante o 'acia atrs, utilice el mtodo %ove.

5jemplo de mKtodos %ove$irst< %oveLast< %ove2e8t< %ovePrevious

&ara un e!emplo de uso de los mtodos %ove$irst " %ove2e8t, mire el e!emplo del mtodo 5dit.
2e necesita asignar la zona / a todos los registros de la tabla %genda (dentro de la base de datos Clientes)
cu"os cdigos de Clientes sean menores a :,. $s necesario recorrer la tabla de atrs 'acia adelante.

&riate 2ub cmd%gregarJClic6 ()
*im 7sp as [or62pace i*imensiono las ariables
*im 4ase as *atabase
*im %genda as 1ecordset

2et 7sp E *b$ngine.[or6spaces(,) i2eteo el espacio de traba!o
2et 4ase E 7sp.@pen*atabase (GClientes.mdbH) i%bro la base de *atos
2et %genda E 4asede*atos.@pen1ecordset(G2$L$C> . =1@M %genda [C$1$ %genda.Codigo M :,H)
i%bro el 1ecordset

5f <ot %genda.$@= isi encontr alg+n registro
%genda.MoeLast ime mueo al +ltimo registro
*o ['ile <ot %genda.4@= imientras no sea principio de arc'io
%genda.$dit i$dito el registro
%gendajdona E /
%genda.3pdate
%genda.Moe&reious ime desplazo al registro anterior
Loop
PROF. JUAN MANSILLA NEYRA KK
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
$nd 5f
%genda.Close iCierro el 1ecordset
4ase.Close iCierro la base de *atos
[sp.Close iCierro el espacio de traba!o

$nd 2ub

14.12- 2enDatabase %2bjeto Cor4sace'

%plicable a-
@b!eto *4$ngine, @b!eto [or6space.

%bre una base de datos especificada en un ob!eto CorOspace " deuele una referencia al ob!eto
/atabase que la representa.

0inta8is
0et 'asededatos E espa"odetra'a4o4pen/atabase ;nom're'asededatos< op"ones< sloletura<
one%"n>

La sintaxis del mtodo 4pen/atabase consta de las siguientes partes.
Argumento /escripci&n
'asededatos 3na ariable de ob!eto que representa el ob!eto /atabase que a a abrir.
espa"odetra'a4o @pcional. 3na ariable de ob!eto que representa el ob!eto CorOspace existente
que
contendr la base de datos. 2i no inclu"e un alor para espa"odetra'a4o,
4pen/atabase utiliza el espacio de traba!o predeterminado.
Nom're'asededatos 3n tipo de datos 0tring que es el nombre de un arc'io de base de datos Microsoft eet
existente o el nombre del origen de datos (*2<) de un origen de datos @*4C
existente.
op"ones @pcional. 3n tipo de datos :ariant que establece arias opciones para la base de
datos, como se especifica en Palores.
sloletura @pcional. 3n alor de tipo de datos :ariant (subtipo =oolean) que es 1rue si desea
abrir la base de datos con acceso de slo lectura o $alse (predeterminado) si desea
abrir la base de datos con acceso de lectura#escritura.
one%"n @pcional. 3n tipo de datos :ariant (subtipo 0tring) que especifica informacin
ariada sobre la conexin, inclu"endo las contraseas.

:alores
&ara los espacios de traba!o Microsoft eet, puede utilizar los siguientes alores para el argumento op"ones-
:alor /escripci&n
1rue %bre la base de datos en modo exclusio.
$alse (&redeterminado) %bre la base de datos en modo compartido.

+omentarios

Cuando abre una base de datos, automticamente se agrega a la coleccin /atabases.
$stas son algunas consideraciones que debe aplicar cuando utilice nom're'asededatos-
2i 'ace referencia a una base de datos que "a est abierta para acceso en modo exclusio por otro
usuario, se produce un error.
2i no 'ace referencia a una base de datos existente, se produce un error.

$l argumento one%"n se expresa en dos partes- el tipo de base de datos, seguido por punto " coma (9) "
los argumentos opcionales. &rimero debe proporcionar el tipo de base de datos, como \@*4C9\ o \=ox&ro
:.?9\. % continuacin, os argumentos opcionales sin un orden concreto, separados por punto " coma. 3no
de los parmetros puede ser la contrasea (si 'a" alguna asignada). &or e!emplo-
PROF. JUAN MANSILLA NEYRA KL
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
\=ox&ro :.?9 p7dEmicontrasea\

&ara cerrar una base de datos ", de este modo, quitar el ob!eto /atabase de la coleccin /atabases, utilice
el mtodo +lose en el ob!eto .

5jemplo mKtodo 4pen/atabase

$s lido el mismo e!emplo utilizado para los mtodos %ove$irst< %oveLast< %ove2e8t< %ovePrevious

14.13- 2en&ecordset %2bjeto Database'

%plicable a-
@b!eto *atabase.

Crea un nueo ob!eto )ecordset " lo aade a la coleccin )ecordsets.

0inta8is
0et #ar"a'le E o'4eto4pen)ecordset ;or"gen< t"po< op"ones< 'lo.uearmod"*"a"ones>

La sintaxis del mtodo 4pen)ecordset consta de las siguientes partes.
Argumento /escripci&n
#ar"a'le 3na ariable de ob!eto que representa el ob!eto )ecordset que desea
abrir.
O'4eto 3na ariable de ob!eto que representa un ob!eto existente desde el que desea crear
el ob!eto )ecordset nueo.
Or"gen 3n tipo de datos 0tring que especifica el origen de los registros para el nueo
)ecordset. $l origen puede ser un nombre de tabla, un nombre de consulta o una
instruccin 2UL que deuele registros.
T"po @pcional. 3na constante que indica el tipo de ob!eto )ecordset a abrir, como se
especifica en Palores.
Op"ones @pcional. 3na combinacin de constantes que especifican las caractersticas del
ob!eto )ecordset nueo, como se especifica en Palores.
Blo.uearmod"*"a"ones @pcional. 3na constante que determina el bloqueo para el ob!eto )ecordset,
como se especifica en Palores.

:alores
&uede utilizar una de las siguientes constantes para el argumento t"po.
+onstante /escripci&n
db4pen1able %bre un ob!eto )ecordset de tipo >able (slo espacios de traba!o Microsoft eet).
db4pen/Lnaset %bre un ob!eto )ecordset de tipo *"naset (actualizable).
/b4pen0napshot %bre un ob!eto )ecordset de tipo 2naps'ot (slo lectura)
/b4pen$orQard4nlL %bre un ob!eto )ecordset de tipo =or7ardBonl".

2ota 2i abre un ob!eto )ecordset en un espacio de traba!o Microsoft eet " no especifica un tipo, el
mtodo 4pen)ecordset crea una ob!eto )ecordset de tipo >able, si es posible. 2i especifica una tabla
inculada o una consulta, el mtodo 4pen)ecordset crea un ob!eto )ecordset.de tipo *"naset.

&uede utilizar una combinacin de las siguientes constantes para el argumento op"ones-

#/bAppend4nlL: &ermite al usuario anexar registros nueos al ob!eto )ecordset, pero impide la
modificacin o eliminacin de registros existentes (slo ob!etos )ecordset de tipo *"naset de Microsoft eet).
#/b0ee+hanges: Aenera un error en tiempo de e!ecucin si otro usuario est cambiando los datos que usted
est modificando.(2lo en ob!etos )ecordset de tipo 2naps'ot de Microsoft eet). $sto es +til en aplicaciones
donde arios usuarios tiene acceso de lectura#escritura simultneo a los mismos datos.
#/b/enLCrite: &reiene que otros usuarios puedan modificar o agregar registros (slo ob!etos )ecordset
de Microsoft eet).
PROF. JUAN MANSILLA NEYRA KQ
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
#/b/enL)ead: &reiene que otros usuarios puedan leer datos de una tabla (slo ob!etos )ecordset de tipo
>able de Microsoft eet).
#/b$orQard4nlL: Crea un ob!eto )ecordset de tipo =or7ardBonl" (slo ob!etos )ecordset de tipo
2naps'ot de Microsoft eet). 2e proporciona slo para compatibilidad con ersiones anteriores " debe utilizar
la constante db4pen$orQard4nlL en el argumento t"po en ez de utilizar esta opcin.
#/b)ead4nlL - &reiene que otros usuarios puedan 'acer cambios el ob!eto )ecordset (slo Microsoft eet).
La constante db)ead4nlL en el argumento 'lo.uearmod"*"a"ones reemplaza esta opcin, la cual se
proporciona para compatibilidad con ersiones anteriores.
#dbInconsistent - &ermite actualizaciones inconsistentes (slo ob!etos )ecordset de tipo *"naset de
Microsoft eet).
#/b+onsistent - &ermite slo actualizaciones consistentes (slo ob!etos )ecordset de tipo *"naset de
Microsoft eet).

2ota Las constantes db+onsistent " dbInconsistent se exclu"en mutuamente " el uso de ambos produce
un error. &roporcionar un argumento 'lo.uearmod"*"a"ones cuando el argumento op"ones utiliza la
constante db)ead4nlL tambin produce un error.

&uede utilizar las siguientes constantes para el argumento 'lo.uearmod"*"a"ones-.
#db)ead4nlL: &reiene que los usuarios 'agan cambios al )ecordset. &uede utilizar db)ead4nlL en el
argumento op"ones o en el argumento 'lo.uearmod"*"a"ones, pero nunca en ambos. 2i lo utiliza en ambos
argumentos, se produce un error en tiempo de e!ecucin.
#/bPessimistic: 3tiliza el bloqueo pesimista para determinar cmo se pueden 'acer cambios al ob!eto
)ecordset en un entorno multiusuario. La pgina que contiene el registro que est modificando est
bloqueada mientras utiliza el mtodo 5dit (predeterminado en espacios de traba!o Microsoft eet).
#/b4ptimistic: 3tiliza el bloqueo optimista para determinar cmo se pueden 'acer cambios al ob!eto
)ecordset en un entorno multiusuario. La pgina que contiene el registro que est modificando est
bloqueada mientras se e!ecuta el mtodo Update.

+omentarios

$n un espacio de traba!o Microsoft eet, si o'4eto 'ace referencia a un ob!eto JuerL/e9 o )ecordset de
tipo *"naset o 2naps'ot o si or"gen 'ace referencia a una instruccin 2UL o un 1able/e9 que representa
una tabla ad!unta, no podr utilizar db4pen1able para el argumento t"po " si lo 'ace, se producir un error
interceptable.
2i o'4eto 'ace referencia a un )ecordset de tipo *"naset o 2naps'ot, el )ecordset nueo es del mismo
tipo o'4eto. 2i o'4eto 'ace referencia a un ob!eto )ecordset de tipo >able, el tipo del ob!eto nueo es un
ob!eto )ecordset de tipo *"naset. <o puede abrir ob!etos )ecordset nueos desde ob!etos )ecordset de
tipo =or7ardBonl".

3tilice la constante db0ee+hanges en espacio de traba!o Microsoft eet si desea captar los cambios
realizados mientras dos o ms usuarios estn modificando o eliminando el mismo registro. &or e!emplo, si
dos usuarios empiezan a modificar el mismo registro, el primer usuario que e!ecute el mtodo Update
consigue realizar la operacin. Cuando el segundo usuario e!ecute el mtodo Update ocurre un error de
tiempo de e!ecucin. *el mismo modo, si el segundo usuario intenta utilizar el mtodo /elete para
eliminar un registro " el primer usuario 'a cambiado "a el mismo, se produce un error de tiempo de
e!ecucin.
$n general, si al usuario se le presenta este error mientras est actualizando, su cdigo debe actualizar el
contenido de los campos " leer los alores recientemente modificados. 2i se produce el error durante el
proceso de eliminacin, el cdigo puede mostrar al usuario los nueos datos del registro !unto con un
mensa!e que indica que se 'an modificado recientemente los datos. $n este momento, el cdigo puede
solicitar una confirmacin de que el usuario desea a+n eliminar el registro.
%l cerrar un )ecordset utilizando el mtodo +lose, se eliminar automticamente de la coleccin
)ecordsets.

Ejemlo del m-todo 2en&ecordset
PROF. JUAN MANSILLA NEYRA L,
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

$s lido el mismo e!emplo utilizado para los mtodos %ove$irst< %oveLast< %ove2e8t< %ovePrevious

14.14- &emo"e(tem

%plicable a-
Control Combo4ox, Control List4ox.

Uuita un elemento de un control List=o8 o +ombo=o8. <o acepta argumentos con nombre.

0inta8is
o'4eto)emoveItem 5nd"e

La sintaxis del mtodo )emoveItem consta de las siguientes partes-
Parte /escripci&n
o'4eto 1equerido. 3na expresin de ob!eto cu"o resultado es un ob!eto de la lista %plicable a.
5nd"e 1equerido. 3n entero que especifica la posicin dentro del ob!eto del elemento o la fila que se a a
quitar. &ara los primeros elementos de los controles List=o8 o +ombo=o8, 5nd"e es ,.

+omentarios

Los controles List=o8 o +ombo=o8 que estn enlazados a un control /ata no aceptan el mtodo
)emoveItem.

5jemplo del mKtodo )emoveItem

$ste e!emplo utiliza el mtodo )emoveItem para quitar entradas de un cuadro de lista. &ara probar este
e!emplo, pegue el cdigo en la seccin *eclaraciones de un formulario que contenga un control List=o8
llamado List/, " despus presione =? " 'aga clic en el formulario.

&riate 2ub =ormJClic6 ()
*im $ntr", 5, Msg a *eclara ariables.
Msg E \Caga clic en %ceptar para agregar /,, elementos al cuadro de lista.\
Msg4ox Msg a Muestra el mensa!e.
=or 5 E / >o /,, a Cuenta de / a /,,.
$ntr" E \$ntrada \ f 5 a Crea la entrada.
List/.%dd5tem $ntr" a %grega la entrada.
<ext 5
Msg E \Caga clic en %ceptar para quitar una de cada dos entradas.\
Msg4ox Msg a Muestra el mensa!e.
=or 5 E / >o ?, a *etermina cmo quitar
List/.1emoe5tem 5 a uno de cada dos
<ext 5 a elementos.
Msg E \Caga clic en %ceptar para quitar todos los elementos del cuadro de lista.\
Msg4ox Msg a Muestra el mensa!e.
List/.Clear a 4orra el cuadro de lista.
$nd 2ub


14.1/- &eairDatabase %2bjeto D1Engine'

%plicable a-
@b!eto *4$ngine.

5ntenta reparar una base de datos daada que accede a base de datos Microsoft eet.
PROF. JUAN MANSILLA NEYRA L/
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

0inta8is

/=5ngine)epair/atabase nom're'asededatos

$l argumento nom're'asededatos representa un tipo de datos 0tring que es la ruta de acceso " el nombre
de un arc'io de base de datos del motor Microsoft eet existente. 2i se omite la ruta, slo se buscar en el
directorio actio.

+omentarios

*ebe cerrar la base de datos especificada por nom're'asededatos antes de repararla. $n un entorno
multiusuario, los dems usuarios no podrn tener abierto nom're'asededatos mientras usted la repara. 2i
no est cerrado nom're'asededatos o no est disponible para uso exclusio, se producir un error.
$ste mtodo intenta reparar una base de datos marcada como posiblemente daada por una operacin de
escritura incompleta. $sto puede ocurrir si una aplicacin que utiliza el motor de base de datos Microsoft
eet termina inesperadamente debido a un corte en el suministro elctrico o un problema de 'ard7are. La
base de datos no se marcar como posiblemente daada si utiliza el mtodo +lose o si sale de la aplicacin
de una manera normal.
$l mtodo )epair/atabase tambin intenta alidar todas las tablas del sistema " todos los ndices. 2e
descartan los datos que no se puedan reparar. 2i no se puede reparar la base de datos, se produce un error
interceptable.
Cuando intente abrir o compactar una base de datos daada, normalmente se producir un error
interceptable. $n algunas situaciones, sin embargo, puede que no se detecte una base de datos daada " no
se produzca ning+n error. $s coneniente ofrecer a los usuarios un mtodo de e!ecutar el mtodo
)epair/atabase en su aplicacin, si la base de datos se comporta de manera impredecible.
%lgunos tipos de bases de datos se pueden daar si un usuario termina una aplicacin sin cerrar los ob!etos
/atabase o )ecordset " el motor de base de datos Microsoft eet, Microsoft [indo7s no tienen la
oportunidad de aciar las memorias de cac' de datos. &ara eitar que se daen las bases de datos,
establezca procedimientos para cerrar las aplicaciones " apagar los sistemas que aseguren que todas las
pginas de la memoria cac' estn guardadas en la base de datos. $n algunos casos, puede que sean
necesarias fuentes de alimentacin ininterrumpida para eitar prdidas de datos por las fluctuaciones del
suministro elctrico.
2ota *espus de reparar una base de datos, tambin es coneniente compactar la misma utilizando el
mtodo +ompact/atabase para defragmentar el arc'io " recuperar espacio en disco.

Ejemlo del m-todo &eairDatabase

$ste e!emplo intenta reparar la base de datos llamada <eptuno.mdb.
2ub 1epair*atabase8()

*im err4ucle %s $rror
5f Msg4ox(\S*esea reparar la base de datos <eptunoT\, b]es<o) E b]es >'en
*4$ngine.1epair*atabase \<eptuno.mdb\
Msg4ox \n=in del procedimiento repararj\
$nd 5f

$nd 2ub

14.10- DetFocus

%plicable a
Control C'ec64ox, Control Combo4ox, Control Command4utton, @b!eto =orm Controles C2croll4ar "
P2croll4ar, Control List4oxControl @ption4utton, Control &icture4ox, Control >ext4ox.
PROF. JUAN MANSILLA NEYRA L:
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC

Muee el en9o@ue al control o formulario especificado.

DintaBis
o'4eto0et$ocus

$l marcador de posicin o'4eto representa una e8presi&n de objeto que da como resultado un ob!eto de la
lista %plicable a.

+omentarios

$l ob!eto debe ser un ob!eto $orm o un control que pueda recibir el enfoque. *espus de inocar el
mtodo 0et$ocus, cualquier entrada del usuario se dirige al formulario o al control especificado.
$l enfoque slo se puede moer a un formulario o un control isible. Como un formulario " los controles
de un formulario no son isibles 'asta que el eento Load del formulario 'a terminado, no puede usar en
su propio eento Load el mtodo 0et$ocus para moer el enfoque al formulario que se est cargando a
menos que use primero el mtodo 0hoQ para mostrar el formulario antes de que el procedimiento de
eento =ormJLoad 'a"a terminado.
>ampoco puede moer el enfoque a un formulario o un control si su propiedad 5nabled es $alse. 2i la
propiedad 5nabled se 'a establecido a $alse en tiempo de diseo, primero debe establecerla a 1rue antes
de poder recibir el enfoque mediante el mtodo 0et$ocus.

Ejemlo del m-todo DetFocus

%l 'acer clic6 en un botn de comando, setea el foco a la ca!a de texto txtCodigo

&riate 2ub cmd/JClic6()
>xtCodigo.2etfocus
$nd 2ub

14.18- D*o@

%plicable a-
@b!eto =orm.

0inta8is
o'4eto0hoQ est"lo8 *ormular"o(prop"etar"o

La sintaxis del mtodo 0hoQ consta de las siguientes partes-
Parte /escripci&n
o'4eto @pcional. 3na expresin de ob!eto cu"o resultado es un ob!eto de la lista
%plicable
a. 2i se omite o'4eto, se supone que o'4eto es el formulario asociado con el
mdulo de formulario actio$
est"lo @pcional. 3n entero que determina si el formulario es modal o no modal. 2i
est"lo
es ,, el formulario es no modal9 si est"lo es /, el formulario es modal.
*ormular"o(prop"etar"o @pcional. 3na expresin de cadena que especifica el componente que \posee\ el
formulario que se muestra. &ara los formularios estndar de Pisual 4asic, utilice la
palabra clae %e.

+omentarios

PROF. JUAN MANSILLA NEYRA L;
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
2i el formulario especificado no est cargado cuando se inoca el mtodo 0hoQ, Pisual 4asic lo carga
automticamente.
Cuando 0hoQ presenta un formulario no modal, contin+a con la e!ecucin del cdigo que 'a"a a
continuacin. Cuando 0hoQ presenta un formulario modal, el cdigo que 'a" a continuacin no se e!ecuta
'asta que el formulario se oculta o se descarga.
Cuando 0hoQ presenta un formulario modal, no 'a" entradas (de teclado o del mouse) excepto sobre los
ob!etos del formulario modal. $l programa debe ocultar o descargar los formularios modales (normalmente
como respuesta a alguna accin del usuario) antes de que pueda producirse la entrada en otro formulario.
%unque los dems formularios de la aplicacin estn des'abilitados cuando se presenta un formulario
modal, los de las dems aplicaciones no lo estn.
$l formulario inicial de una aplicacin se muestra automticamente despus de inocar su eento Load.

5jemplo del mKtodo 0hoQ

$ste e!emplo utiliza el mtodo 0hoQ para mostrar un formulario oculto. &ara probar este e!emplo, pegue el
cdigo en la seccin *eclaraciones de un formulario " despus presione =? " 'aga clic en el formulario.
&riate 2ub =ormJClic6 ()
*im Msg a *eclara ariable.
Cide a @culta el formulario.
Msg E \Caga clic en %ceptar para que uela a aparecer el formulario.\
Msg4ox Msg a Muestra el mensa!e.
2'o7 a Muestra de nueo el formulario.
$nd 2ub

14.19- ;date %2bjeto recordset'

%plicable a
@b!eto 1ecordset.

Auarda el contenido del b+fer de copia en un ob!eto )ecordset de tipo *"naset o >able especificado.

DintaBis
reordsetUpdate ;t"po, o'l"gar >

La sintaxis del mtodo Update tiene las siguientes partes.
Parte /escripci&n
Reordset 3na ariable de ob!eto que representa un ob!eto )ecordset abierto que se puede actualizar.
T"po @pcional. 3na constante que indica el tipo de actualizacin, como se especifica en Palores
(slo espacios de traba!o @*4C*irect).
O'l"gar @pcional. 3n alor de tipo =oolean que indica si se pueden o no obligar los cambios en la base
de datos, sin tener en cuenta si los datos base se 'an cambiado por otro usuario desde la
llamada al mtodo Add2eQ, /elete o 5dit. 2i es 1rue, los cambios se fuerzan " los cambios
'ec'os por otros usuarios se sobrescriben. 2i es $alse (predeterminado), los cambios 'ec'os
por otros usuarios mientras la actualizacin est pendiente proocarn que falle la
actualizacin para aquellos cambios conflictios.

$omentarios

3tilice Update para guardar el registro actio " los cambios que 'a"a efectuado en l.

Precauci&n Los cambios realizados en el registro actio se perdern si-
3tiliza el mtodo 5dit o Add2eQ " a continuacin, pasa a otro registro sin actualizarlo preiamente
mediante Update.
PROF. JUAN MANSILLA NEYRA L0
INSTITUTO LIBERTADOR
DISEO ESTRUCTURADO DE ALGORITMOS Y VISUAL BASIC
3tiliza 5dit o Add2eQ ", a continuacin, uele a usar 5dit o Add2eQ sin utilizar preiamente
Update.
Cierra el con!unto de registros a los que 'ace referencia reordset sin utilizar primero Update.
Cancela la operacin 5dit utilizando el mtodo +ancelUpdate.


&ara modificar un registro, utilice el mtodo $dit para copiar el contenido del registro actio al b+fer de
copia. 2i no utiliza $dit en primer lugar, se producir un error cuando utilice 3pdate o intente cambiar el
alor de un campo.
$n un espacio de traba!o Microsoft eet, cuando el ob!eto 1ecordset de la propiedad Loc6$dits establecida
como >rue (bloqueo pesimista) en un entorno multiusuario, el registro permanecer bloqueado desde el
momento en que se utiliza $dit 'asta que se e!ecuta el mtodo 3pdate o se cancele la edicin. 2i la
configuracin de la propiedad Loc6$dits es =alse (bloqueo optimista), el registro se bloquea " se compara
con el registro preiamente modificado !usto antes de se actualizado en la base de datos. 2i 'a cambiado el
registro desde que utiliz el mtodo $dit, la operacin 3pdate falla.. &ara que la operacin 3pdate
contin+e con los cambios, utilice de nueo el mtodo 3pdate. &ara oler al registro, tal como lo cambi el
otro usuario, actualice el registro actio usando los mtodos Moe ,.
<ota &ara agregar, modificar o eliminar un registro, debe 'aber un ndice +nico en el registro del origen
de datos base. 2e obtiene no lo 'a", se producir un error \&ermiso denegado\ en la llamada al mtodo
%dd<e7, *elete o $dit en un espacio de traba!o Microsoft eet, se producir un error \%rgumento no
lido\ en la llamada al mtodo 3pdate en un espacio de traba!o @*4C*irect.





PROF. JUAN MANSILLA NEYRA L?

You might also like