Professional Documents
Culture Documents
1- Introduccin:--------------------------------------------------------------------------------10
1.1- Programacin orientada a objetos.-----------------------------------------------------------10
1.1.1- Objetos.-----------------------------------------------------------------------------------------------------10
1.1.2- Propiedades.------------------------------------------------------------------------------------------------10
1.1.3- Mtodos.----------------------------------------------------------------------------------------------------10
1.1.4- Eventos.-----------------------------------------------------------------------------------------------------10
1.1.5- Explicacin integrada y ejemplo de Objetos, Propiedades, Mtodos y Eventos.----------------10
1.1.6- Diferencias entre la programacin procedural y la programacin bajo Windows.---------------11
1.3- Proyecto.------------------------------------------------------------------------------------------- 12
1.3.1- Definicin de Proyecto en Visual Basic.---------------------------------------------------------------12
1.3.2-Componentes de un Proyecto.----------------------------------------------------------------------------13
1.4-Entorno de Desarrollo.--------------------------------------------------------------------------- 14
1.4.1-Barra de men. y 1.4.2-Barra de Herramientas.-------------------------------------------------------14
1.4.3-Ventana de Proyecto.--------------------------------------------------------------------------------------14
1.4.4- Formulario.-------------------------------------------------------------------------------------------------14
1.4.5- Ventana de Propiedades.----------------------------------------------------------------------------------15
1.4.6- Caja de Herramientas.------------------------------------------------------------------------------------15
2-Programacin:---------------------------------------------------------------------------------16
2.1- Fundamentos de la Programacin.-----------------------------------------------------------16
2.1.1- Como funciona una aplicacin controlada por eventos.---------------------------------------------16
2.2- Variables.------------------------------------------------------------------------------------------- 16
2.2.1- Alcance de las variables.---------------------------------------------------------------------------------16
Procedimientos generales---------------------------------------------------------------------------- 20
Procedimientos de evento---------------------------------------------------------------------------- 20
2.3.3- Funciones.--------------------------------------------------------------------------------------------------21
2.3.4- Llamadas a Procedimientos.-----------------------------------------------------------------------------22
2.3.5- Llamadas a Funciones.-----------------------------------------------------------------------------------22
2.3.6- Pasaje de argumentos a los procedimientos y funciones.--------------------------------------------22
3- Controles-------------------------------------------------------------------------------------27
3.1- Controles bsicos--------------------------------------------------------------------------------- 27
3.1.1- APLICACION DE EJEMPLO--------------------------------------------------------------------------32
4 -Formularios.-----------------------------------------------------------------------------------34
4.1- Estableciendo las Propiedades ms importantes de los formularios.------------------34
4.2- Eventos y Mtodos de los formularios.-------------------------------------------------------34
4.3- Establecer el formulario de arranque de la aplicacin.-----------------------------------35
8- Shape (figura).--------------------------------------------------------------------------------39
9- Line (lnea).------------------------------------------------------------------------------------39
Mtodo Refresh---------------------------------------------------------------------------------------- 40
Mtodo ZOrder---------------------------------------------------------------------------------------- 40
Pgina 3 de 159
13.4- KeyPress------------------------------------------------------------------------------------------ 47
13.5- Load----------------------------------------------------------------------------------------------- 48
13.6- LostFocus----------------------------------------------------------------------------------------- 48
Ejemplo del evento LostFocus----------------------------------------------------------------------- 49
13.7- MouseMove-------------------------------------------------------------------------------------- 49
13.8- Timer---------------------------------------------------------------------------------------------- 50
13.9- Unload-------------------------------------------------------------------------------------------- 52
13.10- QueryUnload----------------------------------------------------------------------------------- 53
13.11- Validate------------------------------------------------------------------------------------------ 54
Ejemplo de la propiedad DataChanged y del evento Validate--------------------------------55
15.9-DataChanged------------------------------------------------------------------------------------- 81
Sintaxis--------------------------------------------------------------------------------------------------- 82
Tipo de datos------------------------------------------------------------------------------------------- 82
15.10-DataField---------------------------------------------------------------------------------------- 82
15.11-DataSource-------------------------------------------------------------------------------------- 83
Comentarios-------------------------------------------------------------------------------------------- 83
15.12-Enabled------------------------------------------------------------------------------------------ 83
Ejemplo de la propiedad Enabled------------------------------------------------------------------ 84
15.13-FontBold, FontItalic, FontStrikethru, FontUnderline.---------------------------------84
15.14-FontName---------------------------------------------------------------------------------------- 85
15.15-FontSize------------------------------------------------------------------------------------------ 86
Pgina 5 de 159
Comentarios-------------------------------------------------------------------------------------------- 87
15.16-Heigth, Width----------------------------------------------------------------------------------- 87
15.17-Icon----------------------------------------------------------------------------------------------- 88
Sintaxis--------------------------------------------------------------------------------------------------- 88
15.18-Index (Matriz de Controles)----------------------------------------------------------------- 89
Ejemplo de la propiedad Index--------------------------------------------------------------------- 89
15.19-ListCount---------------------------------------------------------------------------------------- 90
15.20-ListIndex----------------------------------------------------------------------------------------- 91
Sintaxis--------------------------------------------------------------------------------------------------- 91
Comentarios-------------------------------------------------------------------------------------------- 91
15.21-Locked-------------------------------------------------------------------------------------------- 92
15.22-MousePointer----------------------------------------------------------------------------------- 92
Sintaxis--------------------------------------------------------------------------------------------------- 92
Comentarios-------------------------------------------------------------------------------------------- 93
15.23-Multiline----------------------------------------------------------------------------------------- 93
Sintaxis--------------------------------------------------------------------------------------------------- 94
Comentarios-------------------------------------------------------------------------------------------- 94
15.24-Name---------------------------------------------------------------------------------------------- 94
Sintaxis--------------------------------------------------------------------------------------------------- 94
15.25-NewIndex---------------------------------------------------------------------------------------- 95
Comentarios-------------------------------------------------------------------------------------------- 95
15.26-ItemData----------------------------------------------------------------------------------------- 95
Ejemplo de la propiedad ItemData-----------------------------------------------------------------96
15.27-PassWordChar--------------------------------------------------------------------------------- 96
Ejemplo de la propiedad PasswordChar----------------------------------------------------------97
15.28-Picture-------------------------------------------------------------------------------------------- 97
Comentarios-------------------------------------------------------------------------------------------- 97
15.29-Recordset---------------------------------------------------------------------------------------- 98
15.30-RecordsetType---------------------------------------------------------------------------------- 99
15.31-RecordSource---------------------------------------------------------------------------------- 101
Sintaxis------------------------------------------------------------------------------------------------- 101
String--------------------------------------------------------------------------------------------------------------102
15.32-Shape-------------------------------------------------------------------------------------------- 102
Valores-------------------------------------------------------------------------------------------------- 102
15.33-SQL (Objeto QueryDef)--------------------------------------------------------------------- 103
Pgina 6 de 159
Comentarios------------------------------------------------------------------------------------------- 103
15.34-Stretch------------------------------------------------------------------------------------------ 104
Comentarios------------------------------------------------------------------------------------------- 104
15.35-Style--------------------------------------------------------------------------------------------- 105
15.36-TabIndex--------------------------------------------------------------------------------------- 107
Ejemplo de la propiedad TabIndex---------------------------------------------------------------107
15.37-TabStop----------------------------------------------------------------------------------------- 108
15.38-Tag----------------------------------------------------------------------------------------------- 108
15.39-Text---------------------------------------------------------------------------------------------- 109
Comentarios------------------------------------------------------------------------------------------- 109
15.40-ToolTipText------------------------------------------------------------------------------------ 110
15.41-Value-------------------------------------------------------------------------------------------- 110
15.42-Visible------------------------------------------------------------------------------------------- 111
15.43-WindowState---------------------------------------------------------------------------------- 112
16- Operadores.---------------------------------------------------------------------------------113
16.1-Operadores Aritmticos.---------------------------------------------------------------------- 113
Operador ^: Se utiliza para elevar un nmero a la potencia del exponente.-------------114
16.2-Operadores de Comparacin.----------------------------------------------------------------114
Sintaxis------------------------------------------------------------------------------------------------- 114
16.3-Operadores de Concatenacin.--------------------------------------------------------------115
16.4-Operadores Lgicos.--------------------------------------------------------------------------- 115
17.3-DateDiff------------------------------------------------------------------------------------------ 121
17.4-DoEvents----------------------------------------------------------------------------------------- 123
17.5-Format------------------------------------------------------------------------------------------- 123
17.6-Iif-------------------------------------------------------------------------------------------------- 125
17.7-InputBox----------------------------------------------------------------------------------------- 125
17.8-Int, Fix-------------------------------------------------------------------------------------------- 126
Sintaxis------------------------------------------------------------------------------------------------- 126
Comentarios------------------------------------------------------------------------------------------- 127
17.9-IsDate--------------------------------------------------------------------------------------------- 127
Sintaxis------------------------------------------------------------------------------------------------- 127
Pgina 7 de 159
Comentarios------------------------------------------------------------------------------------------- 127
17.10-IsNull-------------------------------------------------------------------------------------------- 127
Sintaxis------------------------------------------------------------------------------------------------- 127
Comentarios------------------------------------------------------------------------------------------- 127
17.11-Left---------------------------------------------------------------------------------------------- 128
Ejemplo de la funcin Left------------------------------------------------------------------------- 128
17.12-Len---------------------------------------------------------------------------------------------- 129
Sintaxis------------------------------------------------------------------------------------------------- 129
Comentarios------------------------------------------------------------------------------------------- 129
17.13-LoadPicture------------------------------------------------------------------------------------ 129
17.14-Ltrim, Rtrim y Trim------------------------------------------------------------------------- 130
Sintaxis------------------------------------------------------------------------------------------------- 130
17.15-Mid---------------------------------------------------------------------------------------------- 131
Comentarios------------------------------------------------------------------------------------------- 131
Ejemplo de la funcin Mid------------------------------------------------------------------------- 131
17.16-MsgBox----------------------------------------------------------------------------------------- 131
17.17-Right-------------------------------------------------------------------------------------------- 133
17.18-Str----------------------------------------------------------------------------------------------- 134
Comentarios------------------------------------------------------------------------------------------- 134
17.19-Ucase-------------------------------------------------------------------------------------------- 134
17.20-Val----------------------------------------------------------------------------------------------- 135
Comentarios------------------------------------------------------------------------------------------- 135
Ejemplo de la instruccin MkDir----------------------------------------------------------------- 136
Sintaxis------------------------------------------------------------------------------------------------- 137
Option Explicit------------------------------------------------------------------------------------------------138
Pgina 8 de 159
Qu es Visual Basic ?
Qu es Visual Basic? La palabra "Visual" hace referencia al mtodo que se utiliza para crear la interfaz
grfica de usuario (GUI). En lugar de escribir numerosas lneas de cdigo para describir la apariencia y la
ubicacin de los elementos de la interfaz, simplemente puede arrastrar y colocar objetos prefabricados en su
lugar dentro de la pantalla. Si ha utilizado alguna vez un programa de dibujo como Paint, ya tiene la mayor
parte de las habilidades necesarias para crear una interfaz de usuario efectiva.
La palabra "Basic" hace referencia al lenguaje BASIC (Beginners All-Purpose Symbolic Instruction Code), un
lenguaje utilizado por ms programadores que ningn otro lenguaje en la historia de la informtica o
computacin. Visual Basic ha evolucionado a partir del lenguaje BASIC original y ahora contiene centenares
de instrucciones, funciones y palabras clave, muchas de las cuales estn directamente relacionadas con la
interfaz grfica de Windows. Los principiantes pueden crear aplicaciones tiles con slo aprender unas
pocas palabras clave, pero, al mismo tiempo, la eficacia del lenguaje permite a los profesionales acometer
cualquier objetivo que pueda alcanzarse mediante cualquier otro lenguaje de programacin de Windows.
El lenguaje de programacin Visual Basic no es exclusivo de Visual Basic. La Edicin para aplicaciones del
sistema de programacin de Visual Basic, incluida en Microsoft Excel, Microsoft Access y muchas otras
aplicaciones Windows, utilizan el mismo lenguaje. El sistema de programacin de Visual Basic, Scripting
Edition (VBScript) para programar en Internet es un subconjunto del lenguaje Visual Basic. La inversin
realizada en el aprendizaje de Visual Basic le ayudar 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 Internet, Visual Basic
dispone de las herramientas que necesita.
Las caractersticas de acceso a datos le permiten crear bases de datos y aplicaciones cliente para los
formatos de las bases de datos ms conocidas, incluidos Microsoft SQL Server y otras bases de datos
de mbito empresarial.
Las tecnologas ActiveX le permiten utilizar la funcionalidad proporcionada por otras aplicaciones, como
el procesador de textos Microsoft Word, la hoja de clculo Microsoft Excel y otras aplicaciones Windows.
Puede incluso automatizar las aplicaciones y los objetos creados con la Edicin profesional o la Edicin
empresarial de Visual Basic.
Las capacidades de Internet facilitan el acceso a documentos y aplicaciones a travs de Internet desde
su propia aplicacin.
La aplicacin terminada es un autntico archivo .exe que utiliza una biblioteca de vnculos dinmicos
(DLL) de tiempo de ejecucin que puede distribuir con toda libertad.
Pgina 9 de 159
1- Introduccin:
1.1- Programacin orientada a objetos.
1.1.1- Objetos.
Un objeto es una entidad que tiene asociado un conjunto de mtodos, eventos y propiedades. Ejemplo : Una caja de texto
(TextBox) en la cual podemos escribir cualquier lnea es un objeto.
1.1.2- Propiedades.
Son las caractersticas que posee un objeto o un formulario (ventana de Windows).
Ejemplo : Color de fondo del formulario, Fuente de texto de un TextBox, .
1.1.3- Mtodos.
Los mtodos son funciones internas de un determinado objeto que permite realizar funciones sobre l o sobre otro objeto.
Ejemplo : Deseamos poner en la ventana Windows de nuestra aplicacin "Hola mundo", por tanto pondremos el mtodo ->
Ventana.Print "Hola mundo"
1.1.4- Eventos.
Los eventos son acciones que se pueden realizar en cualquier control: click, doble click, movimiento del ratn. A estos
eventos se les puede asociar cdigo para que se ejecute al producir el evento.
Un programa Visual Basic es un POE (Programa orientado a eventos).
Todo lo que hacemos en un programa Visual Basic est generado por medio de eventos
Pgina 10 de 159
Si se pudiera programar un globo, el cdigo de Visual Basic podra ser como el siguiente. Para establecer las
propiedades del globo:
Globo.Color = Rojo
Globo.Dimetro = 10
Globo.Inflado = True
Observe la sintaxis del cdigo: el objeto (Globo) seguido de la propiedad (Color) seguida de la asignacin del valor
(Rojo). Podra modificar el color del globo desde el cdigo si repitiera esta instruccin y sustituyera el valor por otro
diferente. Las propiedades tambin se pueden establecer en la ventana Propiedades mientras se est diseando la
aplicacin.
Los mtodos de un globo se invocan de esta forma:
Globo.Inflar
Globo.Desinflar
Globo.Elevar 5
La sintaxis es similar a la sintaxis de las propiedades: el objeto (un nombre) seguido de un mtodo (un verbo). En el
tercer ejemplo hay un elemento adicional, llamado argumento, que indica la distancia que se eleva. Algunos mtodos
tendrn uno o ms argumentos para describir ms a fondo la accin que se va a ejecutar.
El globo puede responder a un evento como se muestra a continuacin:
Sub Globo_Pinchazo()
Globo.Desinflar
Globo.HacerRuido "Bang"
Globo.Inflado = False
Globo.Dimetro = 1
End Sub
En este caso, el cdigo describe el comportamiento del globo cuando se produce un evento Pinchazo: invoca el mtodo
Desinflar y luego invoca el mtodo HacerRuido con un argumento Bang (el tipo de ruido que se va a hacer). Como el
globo ya no est inflado, la propiedad Inflado tiene el valor False y la propiedad Dimetro adopta un nuevo valor.
Si bien no puede programar un globo, s puede programar un formulario o un control de Visual Basic. Como programador,
tiene el control: decide qu propiedades se deben modificar, qu mtodos se deben invocar o a qu eventos hay que
responder para conseguir la apariencia y el comportamiento deseados
Pgina 11 de 159
1.3- Proyecto.
1.3.1- Definicin de Proyecto en Visual Basic.
Para crear una aplicacin con Visual Basic se trabaja con proyectos. Un proyecto es una coleccin de archivos que se
usan para generar una aplicacin. Este tema describe cmo generar y administrar proyectos.
Al crear una aplicacin probablemente crear nuevos formularios; tambin puede volver a usar o modificar formularios
creados en proyectos anteriores. Esto tambin se aplica a otros mdulos o archivos que pueda incluir en su proyecto. Los
controles ActiveX y los objetos de otras aplicaciones tambin se pueden compartir entre proyectos.
Despus de ensamblar todos los componentes de un proyecto y escribir el cdigo, puede compilar el proyecto para crear
un archivo ejecutable.
Pgina 12 de 159
1.3.2-Componentes de un Proyecto.
Cuando desarrolla un aplicacin, trabaja con un archivo de proyecto para administrar todos los diferentes archivos que
crea. Un proyecto consta de lo siguiente:
Un archivo de proyecto que realiza el seguimiento de todos los componentes (.vbp)
El archivo de proyecto es simplemente una lista de todos los archivos y objetos asociados con el proyecto, as como
informacin sobre las opciones de entorno establecidas. Esta informacin se actualiza cada vez que guarda el proyecto.
Todos los archivos y objetos tambin se pueden compartir con otros proyectos.
Cuando ha completado todos los archivos del proyecto puede convertir el proyecto en un archivo ejecutable (.exe): en el
men Archivo, elija el comando Generar proyecto.exe.
1.3.2.1-Formularios.
Un formulario es una ventana. La ventana Windows de cualquier aplicacin.
Podemos abrir tantas ventanas como queramos en nuestro proyecto, pero el nombre de las ventanas debe ser distinto. Por
defecto como ya hemos visto, la ventana que se abre en Visual Basic tiene el nombre de Form1. Ya veremos como cambiar
estas "Propiedades" ms adelante.
Los mdulos de formularios (extensin de nombre de archivo .frm) pueden contener descripciones en forma de texto del
formulario y sus controles, incluyendo los valores de sus propiedades. Tambin pueden contener declaraciones a nivel de
formulario de constantes, variables y procedimientos externos, procedimientos de evento y procedimientos generales.
1.3.2.2-Mdulos de clase.
Los mdulos de clase (extensin de nombre de archivo .cls) son similares a los mdulos de formulario, excepto en que
no tiene interfaz de usuario visible. Puede usar mdulos de clase para crear sus propios objetos, incluyendo cdigo para
mtodos y propiedades.
1.3.2.3-Mdulos estndar.
Un mdulo es un archivo Visual Basic donde escribimos parte del cdigo de nuestro programa, y digo parte, porque puede
haber cdigo en el formulario tambin.
Las rutinas incluidas dentro de los mdulos pueden ser ejecutadas desde los formularios de la aplicacin.
Los mdulos estndar (extensin de nombre de archivo .bas) pueden contener declaraciones pblicas o a nivel de
mdulo de tipos, constantes, variables, procedimientos externos y procedimientos pblicos.
1.3.2.4-Archivos de Recursos.
Los archivos de recursos (extensin de nombre de archivo .res) contienen mapas de bits, cadenas de texto y otros datos
que puede modificar sin volver a modificar el cdigo. Por ejemplo, si piensa traducir su aplicacin a un idioma
extranjero, puede guardar todas las cadenas de texto de la interfaz de usuario y los mapas de bits en un archivo de
recursos, y simplemente traducir el archivo de recursos en vez de la aplicacin completa. Un proyecto slo puede
contener un archivo de recursos.
Pgina 13 de 159
1.3.2.5-Controles Active X.
Los controles ActiveX (extensin de nombre de archivo .ocx) son controles opcionales que se pueden agregar al cuadro
de herramientas y se pueden usar en formularios. Cuando instala Visual Basic, los archivos que contienen los controles
incluidos en Visual Basic se copian a un directorio comn (el subdirectorio \Windows\System en Windows 95). Existen
controles ActiveX adicionales disponibles en diversas fuentes. Tambin puede crear sus propios controles mediante las
ediciones Profesional y Empresarial de Visual Basic.
1.3.2.6-Controles estndar.
Los controles estndar los proporciona Visual Basic. Los controles estndar, como CommandButton (botn de comando)
o Frame (marco), siempre estn incluidos en el cuadro de herramientas, al contrario de lo que ocurre con los controles
ActiveX y los objetos insertables, que se pueden agregar y quitar del cuadro de herramientas.
1.4-Entorno de Desarrollo.
1.4.1-Barra de men. y 1.4.2-Barra de Herramientas.
En la ventana del programa, podemos hacer todas las funciones normales que nos permite el compilador Visual Basic.
1.4.3-Ventana de Proyecto.
1.4.4- Formulario.
Pgina 14 de 159
Pulsando la tecla "F4", aparecer la ventana de propiedades . Esta ventana es fundamental, ya que contiene todas las
propiedades de cada objeto que insertaremos en nuestro formulario, as como las propiedades del formulario en s.
Pgina 15 de 159
2-Programacin:
2.1- Fundamentos de la Programacin.
Cada mdulo de formulario contiene procedimientos de evento (secciones de cdigo donde se colocan las instrucciones
que se ejecutarn como respuesta a eventos especficos). Los formularios pueden contener controles. Por cada control de
un formulario, existe el correspondiente conjunto de procedimientos de evento en el mdulo de formulario. Adems de
procedimientos de evento, los mdulos de formulario pueden contener procedimientos generales que se ejecutan como
respuesta a una llamada desde cualquier procedimiento de evento.
El cdigo que no est relacionado con un control o un formulario especfico se puede colocar en un tipo diferente de
mdulo, un mdulo estndar (.bas). Se deben colocar en un mdulo estndar los procedimientos que se puedan utilizar
como respuesta a eventos de diversos objetos, en lugar de duplicar el cdigo en los procedimientos de evento de cada
objeto.
2.2- Variables.
2.2.1- Alcance de las variables.
El alcance de una variable define qu partes del cdigo son conscientes de su existencia. Cuando declara una variable en
un procedimiento, slo el cdigo de dicho procedimiento puede tener acceso o modificar el valor de la variable; tiene un
alcance que es local al procedimiento. A veces, sin embargo, se necesita utilizar una variable con un alcance ms
general, como aquella cuyo valor est disponible para todos los procedimientos del mismo mdulo o incluso para todos
Pgina 16 de 159
Alcance
Privado
Pblico
Nivel de procedimiento
No es aplicable. No puede
declarar variables pblicas
dentro de un procedimiento.
Las variables estn disponibles
para todos los mdulos.
Nivel de mdulo
o bien
Static intPermanent As Integer
Los valores de variables locales declaradas con Static existen mientras se ejecuta la aplicacin, mientras que las
variables declaradas con Dim slo existen mientras se ejecuta el procedimiento.
Las variables locales resultan una eleccin apropiada para clculos temporales. Por ejemplo, puede crear una docena de
procedimientos distintos que contengan una variable llamada intTemp. Como cada intTemp se ha declarado como una
variable local, cada procedimiento slo reconoce su propia versin de intTemp. Cualquier procedimiento puede alterar el
valor de su intTemp local sin que ello afecte a las variables intTemp de los dems procedimientos.
2.2.2- Declaracin
La forma de declarar las variables es la siguiente:
Pgina 17 de 159
COMENTARIO
Slo admite 2 valores TRUE o FALSE
admite valores entre 0 y 255
admite valores entre -32768 y 32767
admite valores entre -2.147.483.648 y
2.147.483.647
admite valores decimales con precisin
simple
admite valores decimales de doble
precisin
vlido para valores de tipo moneda
cadenas de caracteres
fechas, permite operar con ellas
2.2.4- Matrices
Para declarar matrices debemos colocar entre parntesis el nmero de elementos de los que constar a
continuacin del nombre de la variable:
Dim medidas(9) as integer
De esta forma tenemos una matriz de 10 elementos identificados del 0 al 9
Podemos obligar a que el primer elemento de una matriz tenga el ndice con valor 1.
Esto lo haremos colocando la instruccin option base 1 en la seccin declarations de nuestro formulario.
Tambin podemos indicar los lmites inferior y superior de la matriz:
Dim medidas(5 to 14) as integer
es una matriz de 10 elementos cuyos indices van del 5 al 14
Las matrices multidimensionales se declaran de la siguiente forma:
Dim medidas(1 to 10, 1 to 10) as integer
Pgina 18 de 159
CONSIDERACIONES
Al trabajar con Visual Basic es preferible que activemos la opcin que nos obligue a declarar todas las variables
que utilicemos, de esta forma nos ahorraremos errores inesperados como el de trabajar con una variable ya utilizada
anteriormente producindose un conflicto dficil de resolver. En cambio si intentamos declarar 2 variables con el mismo
nombre, en el mismo formulario o procedimiento se produce un error en tiempo de edicin avisndonos de la situacin.
Para activar esta opcin debemos ir a la opcin del men Herramientas y Opciones para que aparezca un cuadro
de dialogo como este.
La opcin que nos interesa activar es Requerir declaracin de variables que en este caso ya lo est. De esta forma
en cada seccin declarations de cada formulario aparecer la sentencia option explicit
Otra opcin que es interesante activar, es la de Guardar los cambios en la ficha entorno, la cual te guarda una
copia del cdigo antes de ejecutarlo por si acaso luego no podemos, se bloquea la aplicacin etc... no suele pasar pero
nunca se sabe. De esta forma te aseguras que lo ltimo que hayas ejecutado lo tienes guardado en el disco.
La opcin Comprobacin automtica de sintaxis normalmente viene activada por defecto, no conviene
desactivarla puesto que te avisa de errores de sintaxis conforme vas escribiendo el cdigo: Si te falta el then despus del if,
el do antes del while etc...
2.3.2- Procedimientos.
Un procedimiento Sub es un bloque de cdigo que se ejecuta como respuesta a un evento. Al dividir el cdigo de un
mdulo en procedimientos Sub, es ms sencillo encontrar o modificar el cdigo de la aplicacin.
La sintaxis de un procedimiento Sub es la siguiente:
[Private|Public][Static]Sub nombre_procedimiento (argumentos)
instrucciones
End Sub
Cada vez que se llama al procedimiento se ejecutan las instrucciones que hay entre Sub y End Sub. Se pueden colocar
los procedimientos Sub en mdulos estndar, mdulos de clase y mdulos de formulario. De forma predeterminada, los
procedimientos Sub 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 variables; se declaran valores que se pasan desde el
procedimiento que hace la llamada.
Resulta muy til en Visual Basic distinguir entre dos tipos de procedimientos Sub, procedimientos generales y
procedimientos de evento.
Procedimientos generales
Un procedimiento general indica a la aplicacin cmo realizar una tarea especfica. Una vez que se define un
procedimiento general, se le debe llamar especficamente desde la aplicacin. Por el contrario, un procedimiento de
evento permanece inactivo hasta que se le llama para responder a eventos provocados por el usuario o desencadenados
por el sistema.
Por qu crear procedimientos generales? Una razn es que muchos procedimientos de evento distintos pueden necesitar
que se lleven a cabo las mismas acciones. Es una buena estrategia de programacin colocar las instrucciones comunes en
un procedimiento distinto (un procedimiento general) y hacer que los procedimientos de evento lo llamen. Esto elimina la
necesidad de duplicar cdigo y tambin hace que la aplicacin sea ms fcil de mantener.
Procedimientos de evento
Cuando un objeto en Visual Basic reconoce que se ha producido un evento, llama automticamente al procedimiento de
evento utilizando el nombre correspondiente al evento. Como el nombre establece una asociacin entre el objeto y el
cdigo, se dice que los procedimientos de evento estn adjuntos a formularios y controles.
Un procedimiento de evento de un control combina el nombre real del control (especificado en la propiedad Name),
un carcter de subrayado (_) y el nombre del evento. Por ejemplo, si desea que un botn de comando llamado
cmdPlay llame a un procedimiento de evento cuando se haga clic en l, utilice el procedimiento cmdPlay_Click.
Pgina 20 de 159
Un procedimiento de evento de un formulario combina la palabra "Form", un carcter de subrayado y el nombre del
evento. Si desea que un formulario llame a un procedimiento de evento cuando se hace clic en l, utilice el
procedimiento Form_Click. (Como los controles, los formularios tienen nombres nicos, pero no se utilizan en los
nombres de los procedimientos de evento.)
2.3.3- Funciones.
La sintaxis de un procedimiento Function es la siguiente:
[Private|Public][Static]Function nombre_procedimiento (argumentos) [As tipo]
instrucciones
End Function
Al igual que un procedimiento Sub, un procedimiento Function es un procedimiento diferente que puede tomar
argumentos, realizar una serie de instrucciones y cambiar el valor de los argumentos. A diferencia de los procedimientos
Sub, los procedimientos Function pueden devolver un valor al procedimiento que realiza la llamada. Hay tres
diferencias entre los procedimientos Sub y Function:
Generalmente, se llama a una funcin incluyendo el nombre y los argumentos del procedimiento en la parte derecha
de una instruccin o expresin mayor (valor_retorno = funcin()).
Los procedimientos Function tienen tipos de datos, al igual que las variables. Esto determina el tipo del valor de
retorno. (En ausencia de la clusula As, el tipo es el tipo predeterminado Variant.)
Se devuelve un valor asignndole al propio nombre_procedimiento. Cuando el procedimiento Function devuelve un
valor, se puede convertir en parte de una expresin mayor.
Por ejemplo, podra escribir una funcin que calculara el tercer lado, o hipotenusa, de un tringulo rectngulo, dados los
valores de los otros dos lados:
Function Hipotenusa (A As Integer, B As Integer) As String
Hipotenusa = Sqr(A ^ 2 + B ^ 2)
End Function
Se llama a un procedimiento Function de la misma forma que a las funciones incorporadas en Visual Basic:
Pgina 21 de 159
Do While condicin
instrucciones
Loop
Cuando Visual Basic ejecuta este bucle Do, primero evala condicin. Si condicin es False (cero), se salta todas las
instrucciones. Si es True (distinto de cero), Visual Basic ejecuta las instrucciones, vuelve a la instruccin Do While y
prueba la condicin de nuevo.
Por tanto, el bucle se puede ejecutar cualquier nmero de veces, siempre y cuando condicin sea distinta de cero o True.
Nunca se ejecutan las instrucciones si condicin es False inicialmente. Por ejemplo, este procedimiento cuenta las veces
que se repite una cadena de destino dentro de otra cadena repitiendo el bucle tantas veces como se encuentre la cadena
de destino:
Function ContarCadenas (cadenalarga, destino)
Dim posicin, contador
posicin = 1
Do While InStr(posicin, cadenalarga, destino)
posicin = InStr(posicin, cadenalarga, destino) +1
contador = contador + 1
Loop
ContarCadenas = contador
End Function
Si la cadena de destino no est en la otra cadena, InStr devuelve 0 y no se ejecuta el bucle.
Otra variante de la instruccin Do...Loop ejecuta las instrucciones primero y prueba condicin despus de cada
ejecucin. Esta variacin garantiza al menos una ejecucin de instrucciones:
Do
instrucciones
Loop While condicin
Hace el bucle cero o ms veces
Do Until condicin
instrucciones
Loop
If...Then...Else
Utilice un bloque If...Then...Else para definir varios bloques de instrucciones, uno de los cuales se ejecutar:
If condicin1 Then
[bloque de instrucciones 1]
[Else
[bloque de instrucciones n]]
End If
Visual Basic evala primero condicin1. Si es False, Visual Basic ejecuta el bloque de instrucciones correspondientes a
Else y despus ejecuta el cdigo que sigue a End If.
Por ejemplo, la aplicacin podra realizar distintas acciones dependiendo del control en que se haya hecho clic de una
matriz de controles de men:
Private Sub mnuCut_Click (Index As Integer)
If Index = 0 Then
CopyActiveControl
ClearActiveControl
Else
PasteActiveControl
End If
End Sub
Cada lista_expresiones es una lista de uno o ms valores. Si hay ms de un valor en una lista, se separan los valores con
comas. Cada bloque de instrucciones contiene cero o ms instrucciones. Si ms de un Case coincide con la expresin de
prueba, slo se ejecutar el bloque de instrucciones asociado con la primera coincidencia. Visual Basic ejecuta las
instrucciones de la clusula (opcional) Case Else si ningn valor de la lista de expresiones coincide con la expresin de
prueba.
Por ejemplo, suponga que agrega otro comando al men Edicin en el ejemplo If...Then...Else. Podra agregar otra
clusula ElseIf o podra escribir la funcin con Select Case:
Private Sub mnuCut_Click (Index As Integer)
Select Case Index
Case 0
CopyActiveControl
ClearActiveControl
Case 1
CopyActiveControl
Case 2
ClearActiveControl
Case 3
PasteActiveControl
Case Else
frmFind.Show
End Select
End Sub
Observe que la estructura Select Case evala una expresin cada vez al principio de la estructura.
3- Controles
3.1- Controles bsicos
Vamos a ver los siguientes puntos:
Control TextBox.
Control Label
Control CommandButton
Control OptionButton
Antes de empezar a conocer los controles bsicos veamos cuales son sus caractersticas generales:
Propiedades:Todos los controles disponen de una serie de propiedades las cuales podemos
cambiar al incluirlos en nuestras aplicaciones. Ejemplos de propiedades son el color, el tipo
de letra, el nombre, el texto, etc...
que podemos invocar desde nuestras aplicaciones para que se realice alguna operacin
sobre el control. Por ejemplo el control ListView ( la lista de archivos que aparece en el
explorador de windows) dispone del mtodo order que te ordena los datos aparecidos en la
lista.
Eventos: Son acciones que pueden ser motivadas por el propio usuario o por mismo
sistema operativo. Ejemplos pueden ser el movimiento del ratn o hacer click sobre su
botn. En Visual Basic digamos que se utiliza la programacin orientada a eventos, lo cual
es una de las diferencias ms importantes respecto a la programacin lineal de MS DOS.
No necesitamos detectar cuando se ha producido un evento determinado, Windows lo
detecta automticamente. Los eventos ya estan definidos, son bastantes y cada control
cuenta con los suyos propios, aunque son muy parecidos. Lo nico que tendremos que
hacer es asociar el cdigo necesario al evento que necesitemos tratar.
TextBox
Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras aplicaciones.
No hace falta que indiquemos las coordenadas de la situacin del formulario en pantalla, simplemente tendremos que
marcar sobre el control de la caja de herramientas y dibujarlo con el tamao que queramos en nuestro formulario.
PROPIEDADES
Las propiedades de las que dispone el control son las siguientes:(para obtener el cuadro de propiedades, seleccionar el
control y pulsar F4 o pulsar con el boton derecho para obtener el men contextual y marcar Propierties)
Text: Aqu indicamos el texto que aparecer en el control. Podemos asignarle cualquier texto
en tiempo de diseo o ejecucin. Tambin podemos tomar el texto que haya introducido el
usuario para tratarlo durante la ejecucin.
Name: Esta propiedad la tienen todos los controles, el nombre que viene por defecto en este
caso Text1 y es el nombre con el que se conocer el control cuando lo utilicemos en el cdigo.
En un mismo formulario no puede haber 2 controles con el mismo nombre. Conviene poner un
nombre que represente la funcin que tiene el control en la aplicacin para que el cdigo quede
ms claro. Ejemplo, si en el textbox vamos a introducir la direccin de una persona podemos
asignarle a esta propiedad el valor Direccin.
MultiLine: Permite que introduzcamos varias lineas de texto en el control en lugar de slo una.
Alignment: Alineacin que tendr el texto dentro del control: izquierda, centro o derecha. Para
que funcione la propiedad MultiLine debe estar con el valor true.
Locked: Si esta con valor true bloquea el control, es decir, el usuario no puede introducir ni
modificar el texto que contenga. Nos puede servir para utilizar el control como salida de datos
sin que el usuario pueda modificarlos por error.
Otras propiedades que son comunes a la mayoria de los controles:
EVENTOS
Los eventos son acciones que se pueden realizar en cualquier control: click, doble click, movimiento del ratn. A estos
eventos se les puede asociar cdigo para que se ejecute al producir el evento.
EJEMPLO
Vamos a probar el uso del control TextBox mediante un pequeo ejemplo 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 (evento mousemove) aparecer en el
formulario el texto que contenga.
Observamos que al situar el control en el formulario aparece por defecto el texto Text1. Para que no aparezca ese texto al
ejecutar la aplicacin, debemos cambiar la propiedad Text pulsando F4 y colocar el texto que queramos o no colocar nada.
Lo que queremos hacer es que cada vez que movamos el raton por el control aparezca su contenido en el formulario.
Entonces lo que habr que hacer abrir la ventana de cdigo, seleccionando el control y pulsando F7, o con el botn derecho
del ratn y la opcin View code del men contextual. Este proceso nos llevar al cuadro de la imagen siguiente.
Pgina 29 de 159
Lo que tendremos que hacer es seleccionar el evento que necesitemos de la seccin Proc, en nuestro caso mousemove y a
continuacin teclear el codigo correspondiente: La instruccin print visualiza un texto en el formulario y si le ponemos
text1.text le decimos que nos muestre la propiedad Text del control Text1 que ese ser el nombre que tendr el control por
defecto si no lo hemos cambiado en la propiedad name.
Al ejecutar esta pequea aplicacin pulsando F5 observaremos como aparece en el formulario lo que hayamos tecleado en
el control cada vez que movemos el raton sobre el Textbox.
Podemos modificar el programa para que responda a cualquier otro evento sin ms que seleccionarlo en la seccin Proc e
introduciendo el codigo que sea necesario.
Label
Este control es tambin uno de los ms utilizados, aunque su utilidad queda restringida a la visualizacin 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, dibujar el control en el formulario con el tamao que queramos y
asignarle un texto en tiempo de diseo o de ejecucin esta vez sin utilizar la propiedad text puesto que no la incorpora, sino
utilizando la propiedad caption.
Este control sirve para mostrar mensajes 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. En el ejemplo anterior donde
apareca un textbox en el formulario, hubiera quedado mejor con un mensaje aclaratorio contenido en un control label:
PROPIEDADES
Pgina 30 de 159
CommandButton
Este control es el tpico botn que aparece en todas las aplicaciones y que al hacer click sobre l nos permite realizar alguna
operacin concreta, normalmente Aceptar o Cancelar. Aunque segn el cdigo que le asociemos podremos realizar las
operaciones que queramos.
En el ejemplo anterior podemos aadir un control de este tipo para salir de la aplicacin sin tener pulsar sobre la equis de la
esquina superior derecha.
Pero slo con introducir un control de este tipo con el texto salir que se introduce a traves de la propiedad caption no basta.
Habr que asociarle un cdigo que nos permita salir de la aplicacin en el evento adecuado. Y el evento por excelencia de
este control es click. As pues accederemos al cdigo del control y la sentencia nos permitir salir de la aplicacin es End,
simplemente tecleamos esa palabra en el evento click y comprobar que realmente finalizaremos nuestra aplicacin al pulsar
sobre dicho botn.
PROPIEDADES
Caption: Aqui pondremos el letrero que queremos que apaezca en el botn: aceptar, cancelar,
salir, etc...
Enabled: Esta es una nueva propiedad, cuando su valor es true el botn funciona normalmente,
cuando su valor es false el boton se encuentra desactivado, no responde a los eventos
producidos sobre l y el texto aparece en un gris claro advirtiendonos de su estado. Podemos
utilizar esta propiedad para activar o desactivar un boton dependiendo del estado de otros
controles. Por ejemplo, en un boton Aceptar, no activarlo hasta que se haya introducido una
cantidad en un control textbox, ya que ese botn nos calcular el IVA de la cantidad.
EVENTOS
OptionButton
Este control nos permite elegir una opcin entre varias de las que se nos plantean. Cada opcin ser un control optionbutton
diferente.
Facilita la introduccin de datos por parte del usuario:
Pgina 31 de 159
De todas las opciones que se nos ofrece, en este caso los 4 colores, slo podremos activar una. Si activamos cualquier otra
opcin, se desactivar automticamente la ltima que tenamos activada.
El marco que est alrededor de los 4 controles optionbutton se trata del control Frame
, es opcional, aunque es
conviente colocarlo siempre que hagamos uso de las opciones. No slo por motivos de presentacin sino porque de esta
manera podremos establecer grupos de controles optionbutton independientes en los que en cada grupo slo pueda haber
una opcion activada a la vez. Tambin, al mover el marco se movern los controles incluidos en l facilitndonos las
modificaciones.
Para que los controles Optionbutton queden englobados dentro de un control Frame, primero tendremos que colocar el
control Frame en el formulario con el tamao adecuado y despues ir colocando los controles Optionbutton dentro del
Frame.
Del control Frame la nica propiedad que nos interesar es caption, que es el texto que aparecer en el encabezado, en el
ejemplo anterior: colores.
PROPIEDADES DE OPTIONBUTTON
Caption: El texto que aparecer al lado del control: Rojo, verde, etc...
Value: Es el valor que tendr el control: True si se encuentra activado y False si no lo est.
Para comprobar que opcion ha activado el usuario comprobaremos el estado de esta propiedad.
Alignment: Alineacin del texto respecto al control: Left Justify: el control aparece a la
izquierda del texto. Es el ejemplo anterior.Right Justify: el control aparece a la derecha del
texto.
Los eventos del control son los mismos que en anteriores controles, aunque no se suele asociar cdigo a los eventos de este
tipo de controles, sino nicamente conocer el valor que tienen: true o false.
Pgina 32 de 159
El botn Limpiar Datos nos va a servir para borrar de una forma rpida los datos introducidos por el usuario y el
resultado preparando los controles para introducir nuevos datos. El cdigo que tendremos que introducir es muy
simple:
Pgina 33 de 159
4 -Formularios.
Los formularios tienen sus propios eventos, propiedades y mtodos con los que se puede controlar su apariencia y
comportamiento.
El primer paso para disear un formulario consiste en establecer sus propiedades. Puede establecer las propiedades de un
formulario en tiempo de diseo en la ventana Propiedades o en tiempo de ejecucin, escribiendo cdigo.
Nota En tiempo de diseo, que es cualquier momento mientras est desarrollando una aplicacin en el entorno de
Visual Basic, se trabaja con formularios y controles, se establecen propiedades y se escribe cdigo para los eventos.
Tiempo de ejecucin es cualquier momento mientras se ejecuta realmente la aplicacin y se interacta con ella como lo
hara un usuario.
Pgina 34 de 159
Pgina 35 de 159
Evento LostFocus
Evento OLECompleteDrag
Evento OLEDragDrop
Evento OLEDragOver
Evento OLEGiveFeedback
Evento OLESetData
Evento OLEStartDrag
Evento Scroll
Mtodos:
Mtodo AddItem
Mtodo Clear (Clipboard, ComboBox, ListBox)
Mtodo Drag
Mtodo Move
Mtodo OLEDrag
Mtodo Refresh
Mtodo RemoveItem
Mtodo SetFocus
Mtodo ShowWhatsThis
Mtodo ZOrder
Propiedades:
Propiedad Appearance
Propiedad ListIndex
Propiedades BackColor y ForeColor
Propiedad Locked
Propiedad Container
Propiedad MouseIcon
Propiedad DataChanged
Propiedad MousePointer
Propiedad DataField
Propiedad Name
Propiedad DragIcon
Propiedad NewIndex
Propiedad DragMode
Propiedad OLEDragMode
Propiedad Enabled
Propiedad OLEDropMode
Propiedad Font
Propiedad Parent
Propiedades FontBold, FontItalic, FontStrikethru y FontUnderline
Propiedad FontName
Propiedades SelLength, SelStart y SelText (Controles ActiveX)
Propiedad FontSize
Propiedad Sorted
Propiedades Height y Width
Propiedad Style
Propiedad HelpContextID
Propiedad TabIndex
Propiedad hWnd
Propiedad TabStop
Pgina 36 de 159
Propiedad Tag
Propiedad Text
Propiedad ToolTipText
Propiedad TopIndex
Propiedad Visible
Propiedad WhatsThisHelpID
Mtodos
Mtodo AddItem
Mtodo Clear (Clipboard, ComboBox, ListBox)
Mtodo Drag
Mtodo Move
Mtodo OLEDrag
Mtodo Refresh
Mtodo RemoveItem
Mtodo SetFocus
Mtodo ShowWhatsThis
Mtodo ZOrder
Propiedades
Propiedad Appearance
Propiedad MousePointer
Propiedades BackColor y ForeColor
Propiedad MultiSelect
Propiedad Columns (ListBox)
Propiedad Name
Propiedad Container
Propiedad NewIndex
Propiedad DataChanged
Propiedad OLEDragMode
Propiedad DataField
Propiedad OLEDropMode
Propiedad DataSource
Propiedad Parent
Propiedad DragIcon
Propiedad SelCount
Propiedad DragMode
Propiedad Selected
Propiedad Enabled
Propiedad Sorted
Propiedad Font
Propiedad Style
Propiedades FontBold, FontItalic, FontStrikethru y FontUnderline
Propiedad FontName
Propiedad TabStop
Propiedad FontSize
Propiedad Tag
Propiedades Height y Width
Propiedad Text
Propiedad HelpContextID
Propiedad ToolTipText
Pgina 37 de 159
Propiedad TopIndex
Propiedad Visible
Propiedad WhatsThisHelpID
Propiedad TabIndex
Propiedad ListCount
Propiedad MouseIcon
7- Timer (cronmetro)
Un control Timer puede ejecutar cdigo a intervalos peridicos produciendo un evento Timer.
El control Timer, invisible para el usuario, resulta til para el procesamiento de fondo.
No puede establecer la propiedad Enabled de un Timer para una seleccin mltiple de controles que no sean controles
Timer.
No existe ningn lmite prctico en cuanto al nmero de controles Timer activos que puede tener en Visual Basic 5.0
ejecutndose en Windows 95 o en Windows NT.
Eventos:
Evento Timer
Propiedades:
Propiedad Enabled
Propiedad Index (Control Array)
Propiedad Interval
Propiedades Left y Top
Propiedad Name
Propiedad Parent
Propiedad Tag
8- Shape (figura).
Shape es un control grfico que se muestra como un rectngulo, un cuadrado, una elipse, un crculo, un rectngulo
redondeado o un cuadrado redondeado.
Utilice controles Shape en tiempo de diseo en lugar de o adems de invocar los mtodos Circle y Line en tiempo de
ejecucin. Puede dibujar un control Shape en un contenedor, pero no puede actuar como contenedor. El efecto de
establecer la propiedad BorderStyle depende del valor de la propiedad BorderWidth. Si BorderWidth no es 1 y
BorderStyle no es 0 6, BorderStyle se establece a 1.
Mtodos:
Mtodo Move
Mtodo Refresh
Mtodo ZOrder
Propiedades:
Propiedades BackColor y ForeColor
Propiedad BackStyle
Propiedad BorderColor
Propiedad BorderStyle
Propiedad BorderWidth
Propiedad Container
Propiedad DrawMode
Propiedad FillColor
Propiedad FillStyle
9- Line (lnea).
Pgina 38 de 159
Mtodo Refresh
Mtodo ZOrder
Propiedades:
Propiedad BorderColor
Propiedad BorderStyle
Propiedad BorderWidth
Propiedad Container
Propiedad DrawMode
Propiedad Index (Control Array)
Propiedad Name
Propiedad Parent
Propiedad Tag
Propiedad Visible
Propiedades X1, Y1, X2 y Y2
Evento OLECompleteDrag
Evento OLEDragDrop
Evento OLEDragOver
Evento OLEGiveFeedback
Evento OLESetData
Evento OLEStartDrag
Mtodo Refresh
Mtodo ShowWhatsThis
Mtodo ZOrder
Propiedades:
Propiedad Appearance
Propiedad BorderStyle
Propiedad Container
Propiedad DataChanged
Propiedad DataField
Propiedad DataSource
Propiedad DragIcon
Propiedad DragMode
Propiedad Enabled
Propiedades Height y Width
Propiedad MouseIcon
Propiedad MousePointer
Propiedad Name
Propiedad OLEDragMode
Propiedad OLEDropMode
Propiedad Parent
Propiedad Picture
Propiedad Stretch
Propiedad Tag
Propiedad ToolTipText
Pgina 39 de 159
Propiedad Visible
Propiedad WhatsThisHelpID
12.1 Funcionamiento
Una vez iniciada la aplicacin, Visual Basic utiliza las propiedades del control Data para abrir la base de datos
seleccionada, crear un objeto Database y crear un objeto Recordset. Las propiedades Database y Recordset del control
Data hacen referencia a los objetos Database y Recordset recin creados, que se pueden manipular de forma
independiente del control Data, con o sin controles enlazados. El control Data se inicializa antes del evento Form_Load
inicial del formulario en el que se encuentra. Si se producen errores durante esta fase de inicializacin, se produce un
error no interceptable.
Cuando Visual Basic utiliza el motor de base de datos Jet para crear un Recordset, no se pueden producir otras
operaciones o eventos de Visual Basic hasta que se termine la operacin. Sin embargo, otras aplicaciones basadas en
Windows pueden seguir en ejecucin mientras se est creando el Recordset. Si el usuario presiona CTRL+INTER mientras
el motor Jet est generando un Recordset, la operacin termina, se produce un error interceptable y la propiedad
Recordset del control Data se establece a Nothing. En tiempo de diseo, la segunda vez que se presiona CTRL+INTER
hace que Visual Basic presente la ventana
Depuracin.
Puede manipular el control Data con el mouse (ratn), desplazndose de un registro a otro, o al principio o al final del
Recordset. Las propiedades EOFAction y BOFAction determinan lo que ocurre cuando el usuario se desplaza al
principio o al final de un Recordset con el mouse. No puede establecer el enfoque en un control Data.
Pgina 40 de 159
12.2 Validacin
El evento Validate y la propiedad DataChanged se utilizan para realizar comprobaciones de ltima hora sobre los
registros que se van a escribir en la base de datos.
Pgina 41 de 159
Evento OLEDragOver
Evento OLEGiveFeedback
Evento OLESetData
Evento OLEStartDrag
Evento Reposition
Evento Resize
Evento Validate
Mtodo ShowWhatsThis
Mtodo UpdateControls
Mtodo UpdateRecord
Mtodo ZOrder
Propiedades
Propiedad Align
Propiedad FontSize
Propiedad Appearance
Propiedades Height, Width
Propiedades BackColor, ForeColor
Propiedad Index (Matriz de controles)
Propiedad BOFAction, EOFAction
Propiedades Left, Top
Propiedad Caption
Propiedad MouseIcon
Propiedad Connect
Propiedad MousePointer
Propiedad Database
Propiedad Name
Propiedad DatabaseName
Propiedad OLEDropMode
Propiedad DefaultCursorType
Propiedad Options
Propiedad DefaultType
Propiedad Parent
Propiedad DragIcon
Propiedad ReadOnly (Aceso de datos)
Propiedad DragMode
Propiedad Recordset
Propiedad EditMode
Propiedad RecordsetType
Propiedad Enabled
Propiedad RecordSource
Propiedad Exclusive
Propiedad Tag
Propiedad Font
Propiedad ToolTipText
Propiedades FontBold, FontItalic, FontStrikethru, FontUnderline
Propiedad FontName
Propiedad WhatsThisHelpID
Propiedad Visible
Pgina 42 de 159
DirListBox: cambia el directorio seleccionado. Ocurre cuando el usuario hace doble clic en un nuevo directorio o
cuando usted cambia la configuracin de la propiedad Path mediante cdigo.
DriveListBox: cambia la unidad seleccionada. Ocurre cuando el usuario selecciona una nueva unidad o cuando
usted cambia la configuracin de la propiedad Drive mediante cdigo.
HScrollBar y VScrollBar (barras de desplazamiento horizontal y vertical): mueven la parte de cuadro de
desplazamiento de la barra de desplazamiento. Ocurre cuando el usuario desplaza o cuando usted cambia la
configuracin de la propiedad Value mediante cdigo.
Label: cambia el contenido del control Label. Ocurre cuando un vnculo DDE actualiza los datos o cuando usted
cambia la configuracin de la propiedad Caption mediante cdigo.
PictureBox: cambia el contenido del control PictureBox. Ocurre cuando un vnculo DDE actualiza los datos o
cuando usted cambia la configuracin de la propiedad Picture mediante cdigo.
TextBox: cambia el contenido del cuadro de texto. Ocurre cuando un vnculo DDE actualiza los datos, cuando un
usuario cambia el texto o cuando usted cambia la configuracin de la propiedad Text mediante cdigo.
Sintaxis
Private Sub objeto_Change([ndice As Integer])
La sintaxis del evento Change consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
ndice Un entero que identifica nicamente a un control si est en una matriz de controles.
Comentarios
El procedimiento del evento Change puede sincronizar o coordinar la presentacin de datos entre controles. Por ejemplo,
puede utilizar un procedimiento de evento Change de una barra de desplazamiento para actualizar la configuracin de la
propiedad Value de la barra de desplazamiento de un control TextBox. O bien, puede utilizar un procedimiento de
evento Change para mostrar datos y frmulas en un rea de trabajo y los resultados en otra rea.
Los procedimientos de evento Change son tambin tiles para actualizar propiedades de controles del sistema de
archivos (DirListBox, DriveListBox y FileListBox). Por ejemplo, puede actualizar la configuracin de la propiedad
Path para que un control DirListBox refleje un cambio en la configuracin de la propiedad Drive de un control
DriveListBox.
Nota Un procedimiento de evento Change puede algunas veces causar un evento en cascada. Esto ocurre cuando el
procedimiento de evento Change del control altera el contenido del control, por ejemplo, estableciendo una propiedad en
el cdigo que determina el valor del control, como el valor de la propiedad Text para un control TextBox. Para impedir
un evento en cascada:
Si es posible, evite escribir un procedimiento de evento Change para un control que altere el contenido de ese
control. Si escribe un procedimiento as, asegrese de establecer un indicador que impida cambios posteriores
mientras el cambio actual est en curso.
Evite crear dos o ms controles cuyos procedimientos de evento Change se vean afectados entre s, por ejemplo, dos
controles TextBox que se actualicen entre s durante sus eventos Change.
Evite utilizar una funcin o una instruccin MsgBox en este evento para los controles HScrollBar y VScrollBar.
13.2-Click
Aplicable a:
Control CheckBox, Control ComboBox, Control CommandButton, Objeto Form, Control Frame, Control Image,
Control Label, Control ListBox, Control Menu, Control OptionButton, Control PictureBox, Control TextBox.
Ocurre cuando el usuario presiona y suelta un botn del mouse (ratn) en un objeto. Tambin puede ocurrir cuando se
cambia el valor de un control.
Para un objeto Form, este evento ocurre cuando el usuario hace clic en un rea en blanco o en un control desactivado.
Para un control, este evento ocurre cuando el usuario:
Hace clic en un control con el botn primario o secundario del mouse. Con un control CheckBox,
CommandButton, ListBox o OptionButton, el evento Click slo ocurre cuando el usuario hace clic con el botn
primario del mouse.
Selecciona un elemento de un control ComboBox o ListBox, ya sea presionando las teclas de direccin o haciendo
clic con el botn del mouse.
Presiona la BARRA ESPACIADORA cuando un control CommandButton, OptionButton o CheckBox tiene el
enfoque.
Presiona ENTRAR cuando un formulario tiene un control CommandButton con su propiedad Default establecida
a True.
Presiona ESC cuando un formulario tiene un botn Cancelar, un control CommandButton con su propiedad
Cancel establecida a True.
Presiona una tecla de acceso para un control. Por ejemplo, si el ttulo de un control CommandButton es "&Ir", al
presionar ALT+I se desencadena este evento.
Tambin puede desencadenar el evento Click en el cdigo si:
Establece la propiedad Value de un control CommandButton a True.
Establece la propiedad Value de un control OptionButton a True.
Cambia el valor de la propiedad Value de un control CheckBox.
Sintaxis
Private Sub Form_Click( )
Private Sub objeto_Click([ndice As Integer])
La sintaxis del evento Click consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
ndice Un entero que identifica nicamente a un control si est en una matriz de controles.
Comentarios
Por lo general se adjunta un procedimiento de evento Click a un control CommandButton, un objeto Menu o un
control PictureBox para realizar comandos y acciones similares a comandos. Para los dems controles aplicables, utilice
este evento para desencadenar acciones como respuesta a un cambio en el control.
Puede utilizar la propiedad Value de un control para comprobar el estado del control desde el cdigo. Hacer clic en un
control genera los eventos MouseDown y MouseUp adems del evento Click. El orden en que ocurren estos tres eventos
vara de un control a otro. Por ejemplo, para los controles ListBox y CommandButton, los eventos ocurren en este
orden: MouseDown, Click, MouseUp. Pero para los controles FileListBox, Label o PictureBox, los eventos ocurren en
este otro orden: MouseDown, MouseUp y Click. Cuando est adjuntando procedimientos para estos eventos
relacionados, asegrese de que sus acciones no entran en conflicto. Si el orden de los eventos es importante en la
aplicacin, pruebe el control para determinar el orden de los mismos.
Pgina 44 de 159
13.3- GotFocus
Aplicable a:
Control CheckBox, Control ComboBox, Control CommandButton, , Objeto Form Controles HScrollBar y VScrollBar,
Control ListBox, Control OptionButton, Control PictureBox, Control TextBox.
Ocurre cuando un objeto recibe el enfoque, ya sea mediante una accin del usuario, como tabular o hacer clic en el
objeto, o cambiando el enfoque en el cdigo mediante el mtodo SetFocus. Un formulario recibe el enfoque slo cuando
todos los controles visibles estn desactivados.
Sintaxis
Private Sub Form_GotFocus(
)
Private Sub objeto_GotFocus([ndice As Integer])
La sintaxis del evento GotFocus consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
ndice Un entero que identifica de manera nica a un control si est en una matriz de controles.
Comentarios
Normalmente, el procedimiento de evento GotFocus se utiliza para especificar las acciones que ocurren cuando un
control o un formulario recibe primero el enfoque. Por ejemplo, si adjunta un procedimiento de evento GotFocus a cada
control de un formulario puede guiar al usuario mostrndole instrucciones breves o mensajes en la barra de estado.
Tambin puede proporcionar avisos visuales activando, desactivando o mostrando otros controles que dependan del
control que tiene el enfoque.
Nota Un objeto puede recibir el enfoque slo si sus propiedades Enabled y Visible estn establecidas a True. Para
personalizar el interfaz de teclado en Visual Basic para mover el enfoque, establezca el orden de tabulacin o
especifique teclas de acceso para controles de un formulario.
Ejemplo del evento GotFocus
Este ejemplo muestra un mensaje en la barra de estado cuando un botn de un grupo OptionButton obtiene el enfoque.
Para probar este ejemplo, pegue el cdigo en la seccin Declaraciones de un formulario que contenga dos controles
OptionButton y un control Label. Establezca la propiedad Name de ambos controles OptionButton a OptionGroup y,
despus, presione F5 y haga clic en los controles OptionButton.
Private Sub Form_Load ()
Label1.AutoSize = True
Pgina 45 de 159
13.4- KeyPress
Aplicable a:
Control CheckBox, Control ComboBox, Control CommandButton, Objeto Form Controles HScrollBar y VScrollBar,
Control ListBox, Control OptionButton, Control PictureBox, Control TextBox.
Ocurre cuando el usuario presiona y suelta una tecla.
Sintaxis
Private Sub Form_KeyPress(keyascii As Integer)
Private Sub objeto_KeyPress([ndice As Integer,]keyascii As Integer)
La sintaxis del evento KeyPress consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
ndice Un entero que identifica de manera nica a un control si est en una matriz de controles.
keyascii Un entero que devuelve un cdigo de tecla numrico ANSI estndar. keyascii se pasa por referencia;
al cambiarlo se enva un carcter diferente al objeto. Cambiar keyascii a 0 cancela la pulsacin de
tecla, de forma que el objeto no recibe ningn carcter.
Comentarios
El objeto que tiene el enfoque recibe el evento. Un formulario puede recibir el evento slo si no tiene controles visibles
y activados. Un evento KeyPress puede implicar a cualquier carcter imprimible del teclado, a la tecla CTRL combinada
con un carcter del alfabeto estndar o uno de los caracteres especiales, y la tecla ENTRAR o RETROCESO. Un
procedimiento de evento KeyPress es til para interceptar pulsaciones de teclas realizadas en un control TextBox o
ComboBox. Esto le permite comprobar inmediatamente la validez de las pulsaciones o el formato de los caracteres a
medida que se escriben. Cambiar el valor del argumento keyascii cambia el carcter mostrado.
KeyPress interpreta las maysculas y minsculas de cada carcter como cdigos de tecla distintos y, por tanto, como
caracteres diferentes.
Nota El nmero ANSI para la combinacin de teclado CTRL+@ es 0. Puesto que Visual Basic reconoce un valor
keyascii de 0 como una cadena de longitud cero (""), evite utilizar CTRL+@ en sus aplicaciones.
Ejemplo del evento KeyPress
Este ejemplo convierte a maysculas el texto escrito en un control TextBox. Para probar este ejemplo, pegue el cdigo
en la seccin Declaraciones de un formulario que contenga un control TextBox y, despus, presione F5 y escriba algo en
el control TextBox.
Pgina 46 de 159
13.5- Load
Aplicable a:
Objeto Form.
Ocurre cuando se carga un formulario. Para 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.
Sintaxis
Private Sub Form_Load( )
Private Sub MDIForm_Load( )
Comentarios
Normalmente utiliza un procedimiento de evento Load para incluir cdigo de inicializacin para un formulario; por
ejemplo, cdigo que especifica los valores predeterminados de los controles, indica el contenido que se va a cargar en
controles ComboBox o ListBox e inicializa variables a nivel del formulario.
El evento Load ocurre tras el evento Initialize.
Nota Cuando cree procedimientos para eventos relacionados, como Activate, GotFocus, Paint y Resize, asegrese de
que sus acciones no entran en conflicto y no producen eventos recursivos.
Ejemplo del evento Load
Este ejemplo carga elementos en un control ComboBox cuando se carga un formulario. Para probar este ejemplo, pegue
el cdigo en la seccin Declaraciones de un formulario que contenga un control ComboBox y despus presione F5.
Private Sub Form_Load ()
Combo1.AddItem "Mozart"
Combo1.AddItem "Beethoven"
Combo1.AddItem "Rock 'n Roll"
Combo1.AddItem "Reggae"
Combo1.ListIndex = 2
End Sub
13.6- LostFocus
Aplicable a
Control CheckBox, Control ComboBox, Control CommandButton, Objeto Form Controles HScrollBar y VScrollBar,
Control ListBox, Control OptionButton, Control PictureBox, Control TextBox.
Ocurre cuando un objeto pierde el enfoque, ya sea por una accin del usuario, como tabular o hacer clic en otro objeto, o
bien mediante un cambio del enfoque en el cdigo con el mtodo SetFocus.
Sintaxis
Private Sub Form_LostFocus( )
Private Sub objeto_LostFocus([ndice As Integer])
Pgina 47 de 159
13.7- MouseMove
Aplicable a:
Control CheckBox, Control CommandButton, Control Data, Objeto Form, Control Frame, Control Image, Control
Label, Control ListBox, Control OptionButton, Control PictureBox, Control TextBox.
Ocurre cuando el usuario mueve el mouse.
Sintaxis
Private Sub Form_MouseMove(botn As Integer, mays As Integer, x As Single, y As Single)
Private Sub MDIForm_MouseMove(botn As Integer, mays As Integer, x As Single, y As Single)
Private Sub objeto_MouseMove([ndice As Integer,] botn As Integer, mays As Integer, x As Single, y As Single)
La sintaxis del evento MouseMove consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
ndice Un entero que identifica de manera nica a un control si est en una matriz de controles.
botn Un entero que corresponde al estado de los botones del mouse en el cual un bit se establece si el botn est
presionado. El argumento botn es un campo de bit con los bits correspondientes al botn primario (bit 0), al botn
secundario (bit 1) y al botn central (bit 2). Estos bits corresponden a los valores 1, 2 y 4, respectivamente. Indica el estado
Pgina 48 de 159
13.8- Timer
Aplicable a:
Control Timer
Ocurre cuando ha transcurrido un intervalo preestablecido para un control Timer. La frecuencia del intervalo se
almacena en la propiedad Interval del control, que especifica el tiempo en milisegundos.
Pgina 49 de 159
Siempre que la propiedad Enabled del control Timer est establecida a True y la propiedad Interval sea mayor
que 0, el evento Timer espera durante el periodo especificado en la propiedad Interval.
Este ejemplo mueve un control PictureBox por un formulario. Para probar este ejemplo, pegue el cdigo en la seccin
Declaraciones de un formulario que contenga un control Timer y un control PictureBox y, despus, presione F5. Si
desea obtener un efecto visual mejor puede asignar un mapa de bits al control PictureBox mediante la propiedad
Picture.
Dim DeltaX, DeltaY As Integer
' Declara variables.
Private Sub Timer1_Timer ()
Picture1.Move Picture1.Left + DeltaX, Picture1.Top + DeltaY
If Picture1.Left < ScaleLeft Then DeltaX = 100
If Picture1.Left + Picture1.Width > ScaleWidth + ScaleLeft Then
DeltaX = -100
End If
If Picture1.Top < ScaleTop Then DeltaY = 100
If Picture1.Top + Picture1.Height > ScaleHeight + ScaleTop Then
DeltaY = -100
End If
End Sub
Private Sub Form_Load ()
Timer1.Interval = 1000 ' Establece el intervalo.
DeltaX = 100
' Inicializa variables.
DeltaY = 100
End Sub
Pgina 50 de 159
13.9- Unload
Aplicable a:
Objeto Form.
Ocurre cuando un formulario est a punto de quitarse de la pantalla. Cuando ese formulario se vuelve a cargar, el
contenido de todos sus controles se reinicializa. Este evento se desencadena porque un usuario cierra el formulario
mediante el comando Cerrar del men Control o una instruccin Unload.
Sintaxis
Private Sub objeto_Unload(cancelar As Integer)
La sintaxis del evento Unload consta de las siguientes partes:
Parte Descripcin
objeto
Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
cancelar Un entero que determina si el formulario se quita de la pantalla. Si cancelar es 0, el formulario se quita.
Establecer cancelar a cualquier valor distinto de cero impide que el formulario se quite.
Comentarios
Establecer cancelar a un valor distinto de cero impide que el formulario se quite, pero no detiene los dems eventos,
como la salida del entorno operativo Microsoft Windows. Utilice el evento QueryUnload para detener la salida de
Windows.
Utilice un procedimiento de evento Unload para comprobar si el formulario se debe descargar o para especificar
acciones que desea que tengan lugar cuando se descargue el formulario. Tambin puede incluir cualquier cdigo de
validacin a nivel del formulario que pueda necesitar para cerrar el formulario o guardar los datos en un archivo.
El evento QueryUnload ocurre antes que el evento Unload. El evento Unload ocurre antes que el evento Terminate.
El evento Unload puede estar causado por la utilizacin de la instruccin Unload o porque el usuario elija el comando
Cerrar del men Control del formulario, salga de la aplicacin con el botn Finalizar tarea de la Lista de tareas, o
salga del entorno operativo Microsoft Windows mientras la aplicacin se est ejecutando.
Ejemplo del evento Unload
Este ejemplo muestra un procedimiento simple para cerrar un formulario mientras se avisa al usuario con varios cuadros
de mensajes. En una aplicacin real, puede agregar llamadas a procedimientos Sub de propsito general que emulen el
proceso de los comandos Salir, Guardar y Guardar como del men Archivo de Visual Basic. Para probar este
ejemplo, pegue el cdigo en la seccin Declaraciones de un formulario y, despus, presione F5. Una vez que se muestre
el formulario, presione ALT+F4 para cerrar el formulario.
Private Sub Form_Unload (Cancel As Integer)
Dim Msg, Response
' Declara variables.
Msg = "Desea guardar los datos antes de cerrar?"
Response = MsgBox(Msg, vbQuestion + vbYesNoCancel, "Dilogo Cerrar")
Select Case Response
Case vbCancel ' No se permite cerrar.
Cancel = -1
Msg = "Se ha cancelado el comando."
Case vbYes
' Introduzca cdigo para guardar los datos aqu.
Msg = "Datos guardados."'
Case vbNo
Msg = "Datos no guardados."
End Select
MsgBox Msg, vbOKOnly, "Confirmacin" ' Mostrar mensaje.
End Sub
Pgina 51 de 159
13.10- QueryUnload
Aplicable a:
Objeto Form y Coleccin Forms, Objeto MDIForm
Ocurre antes de que se cierre un formulario o una aplicacin.
Sintaxis
Private Sub Form_QueryUnload(cancelar As Integer, modo_descarga As Integer)
Private Sub MDIForm_QueryUnload(cancelar As Integer, modo_descarga As Integer)
La sintaxis del evento QueryUnload consta de las siguientes partes:
Parte Descripcin
cancelar
Un entero. Establecer este argumento a cualquier valor distinto de 0 detiene el evento QueryUnload en
todos los formularios cargados y detiene el cierre del formulario y de la aplicacin.
modo_descarga Un valor o una constante que indica la causa del evento QueryUnload, tal y como se describe en Valores
que se pueden obtener.
Valores que se pueden obtener
El argumento modo_descarga devuelve los siguientes valores:
Constante
Valor
Descripcin
vbFormControlMenu 0
El usuario eligi el comando Cerrar del men Control del formulario.
vbFormCode
1
Se invoc la instruccin Unload desde el cdigo.
VbAppWindows
2
La sesin actual del entorno operativo Microsoft Windows est inalizando.
vbAppTaskManager
3
El Administrador de tareas de Microsoft Windows est cerrando la
aplicacin.
vbFormMDIForm
4
Un formulario MDI secundario se est cerrando porque el formulario MDI
tambin se est cerrando.
Comentarios
Normalmente este evento se utiliza para asegurarse de que no hay tareas sin finalizar en los formularios incluidos en una
aplicacin antes de que esa aplicacin se cierre. Por ejemplo, si un usuario no ha guardado todava algunos datos nuevos
de cualquier formulario, su aplicacin puede pedir al usuario que los guarde.
Cuando una aplicacin se cierra, puede utilizar los procedimientos de evento QueryUnload o Unload para establecer la
propiedad Cancel a True, deteniendo el proceso de cierre. Sin embargo, el evento QueryUnload ocurre en todos los
formularios antes de que se descargue ninguno de ellos y el evento Unload ocurre conforme se descarga cada
formulario.
Ejemplo del evento QueryUnload
En este ejemplo, al cerrar un formulario se consulta al operador si realmente quiere salir o no. Tambin se chequea si
est saliendo del formulario o de toda la aplicacin.
' Pegar en la seccin Declaraciones de Form1.
Private Sub Form_QueryUnload (Cancel As Integer, UnloadMode As Integer)
Dim Msg
' Declara la variable.
If UnloadMode > 0 Then
' Si sale de la aplicacin.
Msg = "Realmente desea salir de la aplicacin?"
Else
Pgina 52 de 159
13.11- Validate
Aplicable a:
Control Data
Se produce antes de que otro registro se convierta en el registro actual, antes del mtodo Update (excepto cuando se
guardan los datos con el mtodo UpdateRecord) y antes de una operacin Delete, Unload o Close.
Sintaxis
Private Sub objeto_Validate ([ndice As Integer,] accin As Integer, guardar As Integer)
La sintaxis del evento Validate consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto cuyo resultado es un objeto de la lista Aplicable a
ndice Identifica el control si se encuentra en una matriz de controles
accin Un entero que indica la operacin que provoca el evento, como se describe en Valores
guardar Una expresin booleana que especifica si los datos enlazados han cambiado, como se describe en Valores
Valores
Los valores de accin son:
Constante
vbDataActionCancel
vbDataActionMoveFirst
vbDataActionMovePrevious
vbDataActionMoveNext
vbDataActionMoveLast
vbDataActionAddNew
vbDataActionUpdate
vbDataActionDelete
vbDataActionFind
vbDataActionBookmark
vbDataActionClose
vbDataActionUnload
Valor
0
1
2
3
4
5
6
7
8
9
10
11
Descripcin
Cancela la operacin al salir de Sub
Mtodo MoveFirst
Mtodo MovePrevious
Mtodo MoveNext
Mtodo MoveLast
Mtodo AddNew
Operacin Update (no UpdateRecord)
Mtodo Delete
Mtodo Find
Se ha establecido la propiedad Bookmark
El mtodo Close
Se est descargando el formulario
Pgina 53 de 159
Pgina 55 de 159
En un objeto Recordset tipo Dynaset, los registros se insertan al final del conjunto del Recordset,
independientemente de las reglas de clasificacin u orden que estuvieran en vigor cuando se abri el Recordset.
En un objeto Recordset tipo Table en el que su propiedad Index se haya establecido, los registros se insertan en el
lugar adecuado dentro del orden definido. Si no se ha establecido la propiedad Index, los nuevos registros se
insertarn al final del Recordset.
Cierro el Recordset
Cierro la base de Datos
Cierro el espacio de trabajo
End Sub
Pgina 56 de 159
Cierro el Recordset
Cierro la base de Datos
Cierro el espacio de trabajo
End Sub
14.6- Cls
Aplicable a:
Objeto Form, Control PictureBox.
Borra los grficos y el texto generados en tiempo de ejecucin de los controles Form o PictureBox.
Sintaxis
objeto.Cls
El marcador de posicin objeto representa una expresin de objeto cuyo resultado es un objeto de la lista Aplicable a. Si
se omite objeto, se supone que el objeto es el control Form que tenga el enfoque.
Comentarios
Cls borra el texto y los grficos generados en tiempo de ejecucin por instrucciones grficas y de impresin. Los mapas
de bits de fondo definidos mediante la propiedad Picture y los controles colocados en un Form en tiempo de diseo no
se ven afectados por Cls.
Despus de llamar a Cls, las propiedades CurrentX y CurrentY del objeto se restablecen a 0.
Ejemplo del mtodo Cls
Este ejemplo utiliza el mtodo Cls para eliminar la informacin impresa de un formulario. Para probar este ejemplo,
pegue el cdigo en la seccin Declaraciones de un formulario, y despus presione F5 y haga clic en el formulario.
Private Sub Form_Click ()
Dim Msg
' Declara variable.
ForeColor = QBColor(15)
' Establece el color de primer plano a blanco.
BackColor = QBColor(1)
' Establece el color de fondo a azul.
Msg = "Esta informacin se imprime en el fondo del formulario."
Print Msg
' Imprime el mensaje en el formulario.
Msg = "Haga clic en Aceptar para borrar la informacin y el patrn de fondo "
Msg = Msg & "mostrado en el formulario."
MsgBox Msg
' Muestra el mensaje.
Cls
' Borra el fondo del formulario.
End Sub
Sintaxis
DBEngine.CompactDatabase antiguabasededatos, nuevabasededatos, escenario, opciones, contrasea
La sintaxis del mtodo CompactDatabase tiene los siguientes argumentos:
Pgina 59 de 159
Objetos Recordset: elimina el registro activo de un objeto Recordset de tipo Dynaset o Table. Para espacios de
trabajo ODBCDirect, el tipo de controlador determina si los objetos Recordset se pueden actualizar y, por tanto,
admiten el mtodo Delete.
Sintaxis
recordset.Delete
La sintaxis del mtodo Delete utiliza los siguientes argumentos.
Argumentos
Descripcin
recordset
Una variable de objeto que identifica un objeto Recordset de tipo Dynaset o Table abierto, que contiene
el registro que desea eliminar.
Comentarios
Puede utilizar el mtodo Delete para eliminar un registro activo de un objeto Recordset.
Recordsets
Un objeto Recordset debe contener un registro activo antes de que utilice el mtodo Delete; en caso contrario se
produce un error en tiempo de ejecucin.
En objetos Recordset, Delete elimina el registro activo y lo hace inaccesible. Aunque no pueda modificarlo o utilizarlo,
el registro eliminado permanecer activo. Sin embargo, una vez que se desplace a otro registro no podr volver a
convertir en activo el registro eliminado. Las referencias subsiguientes a un registro eliminado en un Recordset no son
vlidas y producen un error.
Si la tabla base es la tabla principal en una relacin de eliminacin de cascada, al eliminar el registro activo tambin se
eliminarn uno o ms registros de una tabla externa.
Nota Para agregar, modificar o eliminar un registro, debe tener un ndice nico en el registro en el origen de datos de
base. Si no es as, se producir un error "Permiso denegado" en la llamada al mtodo AddNew, Delete o Edit en un
espacio de trabajo Microsoft Jet.
Pgina 61 de 159
Abro el
Cierro el Recordset
Cierro la base de Datos
Cierro el espacio de trabajo
End Sub
Comentarios
Una vez que utiliza el mtodo Edit, los cambios realizados en los campos del registro activo son copiados al bfer de
copia. Despus de realizar los cambios deseados en el registro, utilice el mtodo Update para guardar los cambios.
El registro activo permanece activo despus de utilizar el mtodo Edit.
Precaucin Si modifica un registro y a continuacin pasa a otro registro sin utilizar antes Update, los cambios se
perdern sin previo aviso. Adems, si cierra recordset o finaliza el procedimiento que declara el Recordset o el objeto
Database o Connection, el registro modificado se descarta sin previo aviso.
Pgina 62 de 159
Nota Para agregar, modificar o eliminar un registro, debe tener un ndice nico en el registro en el origen de datos de
base. Si no es as, se producir un error "Permiso denegado" en la llamada al mtodo AddNew, Delete o Edit en un
espacio de trabajo Microsoft Jet, o se producir un error "Argumento no vlido" el la llamada al mtodo Update en un
espacio de trabajo ODBCDirect.
Abro el
If Not Agenda.EOF
si encontr algn registro
Agenda.MoveFirst
me muevo al primer registro
Do While Not Agenda.EOF
mientras no sea fin de archivo
Agenda.Edit
Edito el registro
Agenda!Zona = 1
Agenda.Update
Agenda.MoveNext
me desplazo al siguiente registro
Loop
End If
Agenda.Close
Cierro el Recordset
Base.Close
Cierro la base de Datos
Wsp.Close
Cierro el espacio de trabajo
End Sub
14.10- Hide
Aplicable a:
Objeto Form.
Oculta un objeto Form pero no lo descarga.
Sintaxis
objeto.Hide
Pgina 63 de 159
Comentarios
Cuando se oculta un formulario, se quita de la pantalla y su propiedad Visible queda establecida a False. Los controles
de un formulario oculto no son accesibles para el usuario, pero estn disponibles para la aplicacin de Visual Basic en
ejecucin y para otros procesos que se estn comunicando con la aplicacin mediante DDE, as como para los eventos
del control Timer.
Cuando se oculta un formulario, el usuario no puede interactuar con la aplicacin hasta que el cdigo del procedimiento
de evento que ha provocado la ocultacin del formulario haya terminado de ejecutarse.
Si el formulario no est cargado cuando se llama al mtodo Hide, el mtodo Hide carga el formulario pero no lo
presenta.
Ejemplo del mtodo Hide
Este ejemplo utiliza el mtodo Hide para ocultar un formulario. Para probar este ejemplo, pegue el cdigo en la seccin
Declaraciones de un formulario, y despus presione F5 y haga clic en el formulario.
Private Sub Form_Click ()
Dim Msg
' Declara variable.
Hide
' Oculta el formulario.
Msg = "Haga clic en Aceptar para que vuelva a aparecer el formulario."
MsgBox Msg
' Muestra el mensaje.
Show ' Muestra de nuevo el formulario.
End Sub
Sintaxis
recordset.{MoveFirst | MoveLast [dbRunAsync] | MoveNext | MovePrevious}
El marcador de posicin recordset es una variable de objeto que representa un objeto Recordset abierto.
Comentarios
Precaucin Si modifica el registro activo, utilice el mtodo Update para guardar los cambios antes de ir a otro registro.
Si va a otro registro sin actualizar, los cambios se perdern sin previo aviso.
Al abrir un Recordset, el primer registro est activo y la propiedad BOF es False. Si el Recordset no contiene registros
la propiedad BOF es True y no habr ningn registro activo.
Si el primer o el ltimo registro est activo cuando utiliza MoveFirst o MoveLast, el registro activo no cambia.
Si utiliza MovePrevious cuando el primer registro est activo, la propiedad BOF es True y no habr ningn registro
activo. Si vuelve a utilizar MovePrevious se producir un error y BOF ser True.
Si utiliza MoveNext cuando el ltimo registro est activo, la propiedad EOF es True y no habr ningn registro activo.
Si vuelve a utilizar MoveNext se producir un error y EOF ser True.
Si recordset hace referencia a un objeto Recordset de tipo Table (slo espacios de trabajo Microsoft Jet), el movimiento
seguir el ndice activo. Puede establecer el ndice activo utilizando la propiedad Index. Si no establece el ndice activo,
el orden de los registros devueltos no estar definido.
Pgina 64 de 159
Abro el
If Not Agenda.EOF
si encontr algn registro
Agenda.MoveLast
me muevo al ltimo registro
Do While Not Agenda.BOF
mientras no sea principio de archivo
Agenda.Edit
Edito el registro
Agenda!Zona = 1
Agenda.Update
Agenda.MovePrevious
me desplazo al registro anterior
Loop
End If
Agenda.Close
Cierro el Recordset
Base.Close
Cierro la base de Datos
Wsp.Close
Cierro el espacio de trabajo
End Sub
Opcional. Una variable de objeto que representa el objeto Workspace existente que
contendr la base de datos. Si no incluye un valor para espaciodetrabajo,
OpenDatabase utiliza el espacio de trabajo predeterminado.
Un tipo de datos String que es el nombre de un archivo de base de datos Microsoft Jet
existente o el nombre del origen de datos (DSN) de un origen de datos ODBC
existente.
Opcional. Un tipo de datos Variant que establece varias opciones para la base de
datos, como se especifica en Valores.
Opcional. Un valor de tipo de datos Variant (subtipo Boolean) que es True si desea
abrir la base de datos con acceso de slo lectura o False (predeterminado) si desea
abrir la base de datos con acceso de lectura/escritura.
Opcional. Un tipo de datos Variant (subtipo String) que especifica informacin
variada sobre la conexin, incluyendo las contraseas.
Valores
Para los espacios de trabajo Microsoft Jet, puede utilizar los siguientes valores para el argumento opciones:
Valor Descripcin
True
Abre la base de datos en modo exclusivo.
False (Predeterminado) Abre la base de datos en modo compartido.
Comentarios
Cuando abre una base de datos, automticamente se agrega a la coleccin Databases.
Estas son algunas consideraciones que debe aplicar cuando utilice nombrebasededatos:
Si hace referencia a una base de datos que ya est abierta para acceso en modo exclusivo por otro usuario, se
produce un error.
Si no hace referencia a una base de datos existente, se produce un error.
El argumento conexin se expresa en dos partes: el tipo de base de datos, seguido por punto y coma (;) y los argumentos
opcionales. Primero debe proporcionar el tipo de base de datos, como "ODBC;" o "FoxPro 2.5;". A continuacin, os
argumentos opcionales sin un orden concreto, separados por punto y coma. Uno de los parmetros puede ser la
contrasea (si hay alguna asignada). Por ejemplo:
"FoxPro 2.5; pwd=micontrasea"
Para cerrar una base de datos y, de este modo, quitar el objeto Database de la coleccin Databases, utilice el mtodo
Close en el objeto .
Ejemplo mtodo OpenDatabase
Es vlido el mismo ejemplo utilizado para los mtodos MoveFirst, MoveLast, MoveNext, MovePrevious.
Descripcin
Una variable de objeto que representa el objeto Recordset que desea abrir.
Una variable de objeto que representa un objeto existente desde el que desea crear
el objeto Recordset nuevo.
Un tipo de datos String que especifica el origen de los registros para el nuevo
Recordset. El origen puede ser un nombre de tabla, un nombre de consulta o una
instruccin SQL que devuelve registros.
Opcional. Una constante que indica el tipo de objeto Recordset a abrir, como se
especifica en Valores.
Opcional. Una combinacin de constantes que especifican las caractersticas del
objeto Recordset nuevo, como se especifica en Valores.
Opcional. Una constante que determina el bloqueo para el objeto Recordset,
como se especifica en Valores.
Valores
Puede utilizar una de las siguientes constantes para el argumento tipo.
Constante
Descripcin
dbOpenTable
Abre un objeto Recordset de tipo Table (slo espacios de trabajo Microsoft Jet).
dbOpenDynaset
Abre un objeto Recordset de tipo Dynaset (actualizable).
DbOpenSnapshot
Abre un objeto Recordset de tipo Snapshot (slo lectura)
DbOpenForwardOnly Abre un objeto Recordset de tipo Forward-only.
Nota Si abre un objeto Recordset en un espacio de trabajo Microsoft Jet y no especifica un tipo, el mtodo
OpenRecordset crea una objeto Recordset de tipo Table, si es posible. Si especifica una tabla vinculada o una consulta,
el mtodo OpenRecordset crea un objeto Recordset.de tipo Dynaset.
Puede utilizar una combinacin de las siguientes constantes para el argumento opciones:
-DbAppendOnly: Permite al usuario anexar registros nuevos al objeto Recordset, pero impide la modificacin o
eliminacin de registros existentes (slo objetos Recordset de tipo Dynaset de Microsoft Jet).
-DbSeeChanges: Genera un error en tiempo de ejecucin si otro usuario est cambiando los datos que usted est
modificando.(Slo en objetos Recordset de tipo Snapshot de Microsoft Jet). Esto es til en aplicaciones donde varios
usuarios tiene acceso de lectura/escritura simultneo a los mismos datos.
-DbDenyWrite: Previene que otros usuarios puedan modificar o agregar registros (slo objetos Recordset de Microsoft
Jet).
-DbDenyRead: Previene que otros usuarios puedan leer datos de una tabla (slo objetos Recordset de tipo Table de
Microsoft Jet).
-DbForwardOnly: Crea un objeto Recordset de tipo Forward-only (slo objetos Recordset de tipo Snapshot de
Microsoft Jet). Se proporciona slo para compatibilidad con versiones anteriores y debe utilizar la constante
dbOpenForwardOnly en el argumento tipo en vez de utilizar esta opcin.
-DbReadOnly : Previene que otros usuarios puedan hacer cambios el objeto Recordset (slo Microsoft Jet). La constante
dbReadOnly en el argumento bloquearmodificaciones reemplaza esta opcin, la cual se proporciona para compatibilidad
con versiones anteriores.
-dbInconsistent : Permite actualizaciones inconsistentes (slo objetos Recordset de tipo Dynaset de Microsoft Jet).
-DbConsistent : Permite slo actualizaciones consistentes (slo objetos Recordset de tipo Dynaset de Microsoft Jet).
Nota Las constantes dbConsistent y dbInconsistent se excluyen mutuamente y el uso de ambos produce un error.
Proporcionar un argumento bloquearmodificaciones cuando el argumento opciones utiliza la constante dbReadOnly
tambin produce un error.
Puede utilizar las siguientes constantes para el argumento bloquearmodificaciones:.
-dbReadOnly: Previene que los usuarios hagan cambios al Recordset. Puede utilizar dbReadOnly en el argumento
opciones o en el argumento bloquearmodificaciones, pero nunca en ambos. Si lo utiliza en ambos argumentos, se produce
un error en tiempo de ejecucin.
Pgina 67 de 159
14.14- RemoveItem
Aplicable a:
Control ComboBox, Control ListBox.
Quita un elemento de un control ListBox o ComboBox. No acepta argumentos con nombre.
Sintaxis
objeto.RemoveItem ndice
La sintaxis del mtodo RemoveItem consta de las siguientes partes:
Parte Descripcin
objeto Requerido. Una expresin de objeto cuyo resultado es un objeto de la lista Aplicable a.
ndice Requerido. Un entero que especifica la posicin dentro del objeto del elemento o la fila que se va a
quitar. Para los primeros elementos de los controles ListBox o ComboBox, ndice es 0.
Comentarios
Los controles ListBox o ComboBox que estn enlazados a un control Data no aceptan el mtodo RemoveItem.
Pgina 68 de 159
14.16- SetFocus
Aplicable a
Control CheckBox, Control ComboBox, Control CommandButton, Objeto Form Controles HScrollBar y VScrollBar,
Control ListBoxControl OptionButton, Control PictureBox, Control TextBox.
Mueve el enfoque al control o formulario especificado.
Sintaxis
objeto.SetFocus
El marcador de posicin objeto representa una expresin de objeto que da como resultado un objeto de la lista
Aplicable a.
Comentarios
El objeto debe ser un objeto Form o un control que pueda recibir el enfoque. Despus de invocar el mtodo SetFocus,
cualquier entrada del usuario se dirige al formulario o al control especificado.
El enfoque slo se puede mover a un formulario o un control visible. Como un formulario y los controles de un
formulario no son visibles hasta que el evento Load del formulario ha terminado, no puede usar en su propio evento
Load el mtodo SetFocus para mover el enfoque al formulario que se est cargando a menos que use primero el mtodo
Show para mostrar el formulario antes de que el procedimiento de evento Form_Load haya terminado.
Tampoco puede mover el enfoque a un formulario o un control si su propiedad Enabled es False. Si la propiedad
Enabled se ha establecido a False en tiempo de diseo, primero debe establecerla a True antes de poder recibir el
enfoque mediante el mtodo SetFocus.
14.17- Show
Aplicable a:
Objeto Form.
Sintaxis
objeto.Show estilo, formulario_propietario
La sintaxis del mtodo Show consta de las siguientes partes:
Parte
Descripcin
objeto
Opcional. Una expresin de objeto cuyo resultado es un objeto de la lista Aplicable
a. Si se omite objeto, se supone que objeto es el formulario asociado con el
mdulo de formulario activo.
estilo
Opcional. Un entero que determina si el formulario es modal o no modal. Si estilo
es 0, el formulario es no modal; si estilo es 1, el formulario es modal.
formulario_propietario
Opcional. Una expresin de cadena que especifica el componente que "posee" el
formulario que se muestra. Para los formularios estndar de Visual Basic, utilice la
palabra clave Me.
Comentarios
Si el formulario especificado no est cargado cuando se invoca el mtodo Show, Visual Basic lo carga automticamente.
Cuando Show presenta un formulario no modal, contina con la ejecucin del cdigo que haya a continuacin. Cuando
Show presenta un formulario modal, el cdigo que hay a continuacin no se ejecuta hasta que el formulario se oculta o
se descarga.
Cuando Show presenta un formulario modal, no hay entradas (de teclado o del mouse) excepto sobre los objetos del
formulario modal. El 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.
Aunque los dems formularios de la aplicacin estn deshabilitados cuando se presenta un formulario modal, los de las
dems aplicaciones no lo estn.
El formulario inicial de una aplicacin se muestra automticamente despus de invocar su evento Load.
Ejemplo del mtodo Show
Este ejemplo utiliza el mtodo Show para mostrar un formulario oculto. Para probar este ejemplo, pegue el cdigo en la
seccin Declaraciones de un formulario y despus presione F5 y haga clic en el formulario.
Private Sub Form_Click ()
Dim Msg
' Declara variable.
Hide
' Oculta el formulario.
Msg = "Haga clic en Aceptar para que vuelva a aparecer el formulario."
MsgBox Msg
' Muestra el mensaje.
Show ' Muestra de nuevo el formulario.
End Sub
Pgina 71 de 159
Sintaxis
recordset.Update (tipo, obligar )
La sintaxis del mtodo Update tiene las siguientes partes.
Parte Descripcin
Recordset
Una variable de objeto que representa un objeto Recordset abierto que se puede actualizar.
Tipo
Opcional. Una constante que indica el tipo de actualizacin, como se especifica en Valores
(slo espacios de trabajo ODBCDirect).
Obligar
Opcional. Un valor de tipo Boolean que indica si se pueden o no obligar los cambios en la base
de datos, sin tener en cuenta si los datos base se han cambiado por otro usuario desde la
llamada al mtodo AddNew, Delete o Edit. Si es True, los cambios se fuerzan y los cambios
hechos por otros usuarios se sobrescriben. Si es False (predeterminado), los cambios hechos
por otros usuarios mientras la actualizacin est pendiente provocarn que falle la
actualizacin para aquellos cambios conflictivos.
Comentarios
Utilice Update para guardar el registro activo y los cambios que haya efectuado en l.
Precaucin Los cambios realizados en el registro activo se perdern si:
Utiliza el mtodo Edit o AddNew y a continuacin, pasa a otro registro sin actualizarlo previamente mediante
Update.
Utiliza Edit o AddNew y, a continuacin, vuelve a usar Edit o AddNew sin utilizar previamente Update.
Cierra el conjunto de registros a los que hace referencia recordset sin utilizar primero Update.
Cancela la operacin Edit utilizando el mtodo CancelUpdate.
Para modificar un registro, utilice el mtodo Edit para copiar el contenido del registro activo al bfer de copia. Si no
utiliza Edit en primer lugar, se producir un error cuando utilice Update o intente cambiar el valor de un campo.
En un espacio de trabajo Microsoft Jet, cuando el objeto Recordset de la propiedad LockEdits establecida como True
(bloqueo pesimista) en un entorno multiusuario, el registro permanecer bloqueado desde el momento en que se utiliza
Edit hasta que se ejecuta el mtodo Update o se cancele la edicin. Si la configuracin de la propiedad LockEdits es
False (bloqueo optimista), el registro se bloquea y se compara con el registro previamente modificado justo antes de se
actualizado en la base de datos. Si ha cambiado el registro desde que utiliz el mtodo Edit, la operacin Update falla..
Para que la operacin Update contine con los cambios, utilice de nuevo el mtodo Update. Para volver al registro, tal
como lo cambi el otro usuario, actualice el registro activo usando los mtodos Move 0.
Nota Para agregar, modificar o eliminar un registro, debe haber un ndice nico en el registro del origen de datos base.
Se obtiene no lo hay, se producir un error "Permiso denegado" en la llamada al mtodo AddNew, Delete o Edit en un
espacio de trabajo Microsoft Jet, se producir un error "Argumento no vlido" en la llamada al mtodo Update en un
espacio de trabajo ODBCDirect.
Ejemplo del mtodo Update
Es vlido el ejemplo del mtodo AddNew.
Pgina 72 de 159
15.3- BackStyle
Aplicable a
Control Label, Control Shape.
Pgina 74 de 159
BOF: indica si la posicin del registro activo es anterior al primer registro de un objeto Recordset.
EOF: indica si la posicin del registro activo es posterior al ltimo registro de un objeto Recordset.
Valores devueltos
Los valores que se obtienen para las propiedades BOF y EOF son un tipo de datos Boolean.
La propiedad BOF devuelve el valor True, si la posicin del registro activo es anterior al primer registro y False si el
registro activo est en el registro activo o en el posterior.
La propiedad EOF devuelve el valor True, si la posicin del registro activo es posterior al ltimo registro y False si el
registro activo est en el ltimo registro o antes de ste.
Comentarios
Puede utilizar las propiedades BOF y EOF para determinar si un objeto Recordset contiene registros o si se han
sobrepasado los lmites de un objeto Recordset al ir pasando de un registro a otro.
La ubicacin del puntero de l registro activo determina los valores devueltos de BOF y EOF.
Si BOF o EOF tienen el valor True, no existe registro activo.
Si abre un objeto Recordset que no contiene ningn registro, tanto BOF como EOF tendrn el valor True y el valor de
la propiedad RecordCount ser 0. Cuando se abre un objeto Recordset que contiene al menos un registro, el primer
registro pasa a ser el registro activo y tanto BOF como EOF tendrn el valor False; que conservar hasta que se
sobrepase el principio o el final del objeto Recordset, mediante los mtodos MovePrevious o MoveNext
respectivamente. Cuando se sobrepasan el principio o el final del conjunto de registros, no hay registro activo o no
existe ningn registro.
Pgina 75 de 159
15.5-BOFAction, EOFAction
Aplicable a:
Control Data.
Devuelve o establece un valor que indica qu accin lleva a cabo el control Data cuando las propiedades BOF o EOF
son True.
Sintaxis
objeto.BOFAction [= entero]
objeto.EOFAction [= entero]
La sintaxis de las propiedades BOFAction y EOFAction consta de estas partes:
Parte Descripcin
objeto Una expresin de objeto cuyo resultado es un objeto de la lista Aplicable a
entero Un valor de tipo Integer que especifica una accin, como se describe en Valores
Valores
Para la propiedad BOFAction, los valores de entero son los siguientes:
Configuracin
Valor
Descripcin
VbBOFActionMoveFirst
0
MoveFirst (Predeterminado): mantiene el primer registro como
registro actual.
vbBOFActionBOF
1
BOF: al desplazarse ms all del comienzo de un Recordset se
desencadena el evento Validate del control Data del primer
registro. En este punto se desactiva el botn Mover anterior del
control Data.
Pgina 76 de 159
15.6-BorderStyle
Aplicable a:
Objeto Form, Control Frame, Control Image, Control Label, Control Line, Control PictureBox, Control Shape, Control
TextBox.
Devuelve o establece un valor que indica cul es el estilo de los bordes del control. La propiedad BorderStyle es de
lectura y escritura durante el diseo del control y de slo lectura en tiempo de ejecucin.
Sintaxis
objeto.BorderStyle [= enum]
La sintaxis de la propiedad BorderStyle consta de las partes siguientes:
Elemento
Descripcin
objeto Expresin de objeto cuyo resultado es un objeto de la lista Aplicable a.
enum Valor enumerado que determina el estilo de los bordes del control, como se describe en Valores.
Valores
Los valores de enum son:
Valor
Descripcin
0-None
Sin bordes. ste es el valor predeterminado.
1-Fixed Single Se dibuja una nica lnea alrededor del control.
Pgina 77 de 159
15.7-Caption
Aplicable a:
Control CheckBox, Control CommandButton, Control Data, Objeto Form, Control Frame, Control Label, Control Menu,
Control OptionButton.
Formulario: determina el texto que se muestra en la barra de ttulo del objeto Form. Cuando el formulario est
minimizado, este texto se muestra debajo del icono del formulario.
Control: determina el texto que se muestra en un control o junto a ste.
Objeto MenuLine: determina el texto que se muestra para un control Menu o un objeto de la coleccin
MenuItems.
Sintaxis
objeto.Caption [= cadena]
La sintaxis de la propiedad Caption consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a. Si se omite objeto,
se supondr que el formulario asociado al mdulo de formulario activo es objeto.
cadena Una expresin de cadena que da como resultado el texto que se muestra como ttulo.
Comentarios
Cuando crea un nuevo objeto, su ttulo predeterminado es el valor predeterminado de la propiedad Name. Este ttulo
predeterminado incluye el nombre de objeto y un entero, como Comando1 o Formulario1. Para obtener una etiqueta ms
descriptiva, establezca la propiedad Caption.
Puede utilizar la propiedad Caption para asignar una tecla de acceso a un control. En el ttulo, incluya un signo &
inmediatamente delante del carcter que desea designar como tecla de acceso. El carcter estar subrayado. Presione la
tecla ALT y el carcter subrayado para mover el enfoque a ese control. Si desea incluir un signo & en un ttulo sin crear
una tecla de acceso, incluya dos signos (&&). En el ttulo slo aparecer un smbolo y no habr caracteres subrayados.
Para un control Label, el tamao del ttulo es ilimitado. Para los formularios y todos los dems controles que tienen
ttulos, el lmite es de 255 caracteres.
Para mostrar el ttulo de un formulario, establezca la propiedad BorderStyle a Fixed Single (1 o vbFixedSingle),
Sizable (2 o vbSizable) o Fixed Dialog (3 o vbFixedDialog). Si el ttulo es demasiado largo para la barra de ttulo, se
recortar.
Sugerencia Para una etiqueta, establezca la propiedad AutoSize a True con el fin de ajustar automticamente el
tamao del control de modo que quepa el ttulo.
Pgina 78 de 159
15.8-DatabaseName
Aplicable a
Control Data.
Devuelve o establece el nombre y la ubicacin del origen de datos de un control Data.
Sintaxis
objeto.DatabaseName [ = nombre_ruta ]
La sintaxis de la propiedad DatabaseName consta de estas partes:
Parte
Descripcin
objeto
Una expresin de objeto cuyo resultado es un objeto de la lista Aplicable a.
nombre_ruta
Una expresin de cadena que indica la ubicacin de los archivos de base de datos.
Comentarios
Si el sistema de red lo admite, el argumento nombre_ruta puede ser un nombre completo de ruta de acceso de red
como \\Miserv\Micomp\Basedato.mdb.
El tipo de base de datos est indicado por el archivo o el directorio al que seala nombre_ruta, de la siguiente manera:
nombre_ruta
Seala a...
Archivo .mdb
Directorio con archivos .dbf
Directorio con archivos .xls
Directorio con archivos .dbf
Directorio con archivos .wk1, .wk3, .wk4 o .wks
Directorio con archivos .pdx
Si cambia la propiedad DatabaseName despus de abrir el objeto Database del control, deber utilizar el mtodo
Refresh para abrir la nueva base de datos.
Nota Para obtener un mejor rendimiento al tener acceso a bases de datos externas, se recomienda adjuntar tablas de
bases de datos externas a una base de datos del motor Microsoft Jet (.mdb) y utilizar el nombre de esta base de datos en
la propiedad DatabaseName.
Tipo de datos
String
Ejemplo de la propiedad DatabaseName
Este ejemplo examina la propiedad Database de un control Data e imprime el nombre de cada Table en la ventana
Depuracin.
Sub PrintTableNames ()
Dim Td As TableDef
' Define el archivo de la base de datos.
Data1.DatabaseName = "BIBLIO.MDB"
Data1.Refresh
' Abre la base de datos.
' Lee e imprime el nombre de cada tabla de la base de datos.
For Each Td in Data1.Database.TableDefs
Debug.Print Td.Name
Next
End Sub
Pgina 79 de 159
15.9-DataChanged
Aplicable a:
Control CheckBox, Control ComboBox, Control Image, Control Label, Control ListBox, Control PictureBox, Control
TextBox.
Devuelve o establece un valor que indica que algn proceso distinto de la recuperacin de datos del registro actual ha
cambiado los datos del control enlazado. No est disponible en tiempo de diseo.
Sintaxis
objeto.DataChanged [= valor]
La sintaxis de la propiedad DataChanged consta de estas partes:
Parte Descripcin
objeto Una expresin de objeto cuyo resultado es un objeto de la lista Aplicable a.
valor Una expresin booleana que indica si los datos han cambiado, como se describe en Valores.
Valores
Los valores admitidos para valor son los siguientes:
Valor Descripcin
True
Los datos que hay actualmente en el control no son iguales que los del registro actual.
False (Predeterminado) Los datos que hay actualmente en el control (si los hay) son iguales que los del registro actual.
Comentarios
Cuando un control Data se mueve de un registro a otro, pasa datos desde los campos del registro actual a controles
enlazados al campo especfico o todo el registro. Cuando se muestran datos en los controles enlazados, la propiedad
DataChanged se establece a False. Si el usuario o alguna otra operacin cambia el valor del control enlazado, la
propiedad DataChanged se establece a True. Si pasa a otro registro la propiedad DataChanged no se ve afectada.
Cuando el control Data comienza a pasar a otro registro, se produce el evento Validate. Si DataChanged es True para
algn control enlazado, el control Data invoca automticamente los mtodos Edit y Update para enviar los cambios a la
base de datos.
Si no desea guardar en la base de datos los cambios de un control enlazado, puede establecer la propiedad
DataChanged a False en el evento Validate.
Inspeccione el valor de la propiedad DataChanged en el cdigo para el evento Change de un control con el fin de evitar
eventos en cascada. Esto se aplica a controles enlazados y no enlazados.
Tipo de datos
Integer (Boolean)
15.10-DataField
Aplicable a:
Control CheckBox, Control ComboBox, Control Image, Control Label, Control ListBox, Control PictureBox, Control
TextBox.
Devuelve o establece un valor que enlaza un control a un campo del registro actual.
Sintaxis
Pgina 80 de 159
15.11-DataSource
Aplicable a:
Control CheckBox, Control ComboBox, Control Image, Control Label, Control ListBox, Control PictureBox.
Establece un valor que especifica el control Data a travs del cual el control actual se enlaza a una base de datos. No
est disponible en tiempo de ejecucin.
Comentarios
Para enlazar un control a un campo de una base de datos en tiempo de ejecucin, debe especificar un control Data en la
propiedad DataSource en tiempo de diseo desde la ventana Propiedades.
Para completar la conexin con un campo del objeto Recordset administrado por el control Data, tambin deber
proporcionar el nombre de un objeto Field en la propiedad DataField. A diferencia de la propiedad DataField, el valor
de la propiedad DataSource no est disponible en tiempo de ejecucin.
Tipo de datos
Pgina 81 de 159
15.12-Enabled
Aplicable a:
Control CheckBox, Control ComboBox, Control CommandButton, Control Data, Objeto Form, Control Frame,
Controles HScrollBar y VScrollBar, Control Image, Control Label, Control ListBox, Control Menu, Control
OptionButton, Control PictureBox, Control TextBox, Control Timer.
Devuelve o establece un valor que determina si un formulario o un control puede responder a eventos generados por el
usuario.
Sintaxis
objeto.Enabled [= booleano]
La sintaxis de la propiedad Enabled consta de las siguientes partes:
Parte
Descripcin
objeto
Una expresin de objeto que da como resultado un objeto de la lista Aplicable a. Si se omite
objeto, se supondr que el formulario asociado al mdulo del formulario activo es objeto.
Booleano Una expresin de tipo Boolean que especifica si objeto puede responder a eventos generados por
el usuario.
Valores
Los valores admitidos para booleano son:
Valor Descripcin
True
(Predeterminado) Permite que objeto responda a eventos.
False Impide que objeto responda a eventos.
Comentarios
La propiedad Enabled permite activar o desactivar formularios y controles en tiempo de ejecucin. Por ejemplo, puede
desactivar objetos que no se aplican al estado actual de la aplicacin. Tambin puede desactivar un control empleado
fundamentalmente con fines de presentacin, como un cuadro de texto que proporciona informacin de slo lectura.
Si desactiva un control Timer estableciendo Enabled a False cancelar la cuenta atrs establecida por la propiedad
Interval del control.
Pgina 83 de 159
15.14-FontName
Aplicable a:
Control CheckBox, Control ComboBox, Control CommandButton, Control Data, Objeto Form, Control Frame, Control
Label, Control ListBox, Control OptionButton, Control PictureBox, Control TextBox.
Devuelve o establece la fuente utilizada para mostrar texto en un control o en una operacin de dibujo o impresin en
tiempo de ejecucin.
Sintaxis
objeto.FontName [= fuente]
La sintaxis de la propiedad FontName consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
fuente Una expresin de cadena que especifica el nombre de la fuente que se va a utilizar.
Comentarios
El valor predeterminado de esta propiedad lo determina el sistema. Las fuentes disponibles en Visual Basic varan
dependiendo de la configuracin del sistema y de los dispositivos de presentacin e impresin. En las propiedades
relacionadas con fuentes slo pueden establecerse valores para los que exista una fuente.
En general, deber modificar FontName antes de establecer los atributos de tamao y estilo con las propiedades
FontSize, FontBold, FontItalic, FontStrikethru y FontUnderline.
Ejemplo de la propiedad FontName
En este ejemplo se escribe el nombre de cada fuente usando como fuente ella misma. Para probar este ejemplo, pegue el
cdigo en la seccin Declaraciones de un formulario. Presione F5 para ejecutar el programa y luego haga clic en el
formulario. Cada vez que haga clic en el formulario aparecer el nombre de la fuente.
Private Sub Form_Click ()
Static I
' Declarar variables.
Dim OldFont
OldFont = FontName
' Conservar la fuente original.
FontName = Screen.Fonts(I)
' Cambiar a una nueva fuente.
Print Screen.Fonts(I)
' Imprimir el nombre de la fuente.
I = I + 1 ' Incrementar el contador.
If I = FontCount Then I = 0
' Comenzar.
FontName = OldFont
' Restaurar la fuente original.
End Sub
15.15-FontSize
Aplicable a:
Control CheckBox, Control ComboBox, Control CommandButton, Control Data, Objeto Form, Control Frame, Control
Label, Control ListBox, Control OptionButton, Control PictureBox, Control TextBox.
Devuelve o establece el tamao de la fuente que se va a utilizar para el texto mostrado en un control o en una operacin
de dibujo.
Sintaxis
objeto.FontSize [= puntos]
Pgina 84 de 159
Comentarios
Utilice esta propiedad para dar al texto el tamao que desee. El valor predeterminado est determinado por el sistema.
Para cambiar este valor, especifique el nuevo tamao de la fuente en puntos.
El valor mximo de FontSize es 2160 puntos.
Nota Las fuentes disponibles en Visual Basic varan dependiendo de la configuracin del sistema y de los dispositivos
de presentacin e impresin. En las propiedades relacionadas con las fuentes slo pueden establecerse valores para los
que exista una fuente.
En general, deber modificar FontName antes de establecer los atributos de tamao y estilo con las propiedades
FontSize, FontBold, FontItalic, FontStrikethru y FontUnderline. Sin embargo, cuando especifique un tamao
inferior a 8 puntos para una fuente TrueType, primero deber establecer el tamao en puntos con la propiedad FontSize,
despus especificar la propiedad FontName y por ltimo establecer de nuevo el tamao con FontSize. El entorno
operativo Microsoft Windows utiliza una fuente distinta para las fuentes TrueType con un tamao inferior a 8 puntos.
Ejemplo de la propiedad FontSize
En este ejemplo se escribe texto en un formulario con uno de entre dos tamaos en puntos con cada clic del mouse. Para
probar este ejemplo, pegue el cdigo en la seccin Declaraciones de un formulario. Presione F5 para ejecutar el
programa y luego haga clic en el formulario.
Private Sub Form_Click ()
FontSize = 24
' Establecer FontSize.
Print "ste es un tipo de 24 puntos." ' Imprimir con el tipo grande.
FontSize = 8
' Establecer FontSize.
Print "ste es un tipo de 8 puntos."
'Imprimir con el tipo pequeo.
End Sub
15.16-Heigth, Width
Aplicable a:
Control CheckBox, Control ComboBox, Control CommandButton, Control Data, Objeto Form, Control Frame,
Controles HScrollBar y VScrollBar, Control Image, Control Label, Control ListBox, Control OptionButton, Control
PictureBox, Control Shape, Control TextBox.
Sintaxis
objeto.Height [= nmero]
objeto.Width [= nmero]
La sintaxis de las propiedades Height y Width consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
nmero Una expresin numrica que especifica las dimensiones del objeto, segn se indica en Valores.
Valores
Las medidas se calculan de la siguiente forma:
Form: alto y ancho externos del formulario, incluyendo los bordes y la barra de ttulo.
Control: se mide desde el centro del borde del control, de forma que los controles con anchos de borde distintos se
alineen correctamente. Estas propiedades utilizan las unidades de escala del contenedor de un control.
Comentarios
Pgina 85 de 159
15.17-Icon
Aplicable a:
Objeto Form.
Devuelve el icono que aparece al minimizar un formulario en tiempo de ejecucin.
Sintaxis
objeto.Icon
El marcador de posicin objeto representa una expresin de objeto que da como resultado un objeto de la lista Aplicable
a.
Comentarios
Utilice esta propiedad para especificar un icono para cualquier formulario que el usuario pueda minimizar en tiempo de
ejecucin.
Por ejemplo, puede asignar a un formulario un icono nico que indique su funcin. Especifique el icono cargndolo
mediante la ventana Propiedades en tiempo de diseo. El archivo que cargue debe tener la extensin .ico y el formato
correspondiente. Si no especifica ningn icono, se utilizar el icono predeterminado para los formularios en Visual
Basic.
Puede utilizar como origen de iconos la biblioteca de iconos de Visual Basic (ubicada en el subdirectorio Icons). Cuando
crea un archivo ejecutable, puede asignar un icono a la aplicacin mediante la propiedad Icon de cualquier formulario
de la misma.
Nota Puede ver un icono de formulario en la esquina superior izquierda del formulario en Windows 95, o cuando se
minimiza el formulario en Windows 95 y en Windows NT. Si el formulario est minimizado, el valor de la propiedad
BorderStyle debe ser 1 (Fixed Single, Simple fijo) o 2 (Sizable, Tamao ajustable), y el de la propiedad MinButton
debe ser True para que el icono sea visible.
En tiempo de ejecucin puede asignar el valor de la propiedad Icon de un objeto a la propiedad DragIcon o Icon de otro
objeto distinto. Tambin puede asignar un icono obtenido con la funcin LoadPicture. Si utiliza la funcin
Pgina 86 de 159
Pgina 87 de 159
15.19-ListCount
Aplicable a:
Control ComboBox, Control ListBox
Devuelve el nmero de elementos de la parte de lista de un control.
Sintaxis
objeto.ListCount
El marcador de posicin objeto representa una expresin de objeto que da como resultado un objeto de la lista Aplicable
a.
Comentarios
ListCount proporciona informacin especfica de cada control:
Controles ComboBox y ListBox: el nmero de elementos de la lista.
Si no hay seleccionado ningn elemento, el valor de la propiedad ListIndex es 1. El primer elemento de la lista
corresponde a ListIndex = 0 y ListCount es siempre una unidad mayor que el valor mximo de ListIndex.
Ejemplo de la propiedad ListCount
En este ejemplo se carga la lista de fuentes de impresora en un control ComboBox, se muestra el primer elemento de la
lista y se escribe el nmero total de fuentes. Cada vez que se hace clic en el botn de comando, todos los elementos de la
lista cambian a maysculas o a minsculas. Para probar este ejemplo, pegue el cdigo en la seccin Declaraciones de un
formulario que contenga un control ComboBox (Style = 2) y un control CommandButton, presione F5 y haga clic en
el control CommandButton.
Private Sub Form_Load ()
Dim I
' Declarar la variable.
AutoRedraw = True
' Establecer AutoRedraw.
For I = 0 To Printer.FontCount - 1 ' Poner los nombre de las fuentes en una lista.
Combo1.AddItem Printer.Fonts(I)
Next I
Combo1.ListIndex = 0
' Establecer el texto del primer elemento.
' Imprimir la informacin de ListCount en el formulario.
Print "Nmero de fuentes de impresora: "; Combo1.ListCount
End Sub
Private Sub Command1_Click ()
Static UpperCase
Dim I ' Declarar variable.
For I = 0 To Combo1.ListCount - 1' Bucle por la lista.
If UpperCase Then
Pgina 88 de 159
End Sub
15.20-ListIndex
Aplicable a:
Control ComboBox, Control ListBox
Devuelve o establece el ndice del elemento seleccionado actualmente en el control. No est disponible en tiempo de
diseo.
Sintaxis
objeto.ListIndex [= ndice]
La sintaxis de la propiedad ListIndex consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
ndice Una expresin numrica que especifica el ndice del elemento actual, segn se indica en Valores.
Valores
Los valores admitidos para ndice son:
Valor Descripcin
1
(Predeterminado para los controles ComboBox) Indica que actualmente no hay ningn elemento
seleccionado. Para un control ComboBox indica que el usuario ha escrito texto nuevo en la parte de
cuadro de texto.
n
(Predeterminado para los controles ListBox) Nmero que indica el ndice del elemento seleccionado
actualmente.
Comentarios
La expresin List(List1.ListIndex) devuelve la cadena correspondiente al elemento seleccionado actualmente.
El primer elemento de la lista corresponde a ListIndex = 0 y ListCount es siembre una unidad mayor que el valor
mximo de ListIndex.
Ejemplo de la propiedad ListIndex
En este ejemplo se muestran los nombres de tres jugadores en un control ListBox y el sueldo del jugador seleccionado
en un control Label. Para probar este ejemplo, pegue el cdigo en la seccin Declaraciones de un formulario que
contenga un control ComboBox y un control Label, presione F5 y elija un nombre en el control ComboBox.
Dim Player(0 To 2)
' Dimensionar dos matrices.
Dim Salary(0 To 2)
Private Sub Form_Load ()
Dim I ' Declarar variable.
AutoSize = True
Player(0) = "Daniel Rendich"
' Introducir los datos en las matrices.
Player(1) = "Federico Couto"
Player(2) = "Ernesto Mndez"
Pgina 89 de 159
15.21-Locked
Aplicable a:
Control TextBox
Devuelve o establece un valor que indica si un control se puede modificar.
Sintaxis
objeto.Locked [ = booleano]
La sintaxis de la propiedad Locked consta de las siguientes partes:
Parte
Descripcin
objeto
Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
Booleano Una expresin booleana que especifica si el control se puede modificar, como se describe en
Valores.
Valores
Los valores admitidos para booleano son:
Valor Descripcin
True
Control TextBox: el texto del control se puede desplazar y resaltar, pero no se puede modificar. El
programa puede cambiar el texto si cambia la propiedad Text.
False Control TextBox: puede modificar el texto del control.
15.22-MousePointer
Aplicable a:
Control CheckBox, Control ComboBox, Control CommandButton, Control Data, Objeto Form Control Frame,
Controles HScrollBar y VScrollBar, Control Image, Control Label, Control ListBox, Control OptionButton, Control
PictureBox, Control TextBox.
Devuelve o establece un valor que indica el tipo de puntero de mouse que aparece cuando se sita el mouse sobre un
rea determinada de un objeto en tiempo de ejecucin.
Sintaxis
objeto.MousePointer [= valor]
La sintaxis de la propiedad MousePointer consta de las siguientes partes:
Pgina 90 de 159
Descripcin
Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
Un nmero entero que especifica el tipo de puntero de mouse que aparece, segn se describe en
Valores.
Valores
Los valores admitidos para valor son:
Constante
Valor
Descripcin
vbDefault
0
(Predeterminado) Forma determinada por el objeto.
VbArrow
1
Flecha.
VbCrosshair
2
Cruz (puntero en forma de cruz).
VbIbeam
3
Forma de I.
VbIconPointer
4
Icono (pequeo cuadrado dentro de otro cuadrado).
VbSizePointer
5
Tamao (flecha de cuatro puntas: norte, sur, este y oeste).
VbSizeNESW
6
Tamao NE SO (flecha doble que apunta al nordeste y al sudoeste).
VbSizeNS
7
Tamao N S (flecha doble que apunta al norte y al sur).
VbSizeNWSE
8
Tamao NO SE (flecha doble que apunta al noroeste y al sudeste).
VbSizeWE
9
Tamao O E (flecha doble que apunta al oeste y al este).
VbUpArrow
10
Flecha hacia arriba.
VbHourglass
11
Reloj de arena (espera).
VbNoDrop
12
No colocar.
VbArrowHourglass
13
Flecha y reloj de arena.
VbArrowQuestion
14
Flecha y signo de interrogacin.
vbSizeAll
15
Ajustar todo.
vbCustom
99
Icono personalizado especificado en la propiedad MouseIcon.
Comentarios
Puede utilizar esta propiedad cuando desee indicar los cambios en la funcionalidad al desplazar el puntero del mouse por
los controles de un formulario o cuadro de dilogo. La opcin de reloj de arena (11) es til para indicar que el usuario
debe esperar a que termine un proceso u operacin.
Ejemplo de la propiedad MousePointer
En este ejemplo se cambia el puntero del mouse por un reloj de arena mientras se dibujan crculos en la pantalla y al
final del procedimiento el puntero adopta la forma que tena originalmente. Para probar este ejemplo, pegue el cdigo en
la seccin Declaraciones de un formulario. Presione F5 para ejecutar el programa y luego haga clic en el formulario.
Private Sub Form_Click ()
Dim I ' Declara una variable.
' Cambia el puntero del mouse por un reloj de arena.
Screen.MousePointer = vbHourglass
' Establece un color aleatorio y dibuja crculos en el formulario.
For I = 0 To ScaleWidth Step 50
ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Circle (I, ScaleHeight * Rnd), 400
Next
' Vuelve al puntero normal.
Screen.MousePointer = vbDefault
End Sub
15.23-Multiline
Aplicable a:
Pgina 91 de 159
Sintaxis
objeto.MultiLine
El marcador de posicin objeto representa una expresin de objeto que da como resultado un objeto de la lista
Aplicable a.
Valores
Los valores admitidos para la propiedad MultiLine son:
Valor Descripcin
True
Permite mltiples lneas de texto.
False (Predeterminado) Pasa por alto los retornos de carro y restringe los datos a una nica lnea.
Comentarios
Los controles TextBox de mltiples lneas ajustan el texto a la lnea siguiente cuando el usuario se extiende ms all del
cuadro de texto.
Tambin puede agregar barras de desplazamiento a los controles TextBox ms grandes, utilizando para ello la propiedad
ScrollBars. Si no se especifica un control de barra de desplazamiento horizontal, el texto de los controles TextBox de
mltiples lneas se ajustar automticamente a la lnea siguiente.
Nota En los formularios sin ningn botn predeterminado, al presionar ENTRAR en un control TextBox de mltiples
lneas, el enfoque pasa a la lnea siguiente. Si existe un botn predeterminado, deber presionar CTRL+ENTRAR para
pasar a la lnea siguiente.
15.24-Name
Aplicable a:
Control CheckBox, Control ComboBox, Control CommandButton, Control Data, Objeto Form, Control Frame,
Controles HScrollBar y VScrollBar, Control Image, Control Label, Control Line, Control Menu, Control OptionButton,
Control PictureBox, Control Shape, Control TextBox, Control Timer.
Devuelve el nombre utilizado en el cdigo para identificar un formulario, un control o un objeto de acceso a datos. Es de
slo lectura en tiempo de ejecucin.
Sintaxis
objeto.Name
El marcador de posicin objeto representa una expresin de objeto que da como resultado un objeto de la lista
Aplicable a. Si se omite objeto, se supondr que el formulario asociado al mdulo del formulario activo es objeto.
Comentarios
El nombre predeterminado para objetos nuevos es el tipo de objeto y un entero nico. Por ejemplo, el primer objeto
Form nuevo ser Form1 y el tercer control TextBox que cree en un formulario ser Text3.
La propiedad Name de un objeto debe comenzar por una letra y puede tener un mximo de 40 caracteres. Puede incluir
nmeros y caracteres de subrayado (_), pero no signos de puntuacin ni espacios en blanco. Aunque el valor de la
propiedad Name puede ser una palabra clave, un nombre de propiedad o el nombre de otro objeto, esto puede crear
conflictos en el cdigo.
Pgina 92 de 159
15.25-NewIndex
Aplicable a:
Control ComboBox, Control ListBox.
Devuelve el ndice del ltimo elemento agregado a un control ComboBox o ListBox. Es de slo lectura en tiempo de
ejecucin.
Sintaxis
objeto.NewIndex
El marcador de posicin objeto representa una expresin de objeto que da como resultado un objeto de la lista
Aplicable a.
Comentarios
Puede utilizar esta propiedad con listas ordenadas cuando necesite una lista de valores asociados a cada elemento de la
matriz de la propiedad ItemData. Al agregar un elemento a una lista ordenada, Visual Basic lo inserta en orden
alfabtico. Esta propiedad indica la posicin en la que se ha insertado el elemento, de forma que pueda insertar el valor
correspondiente en la propiedad ItemData con el mismo ndice.
La propiedad NewIndex devuelve -1 cuando no hay ningn elemento en la lista o cuando se ha eliminado un elemento
despus de agregar el ltimo elemento.
15.26-ItemData
Aplicable a:
Control ComboBox, Control ListBox.
Devuelve o establece un nmero especfico para cada elemento de un control ComboBox o ListBox.
Sintaxis
objeto.ItemData(ndex) [= nmero]
La sintaxis de la propiedad ItemData consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
ndice El nmero de un elemento concreto del objeto.
nmero El nmero que se asocia con el elemento especificado.
Comentarios
La propiedad ItemData es una matriz de valores enteros largos cuyo nmero de elementos es el valor de la propiedad
List de un control. Puede utilizar los nmeros asociados con cada elemento para identificar los elementos. Por ejemplo,
puede usar un nmero de identificacin de empleado para identificar cada nombre de empleado de un control ListBox.
Pgina 93 de 159
15.27-PassWordChar
Aplicable a:
Control TextBox.
Devuelve o establece un valor que indica si en un control TextBox aparecen los caracteres que escribe el usuario o un
carcter marcador de posicin. Devuelve o establece el carcter utilizado como marcador de posicin.
Sintaxis
objeto.PasswordChar [= valor]
La sintaxis de la propiedad PasswordChar consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
Pgina 94 de 159
Comentarios
Utilice esta propiedad para crear un campo de contrasea en un cuadro de dilogo. Aunque puede utilizarse cualquier
carcter como marcador de posicin, la mayora de las aplicaciones para Windows usan el asterisco (*) (Chr(42)).
Esta propiedad no afecta a la propiedad Text, que contiene exactamente lo que haya escrito el usuario o lo que se haya
establecido con el cdigo. Para mostrar el texto real, establezca PasswordChar a una cadena de longitud cero (""), que
es la opcin predeterminada.
Puede asignar cualquier cadena a esta propiedad, pero slo ser significativo el primer carcter, pasndose por alto todos
los dems.
Nota Si la propiedad MultiLine est establecida a True, la propiedad PasswordChar no tendr efecto.
15.28-Picture
Aplicable a:
Control CheckBox, Control CommandButton, Objeto Form, Control Image, Control OptionButton, Control PictureBox.
Devuelve o establece un grfico que se mostrar en un control.
Sintaxis
objeto.Picture [= imagen]
La sintaxis de la propiedad Picture consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
imagen Una expresin de cadena que especifica un archivo que contiene un grfico, segn se indica en Valores.
Valores
Los valores admitidos para imagen son:
Valor
(Ninguno)
(Mapa de bits, icono, metarchivo, GIF, JPEG))
Descripcin
(Predeterminado) Ninguna imagen.
Especifica un grfico que puede cargar mediante la ventana
Propiedades en tiempo de diseo. En tiempo de ejecucin
tambin puede establecer esta propiedad, utilizando la
funcin LoadPicture con un mapa de bits, un icono o un
metarchivo.
Pgina 95 de 159
Comentarios
En tiempo de diseo, puede transferir un grfico con el Portapapeles mediante los comandos Copiar, Cortar y Pegar
del men Edicin.
Al establecer la propiedad Picture en tiempo de diseo, el grfico se guarda y se carga con el formulario. Si crea un
archivo ejecutable, la imagen estar contenida en l. Los grficos cargados en tiempo de ejecucin no se guardan con la
aplicacin.
Nota En tiempo de ejecucin puede establecer la propiedad Picture al valor de la propiedad Icon, Image o Picture de
cualquier otro objeto y tambin se le puede asignar un grfico devuelto por la funcin LoadPicture.
Ejemplo de la propiedad Picture
En este ejemplo se cargan iconos de la biblioteca de iconos de Visual Basic en dos controles PictureBox. Al hacer clic
en el formulario, el tercer control PictureBox se utiliza para intercambiar los otros dos. Puede utilizar dos iconos
cualesquiera. Pegue el cdigo en la seccin Declaraciones de un formulario que contenga tres controles PictureBox
(para Picture3, establezca Visible = False). Presione F5 para ejecutar el programa y luego haga clic en el formulario.
Private Sub Form_Load ()
' Cargar los iconos.
Picture1.Picture = LoadPicture("ICONOS\EQUIPO\PAPEL02A.ICO")
Picture2.Picture = LoadPicture("ICONOS\EQUIPO\PAPEL02B.ICO")
End Sub
Private Sub Form_Click ()
' Cambiar los iconos.
Picture3.Picture = Picture1.Picture
Picture1.Picture = Picture2.Picture
Picture2.Picture = Picture3.Picture
' Borrar la tercera imagen (no es necesario si no est visible).
Picture3.Picture = LoadPicture()
End Sub
15.29-Recordset
Aplicable a:
Control Data.
Devuelve o establece un objeto Recordset definido por las propiedades de un control Data o por un objeto Recordset
existente.
Sintaxis
Set objeto.Recordset [= valor ]
La sintaxis de la propiedad Recordset consta de estas partes:
Parte Descripcin
objeto Una expresin de objeto cuyo resultado es un objeto de la lista Aplicable a.
valor Una variable de objeto que contiene un objeto Recordset.
Comentarios
El control Data se inicializa automticamente cuando se inicia la aplicacin antes del procedimiento inicial Form_Load.
Si son vlidas las propiedades Connect, DatabaseName, Options, RecordSource, Exclusive, ReadOnly y
Pgina 96 de 159
Pgina 97 de 159
15.30-RecordsetType
Aplicable a:
Control Data.
Devuelve o establece un valor que indica el tipo de objeto Recordset que desea que cree el control Data.
Sintaxis
objeto.RecordsetType [= valor ]
La sintaxis de la propiedad RecordsetType consta de estas partes:
Parte Descripcin
objeto Una expresin de objeto cuyo resultado es un objeto de la lista Aplicable a
valor Una constante o un valor que indica el tipo de Recordset, como se describe en Valores
Valores
Los valores admitidos para valor son los siguientes:
Configuracin
Valor
Descripcin
VbRSTypeTable
0
Un Recordset de tipo table
vbRSTypeDynaset
1
(Predeterminado) Un Recordset de tipo dynaset
vbRSTypeSnapshot
2
Un Recordset de tipo snapshot
Comentarios
Si el motor de base de datos Microsoft Jet no puede crear el tipo de Recordset que ha solicitado, se produce un error
interceptable.
Si no especifica un RecordsetType antes de que el control Data cree el Recordset, se crear si es posible un Recordset
de tipo dynaset.
En la mayora de los casos, el tipo predeterminado y la configuracin del objeto Recordset que se ha creado es poco
eficiente. Es decir, puede que no necesite un cursor actualizable, con desplazamiento completo y basado en claves para
tener acceso a los datos. Por ejemplo, un Recordset de tipo snapshot con desplazamiento slo hacia adelante de slo
lectura puede ser ms rpido de crear que el cursor predeterminado. Asegrese de que elige el tipo ms eficiente
estableciendo las propiedades RecordsetType, Exclusive, Options y ReadOnly segn su situacin.
Tipo de datos
Integer
Ejemplo de la propiedad RecordsetType
Este ejemplo utiliza el control Data para crear un objeto Recordset y examina la propiedad RecordsetType del control
Data para determinar el tipo de conjunto de registros creado.
Sub DisplayRecordsetType()
' Indica el tipo de Recordset deseado.
Data1.RecordsetType = vbRSTypeDynaset
Data1.DatabaseName = "BIBLIO.MDB"
Data1.RecordSource = "Authors"
Data1.Refresh
Select Case Data1.RecordsetType
Case vbRSTypeTable
Debug.print "Creado Recordset de tipo Table."
Case vbRSTypeDynaset
Debug.print "Creado Recordset de tipo Dynaset."
Pgina 98 de 159
15.31-RecordSource
Aplicable a:
Control Data.
Devuelve o establece la tabla, la instruccin SQL o el objeto QueryDef subyacente para un control Data.
Sintaxis
Objeto.RecordSource [= valor]
La sintaxis de la propiedad RecordSource consta de estas partes:
Parte Descripcin
objeto Una expresin de objeto cuyo resultado es un objeto de la lista Aplicable a.
valor Una expresin de cadena que especifica un nombre, como se describe en Valores.
Valores
Los valores admitidos para valor son los siguientes:
Valor
Descripcin
Un nombre de tabla
El nombre de una de las tablas definidas en la coleccin TableDefs del objeto
Database.
Una consulta SQL
Una cadena SQL vlida que utiliza una sintaxis apropiada para el origen de datos.
Un QueryDef
El nombre de uno de los objetos QueryDef de la coleccin QueryDefs del objeto
Database, al tener acceso a una base de datos de Jet.
Comentarios
La propiedad RecordSource especifica el origen de los registros accesibles a travs de controles enlazados del
formulario.
Si establece la propiedad RecordSource al nombre de una tabla existente en la base de datos, todos los campos de esa
tabla sern visibles en los controles enlazados adjuntos al control Data. Para conjuntos de registros de tipo table
(RecordsetType = vbRSTypeTable), el orden de los registros recuperados lo establece el objeto Index que se
selecciona mediante la propiedad Index del Recordset. Para objetos Recordset de tipo dynaset y snapshot, puede
ordenar los registros usando una instruccin SQL con una clusula Order By en la propiedad RecordSource del control
Data. De lo contrario, los datos se devuelven sin ningn orden en particular.
Si establece la propiedad RecordSource al nombre de un objeto QueryDef existente en la base de datos, todos los
campos devueltos por QueryDef sern visibles para los controles enlazados adjuntos al control Data. El orden de los
registros recuperados lo establece la consulta del objeto QueryDef. Por ejemplo, QueryDef puede incluir una clusula
ORDER BY para cambiar el orden de los registros que devuelve el objeto Recordset creado por el control Data o una
clusula WHERE para filtrar los registros. Si el objeto QueryDef no especifica ningn orden, los datos se devolvern
sin ningn orden concreto.
Nota En tiempo de diseo, los objetos QueryDef mostrados en la ventana Propiedades para la propiedad
RecordSource se filtran para mostrar nicamente los objetos QueryDef que se pueden utilizar con el control Data. No
se muestran los objetos QueryDef que tengan parmetros.
Si establece la propiedad RecordSource a una instruccin SQL que devuelve registros, todos los campos devueltos por
la consulta SQL sern visibles para los controles enlazados adjuntos al control Data. Esta instruccin puede incluir una
clusula ORDER BY para cambiar el orden de los registros devueltos por el objeto Recordset creado por el control
Data o una clusula WHERE para filtrar los registros.
Pgina 99 de 159
String
15.32-Shape
Aplicable a
Control Shape
Devuelve o establece un valor que indica la apariencia de un control Shape.
Sintaxis
objeto.Shape [= valor]
La sintaxis de la propiedad Shape consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
valor Un nmero entero que especifica la apariencia del control, segn se describe en Valores.
Valores
Los valores admitidos para valor son:
Constante
Valor Descripcin
vbShapeRectangle
0 (Predeterminado) Rectngulo
vbShapeSquare
1 Cuadrado
vbShapeOval
2 Elipse
vbShapeCircle
3 Crculo
VbShapeRoundedRectangle 4 Rectngulo redondeado
VbShapeRoundedSquare
5 Cuadrado redondeado
Ejemplo de la propiedad Shape
En este ejemplo se ilustran las seis posibles formas del control Shape. Para probarlo, pegue el cdigo en la seccin
Declaraciones de un formulario que contenga un control OptionButton y un control Shape. En el OptionButton,
establezca a 0 la propiedad Index para crear una matriz de controles de un elemento y presione F5. Haga clic en cada
control OptionButton para ver una forma distinta.
Private Sub Form_Load ()
Pgina 100 de 159
Comentarios
La propiedad SQL contiene la instruccin SQL que determina cmo se seleccionan, agrupan y ordenan los registros
cuando se ejecuta la consulta. Puede utilizar la consulta para seleccionar registros a incluir en un objeto Recordset de
tipo Dynaset o Snapshot. Tambin puede definir consultas para modificar datos sin devolver registros.
La sintaxis SQL utilizada en una consulta debe ser acorde con el dialecto SQL del motor de consulta, que est
determinado por el tipo de espacio de trabajo. En un espacio de trabajo Microsoft Jet, utilice el lenguaje SQL de
Microsoft Jet.
Ejemplo de la propiedad SQL
Este ejemplo demuestra la propiedad SQL estableciendo y modificando la propiedad SQL de un QueryDef temporal y
comparando los resultados. Se necesita la funcin SalidaSQL para ejecutar este procedimiento.
Sub SQLX()
Dim dbsNeptuno As Database
Dim qdfTemp As QueryDef
Dim rstEmpleados As Recordset
Set dbsNeptuno = OpenDatabase("Neptuno.mdb")
Set qdfTemp = dbsNeptuno.CreateQueryDef("")
' Abre un Recordset utilizando un objeto QueryDef
' temporal e imprime un informe.
SalidaSQL "SELECT * FROM Empleados " & _
"WHERE Pas = 'Espaa' " & _
"ORDER BY Apellidos", qdfTemp
Pgina 101 de 159
15.34-Stretch
Aplicable a
Control Image
Devuelve o establece un valor que indica si un grfico cambia su tamao para ajustarse al de un control Image.
Sintaxis
objeto.Stretch [= booleano]
La sintaxis de la propiedad Stretch consta de las siguientes partes:
Parte
Descripcin
objeto
Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
Booleano Una expresin de tipo Boolean que especifica si el grfico cambia su tamao, como se describe en Valores.
Valores
Los valores admitidos para booleano son:
Valor Descripcin
True
El grfico cambia de tamao para ajustarse al del control.
False (Predeterminado) El control cambia de tamao para ajustarse al del grfico.
Comentarios
Si Stretch tiene el valor True, al cambiar el tamao del control tambin se cambiar el del grfico que contenga.
Pgina 102 de 159
15.35-Style
Aplicable a
Control CheckBox, Control ComboBox, Control CommandButton, Control ListBox, Control OptionButton
Devuelve o establece un valor que indica el tipo de muestra y el comportamiento del control. Es de slo lectura en
tiempo de ejecucin.
Sintaxis
Pgina 103 de 159
15.36-TabIndex
Aplicable a
Control CheckBox, Control ComboBox, Control CommandButton, Control Frame, Controles HScrollBar y VScrollBar,
Control Label, Control ListBox, Control OptionButton, Control PictureBox, Control TextBox.
Devuelve o establece el orden de tabulacin de la mayora de los objetos dentro de su formulario.
Sintaxis
objeto.TabIndex [= ndice]
La sintaxis de la propiedad TabIndex consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
ndice Un nmero entero entre 0 y (n1), donde n es el nmero de controles del formulario que tienen la propiedad
TabIndex. Al asignar a TabIndex un valor inferior a 0 se produce un error.
Comentarios
De forma predeterminada, Visual Basic asigna un orden de tabulacin a los controles cuando se van agregando a un
formulario, con la excepcin de los controles Menu, Timer, Data, Image, Line y Shape, que no se incluyen en el orden
de tabulacin. En tiempo de ejecucin, los controles invisibles o deshabilitados y los controles que no pueden recibir el
enfoque (controles Frame y Label) permanecen en el orden de tabulacin pero se pasan por alto al tabular.
Cada control nuevo se sita el ltimo en el orden de tabulacin. Si modifica el valor de la propiedad TabIndex de un
control para cambiar el orden predeterminado, Visual Basic renumerar automticamente la propiedad TabIndex de los
controles restantes para reflejar las inserciones y eliminaciones. Puede efectuar los cambios en tiempo de diseo
mediante la ventana propiedades o en tiempo de ejecucin a travs de cdigo.
Nota El orden de tabulacin de un control no afecta a su tecla de acceso asociada. Si presiona la tecla de acceso de un
control Frame o Label, el enfoque pasar al siguiente control del orden de tabulacin que pueda recibir el enfoque.
15.37-TabStop
Aplicable a
Control CheckBox, Control ComboBox, Control CommandButton, Controles HScrollBar y VScrollBar, Control
ListBox, Control OptionButton, Control PictureBox, Control TextBox,
Devuelve o establece un valor que indica si el usuario puede utilizar la tecla TAB para llevar el enfoque a un objeto.
Sintaxis
objeto.TabStop [= booleano]
La sintaxis de la propiedad TabStop consta de las siguientes partes:
Parte
Descripcin
objeto
Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
Booleano Una expresin de tipo Boolean que especifica si el objeto es un tabulador, como se describe en Valores.
Valores
Los valores admitidos para booleano son:
Valor Descripcin
True
(Predeterminado) Designa el objeto como un tabulador.
False Hace que se salte el objeto en la tabulacin, aunque el objeto mantiene su lugar en el orden de tabulacin real,
determinado en la propiedad TabIndex.
Comentarios
Esta propiedad permite agregar o quitar un control del orden de tabulacin de un formulario. Por ejemplo, si utiliza un
control PictureBox para dibujar un grfico, establezca a False su propiedad TabStop para que el usuario no pueda
situarse en el control PictureBox.
15.38-Tag
Aplicable a
Control CheckBox, Control ComboBox, Control CommandButton, Control Data, Objeto Form Control Frame,
Controles HScrollBar y VScrollBar, Control Image, Control Label, Control Line, Control ListBox, Control Menu,
Control OptionButton, Control PictureBox, Control Shape, Control TextBox, Control Timer.
Devuelve o establece una expresin que almacena cualquier dato adicional que necesite el programa. Al contrario de lo
que sucede con otras propiedades, Visual Basic no utiliza el valor de Tag. Puede utilizar esta propiedad para identificar
objetos.
Sintaxis
objeto.Tag [= expresin]
La sintaxis de la propiedad Tag consta de las siguientes partes:
Parte
Descripcin
objeto
Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
Expresin Una expresin de cadena que identifica el objeto. El valor predeterminado es una cadena de longitud cero ("").
Comentarios
Puede utilizar esta propiedad para asignar una cadena de identificacin a un objeto sin afectar al resto de sus propiedades
ni causar efectos secundarios.
15.39-Text
Aplicable a
Control ComboBox, Control ListBox, Control TextBox
Control ComboBox (propiedad Style con el valor 0 [cuadro combinado desplegable] o 1 [cuadro combinado
simple]) y control TextBox: devuelve o establece el texto contenido en el rea de edicin.
Control ComboBox (propiedad Style con el valor 2 [cuadro combinado desplegable]) y control ListBox: devuelve
el elemento seleccionado en el cuadro de lista; el valor de retorno es siempre equivalente al que devuelve la
expresin List(ListIndex). Es de slo lectura en tiempo de diseo y es de slo lectura en tiempo de ejecucin.
Sintaxis
objeto.Text [= cadena]
La sintaxis de la propiedad Text consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
cadena Una expresin de cadena que especifica el texto.
Comentarios
Solamente en tiempo de diseo, los valores predeterminados de la propiedad Text son:
Controles ComboBox y TextBox: la propiedad Name del control.
Control ListBox: una cadena de longitud cero ("").
Pgina 107 de 159
15.40-ToolTipText
Aplicable a
Objeto Button, Control CheckBox, Control ComboBox, Control CommandButton, Control Data, Control Frame,
Control Image, Control Label, Control ListBox, Control OptionButton, Control PictureBox, Control TextBox.
Devuelve o establece Informacin sobre herramientas.
Sintaxis
objeto.ToolTipText [= cadena]
La sintaxis de la propiedad ToolTipText consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
cadena Una cadena asociada con un objeto de la lista Aplicable a que aparece durante un segundo aproximadamente en un
pequeo rectngulo debajo del objeto cuando el cursor del usuario pasa por encima del objeto en tiempo de ejecucin.
Comentarios
Si usa nicamente una imagen para identificar un objeto, puede usar esta propiedad para explicar con pocas palabras
cada uno de esos objetos.
En tiempo de diseo puede establecer la cadena de la propiedad ToolTipText en el cuadro de dilogo de propiedades
del control.
15.41-Value
Aplicable a
Control CheckBox, Control CommandButton, Controles HScrollBar y VScrollBar, Control OptionButton
Control CommandButton: devuelve o establece un valor que indica si se ha elegido el botn. No est disponible en
tiempo de diseo.
Controles HScrollBar y VScrollBar (barras de desplazamiento horizontal y vertical): devuelve o establece la
posicin actual de la barra de desplazamiento, cuyo valor de retorno se encuentra siempre entre los valores de las
propiedades Max y Min, inclusive.
Sintaxis
objeto.Value [= valor]
La sintaxis de la propiedad Value consta de las siguientes partes:
Parte Descripcin
objeto Una expresin de objeto que da como resultado un objeto de la lista Aplicable a.
valor Un valor que especifica el estado, contenido o posicin de un control, segn se indica en Valores.
Valores
Los valores admitidos para valor son:
Control CheckBox: 0 es desactivado (predeterminado), 1 es activado y 2 es atenuado.
Control CommandButton: True indica que se ha elegido el botn y False (predeterminado) indica que no se ha
elegido. Al establecer a True la propiedad Value se invoca el evento Click del botn.
Controles HScrollBar y VScrollBar: establece valores entre 32.768 y 32.767 para situar el cuadro de
desplazamiento.
Control OptionButton: True indica que el botn est seleccionado y False (predeterminado) que no lo est.
Ejemplo de la propiedad Value
En este ejemplo se muestra el valor numrico de un control HScrollBar (barra de desplazamiento horizontal) en un
control TextBox. Para probar este ejemplo, pegue el cdigo en la seccin Declaraciones de un formulario que contenga
un control TextBox y un control HScrollBar. Presione F5 para ejecutar el programa y haga clic en la barra de
desplazamiento.
Private Sub Form_Load ()
HScroll1.Min = 0
' Inicializar la barra de desplazamiento.
HScroll1.Max = 1000
HScroll1.LargeChange = 100
HScroll1.SmallChange = 1
End Sub
Private Sub HScroll1_Change ()
Text1.Text = Format (HScroll1.Value)
End Sub
15.42-Visible
Aplicable a
Control CheckBox, Control ComboBox, Control CommandButton, Control Data, Objeto Form Control Frame,
Controles HScrollBar y VScrollBar, Control Image, Control Label, Control Line, Control ListBox, Control
Menu, Control OptionButton, Control PictureBox, Control Shape, Control TextBox
Devuelve o establece un valor que indica si un objeto es visible o est oculto.
Sintaxis
objeto.Visible [= booleano]
15.43-WindowState
Aplicable a
Objeto Form.
16- Operadores.
16.1-Operadores Aritmticos.
Operadores utilizados para ejecutar clculos matemticos.
16.2-Operadores de Comparacin.
Operadores utilizados para efectuar comparaciones.
Se utilizan para comparar expresiones.
Sintaxis
resultado = expresin1 operadorcomparacin expresin2
resultado = cadena Like patrn
Los operadores de comparacin constan de las siguientes partes:
Parte
Descripcin
resultado
Obligatorio; cualquier variable numrica.
expresin
Obligatorio; cualquier expresin.
operadorcomparacin
Obligatorio; cualquier operador de comparacin.
cadena
Obligatorio; cualquier expresin de cadena.
patrn
Obligatorio; cualquier expresin de cadena o intervalo de caracteres.
Operador Like:
Se utiliza para comparar dos cadenas de caracteres.
Sintaxis
resultado = cadena Like patrn
La sintaxis del operador Like consta de las siguientes partes:
Parte
Descripcin
Resultado Obligatorio; cualquier variable numrica.
cadena
Obligatorio; cualquier expresin de cadena.
Pgina 112 de 159
16.3-Operadores de Concatenacin.
Operadores utilizados para combinar cadenas de caracteres.
Operador &: Se utiliza para forzar la concatenacin de las cadenas de dos expresiones.
resultado = expresin1 & expresin2
16.4-Operadores Lgicos.
Operadores usados para realizar operaciones lgicas.
Operador And:
Se utiliza para efectuar una conjuncin lgica de dos expresiones.
resultado = expresin1 And expresin2
La sintaxis del operador And consta de las siguientes partes:
Parte
Descripcin
resultado
Obligatorio; cualquier variable numrica.
expresin1
Obligatorio; cualquier expresin.
expresin2
Obligatorio; cualquier expresin.
Si y slo si ambas expresiones se evalan como True, el resultado es True. Si cualquiera de las expresiones es False, el
resultado es False. La siguiente tabla ilustra cmo se determina el resultado:
Operador Not: Se utiliza para ejecutar una negacin lgica sobre una expresin.
resultado = Not expresin
Operador Or: Se utiliza para ejecutar una disyuncin lgica sobre dos expresiones.
resultado = expresin1 Or expresin2
17.2-Date
Devuelve un tipo Variant (Date) que contiene la fecha actual del sistema.
Sintaxis
Date
Comentarios
Utilice la instruccin Date para establecer la fecha del sistema.
17.3-DateDiff
Devuelve un valor de tipo Variant (Long) que especifica el nmero de intervalos de tiempo entre dos fechas
determinadas.
Sintaxis
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
La sintaxis de la funcin DateDiff consta de los siguientes argumentos con nombre:
Parte
Descripcin
interval
Requerido. Expresin de tipo cadena con el intervalo de tiempo utilizado para calcular la
diferencia entre date1 y date2.
date1, date2
Se requiere; Variant (Date). Las dos fechas que se van a utilizar en el clculo.
firstdayofweek Opcional. Constante que especifica el primer da de la semana. Si no se especifica, se asume
que es el domingo.
firstweekofyear Opcional. Constante, que especifica la primera semana del ao. Si no se especifica, se
asume que es aqulla en la que se encuentre el 1 de enero.
Valores
El argumento interval toma los valores siguientes:
Intervalo Descripcin
yyyy
Ao
q
Trimestre
m
Mes
y
Da del ao
d
Da
w
Da de la semana
ww
Semana
h
Hora
n
Minuto
Pgina 114 de 159
Segundo
0
1
2
3
4
5
6
7
17.4-DoEvents
Cede el control de la ejecucin al sistema operativo, para que ste pueda procesar otros eventos.
Sintaxis
DoEvents( )
Comentarios
La funcin DoEvents devuelve un tipo Integer que representa el nmero de formularios abiertos por una versin
independiente de Visual Basic, como la de Visual Basic edicin estndar. DoEvents devuelve 0 en el resto de las
aplicaciones.
La funcin DoEvents pasa el control al sistema operativo. El control no se devuelve hasta que el sistema operativo haya
terminado de procesar los eventos en cola y se hayan enviado todas las teclas de la cola SendKeys.
DoEvents es ms til para tareas sencillas como permitir que un usuario cancele un proceso despus de que ha
comenzado, por ejemplo una bsqueda de un archivo.
Pgina 115 de 159
17.5-Format
Devuelve un tipo Variant (String) que contiene una expresin formateada de acuerdo a las instrucciones contenidas en
una expresin de formato.
Sintaxis
Format(expresin[, formato[, primerdadesemana[, primerdadeao]]])
La sintaxis de la funcin Format consta de las siguientes partes:
Parte
Descripcin
expresin
Obligatorio. Cualquier expresin vlida.
formato
Opcional. Una expresin de formato definida por el usuario o con nombre vlida.
primerdadesemana
Opcional. Una constante que especifica el primer da de la semana.
primerdadeao
Opcional. Una constante que especifica la primera semana del ao.
Valores
El argumento primerdadesemana tiene estos valores:
Constante
Valor Descripcin
vbUseSystem 0
Utiliza el valor de API NLS.
VbSunday
1
Domingo (predeterminado)
vbMonday
2
Lunes
vbTuesday
3
Martes
vbWednesday 4
Mircoles
vbThursday
5
Jueves
vbFriday
6
Viernes
vbSaturday
7
Sbado
El argumento primerdadeao tiene estos valores:
Constante
Valor
Descripcin
vbUseSystem
0
Utiliza el valor de API NLS.
vbFirstJan1
1
Comienza con la semana donde est el 1 de enero (predeterminado).
vbFirstFourDays
2
Comienza con la primera semana del ao que tenga cuatro das como
mnimo.
vbFirstFullWeek
3
Comienza con la primera semana completa del ao.
Comentarios
Pgina 116 de 159
17.6-Iif
Devuelve uno de entre dos valores, dependiendo de la evaluacin de una expresin.
Sintaxis
IIf(expr, truepart, falsepart)
La sintaxis de la funcin IIf cuenta con los siguientes argumentos con nombre:
Parte
Descripcin
expr
Requerido. Expresin que se desea evaluar.
Truepart
Requerido. Valor o expresin devuelta si expr es True.
Pgina 117 de 159
Comentarios
IIf siempre evala truepart y falsepart, aunque slo vaya a devolver una de ellas. Por esta razn, deber vigilar que no
se produzcan efectos no deseados. Por ejemplo, si al evaluar falsepart se produce un error de divisin por cero, se
generar un error aunque expr sea True.
Ejemplo de la funcin IIf
Este ejemplo utiliza la funcin IIf para calcular el parmetro Prueba del procedimiento Comprobar y devuelve la palabra
"Grande" si la cantidad es mayor que 1000; de lo contrario, devuelve la palabra "Pequeo".
Function Comprobar (Prueba As Integer)
Comprobar = IIf(Prueba > 1000, "Grande", "Pequeo")
End Function
17.7-InputBox
Muestra un mensaje en un cuadro de dilogo, espera que el usuario escriba un texto o haga clic en un botn y devuelve
un tipo String con el contenido del cuadro de texto.
Sintaxis
InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])
La sintaxis de la funcin InputBox consta de estos argumentos con nombre:
-Prompt: Requerido. Expresin de cadena que se muestra como mensaje en el cuadro de dilogo. La longitud mxima de
prompt es de aproximadamente 1024 caracteres, segn el ancho de los caracteres utilizados. Si prompt consta de ms de
una lnea, puede separarlos utilizando un carcter de retorno de carro (Chr(13)), un carcter de avance de lnea (Chr(10)) o
una combinacin de los caracteres de retorno de carro-avance de lnea (Chr(13) y Chr(10)) entre cada lnea y la siguiente.
-title: Opcional. Expresin de cadena que se muestra en la barra de ttulo del cuadro de dilogo. Si omite title, en la barra de
ttulo se coloca el nombre de la aplicacin.
-default: Opcional. Expresin de cadena que se muestra en el cuadro de texto como respuesta predeterminada cuando no
se suministra una cadena. Si omite default, se muestra el cuadro de texto vaco.
-xpos: Opcional. Expresin numrica que especifica, en twips, la distancia en sentido horizontal entre el borde izquierdo
del cuadro de dilogo y el borde izquierdo de la pantalla. Si se omite xpos, el cuadro de dilogo se centra horizontalmente.
-ypos: Opcional. Expresin numrica que especifica, en twips, la distancia en sentido vertical entre el borde superior del
cuadro de dilogo y el borde superior de la pantalla. Si se omite ypos, el cuadro de dilogo se coloca a aproximadamente un
tercio de la altura de la pantalla, desde el borde superior de la misma.
-helpfile: Opcional. Expresin de cadena que identifica el archivo de Ayuda que se utilizar para proporcionar ayuda
interactiva para el cuadro de dilogo. Si se especifica helpfile, tambin deber especificarse context.
-Context: Opcional. Expresin numrica que es el nmero de contexto de Ayuda asignado por el autor al tema de Ayuda
correspondiente. Si se especifica context, tambin deber especificarse helpfile.
Comentarios
Cuando se especifica tanto helpfile como context, el usuario puede presionar F1 para ver el tema de Ayuda
correspondiente a context. Si el usuario hace clic en Aceptar o presiona ENTRAR, la funcin InputBox devuelve lo que
haya en el cuadro de texto. Si el usuario hace clic en Cancelar, la funcin devuelve una cadena de caracteres de
longitud cero ("").
Nota Si desea especificar ms que el primer argumento con nombre, debe utilizar InputBox en una expresin. Si desea
omitir algunos argumentos de posicin, debe incluir el delimitador de coma correspondiente.
Ejemplo de la funcin InputBox
En este ejemplo se muestran distintas maneras de utilizar la funcin InputBox para indicar al usuario que debe
introducir un valor. Si se omiten las posiciones x e y, el dilogo se centra automticamente segn los ejes respectivos. La
variable MyValue contiene el valor introducido por el usuario, si ste elige Aceptar o presiona ENTRAR. Si el usuario
elige Cancelar, se devuelve una cadena de caracteres de longitud cero.
Pgina 118 de 159
17.8-Int, Fix
Devuelve un valor del mismo tipo que el que se pas como parmetro y que contiene la parte entera de un nmero.
Sintaxis
Int(nmero)
Fix(nmero)
El argumento nmero es un tipo Double o cualquier expresin numrica vlida. Si nmero contiene Null, la funcin
devolver Null.
Comentarios
Las funciones Int y Fix eliminan la fraccin de un nmero y devuelven el valor entero resultante.
La diferencia entre Int y Fix es que si el nmero es negativo, Int devuelve el primer entero negativo menor o igual a
nmero, mientras que Fix devuelve el primer entero negativo mayor o igual a nmero. Por ejemplo, Int convierte -8.4 en
-9 y Fix convierte -8.4 a -8.
La funcin Fix(nmero) es equivalente a:
Sgn(nmero) * Int(Abs(nmero))
17.9-IsDate
Devuelve un valor de tipo Boolean que indica si una expresin se puede convertir en una fecha.
Sintaxis
IsDate(expresin)
El argumento expresin requerido, es un tipo de datos Variant que contiene una expresin de fecha o una expresin de
cadena reconocible como una fecha o una hora.
Comentarios
La funcin IsDate devuelve True si la expresin es una fecha o se puede convertir en una fecha vlida; en caso
contrario, devuelve False. En Microsoft Windows, el intervalo de fechas vlidas va desde el 1 de enero de 100 D.C.
hasta el 31 de diciembre de 9999 D.C; los intervalos varan de un sistema operativo a otro.
Ejemplo de la funcin IsDate
En este ejemplo se utiliza la funcin IsDate para determinar si una expresin puede convertirse en fecha.
Dim MiFecha, TuFecha, SinFecha, MiPrueba
MiFecha = "12 febrero 1969": TuFecha = #2/12/69#: SinFecha = "Hola"
Pgina 119 de 159
17.10-IsNull
Devuelve un valor de tipo Boolean que indica si una expresin contiene datos no vlidos (Null).
Sintaxis
IsNull(expresin)
El argumento expresin requerido, es un tipo de datos Variant que contiene una expresin numrica o una expresin de
cadena.
Comentarios
La funcin IsNull devuelve True si expresin es Null; en cualquier otro caso, IsNull devuelve False. Si expresin est
formada por ms de una variable, la presencia de Null en cualquier variable hace que se devuelva True para toda la
expresin.
El valor Null indica que Variant contiene datos no vlidos. La funcin Null no es la misma que la funcin Empty, la
cual indica que una variable todava no ha sido inicializada. Tampoco es lo mismo que una cadena de longitud cero (""),
que a veces se suele llamar cadena nula.
Importante Utilice la funcin IsNull para determinar si una expresin contiene un valor Null. Las expresiones que
espera evaluar como True en ciertas circunstancias, tales como If Var = Null AND If Var <> Null, son siempre False.
Esto se debe a que cualquier expresin que contiene un Null es por si misma de valor Null y por consiguiente False.
Ejemplo de la funcin IsNull
En este ejemplo se utiliza la funcin IsNull para determinar si una variable contiene Null.
Dim MiVar, MiPrueba
MiPrueba = IsNull(MiVar)
MiVar = ""
MiPrueba = IsNull(MiVar)
MiVar = Null
MiPrueba = IsNull(MiVar)
17.11-Left
Devuelve un tipo Variant (String) que contiene un nmero especificado de caracteres del lado izquierdo de una cadena.
Sintaxis
Left(string, length)
La sintaxis de la funcin Left tiene estos argumentos con nombre:
Parte Descripcin
string Obligatorio. Expresin de cadena de la cual se devuelven los caracteres que estn ms a la izquierda.
Si string contiene Null, se devuelve Null.
length Se requiere, un tipo Variant (Long). Expresin numrica que indica cuntos caracteres se van a
devolver. Si es 0, devuelve una cadena de longitud cero (""). Si es mayor o igual al nmero de
Pgina 120 de 159
17.12-Len
Devuelve un tipo Long que contiene el nmero de caracteres en una cadena o el nmero de bytes necesarios para
almacenar una variable.
Sintaxis
Len(cadena | nombrevar)
La sintaxis de la funcin Len consta de las siguientes partes:
Parte
Descripcin
cadena
Cualquier expresin de cadena vlida. Si cadena contiene Null, se devuelve Null.
Nombrevar
Cualquier nombre de variable vlido. Si nombrevar contiene Null, se devuelve Null. Si
nombrevar es un tipo Variant, Len acta igual que con un tipo String y siempre devuelve
el nmero de caracteres que contiene.
Comentarios
Se deben especificar uno (y slo uno) de los dos argumentos posibles.
Ejemplo de la funcin Len
En este ejemplo se utiliza la funcin Len para devolver el nmero de caracteres en una cadena o el nmero de bytes
requeridos para almacenar una variable.
Dim MiEntero As Integer, MyCur As Currency
Dim MiCadena, MiLong
MiCadena = "Hola a todos"
MiLong = Len(MiEntero)
MiLong = Len(MiCadena)
MiLong = Len(MyCur)
17.13-LoadPicture
Carga un grfico en un control PictureBox o un control Image.
Sintaxis
LoadPicture([expresin_cadena])
Pgina 121 de 159
El marcador de posicin expresin_cadena es el nombre del archivo grfico que se quiere cargar.
Comentarios
Los formatos grficos reconocidos por Visual Basic incluyen archivos de mapas de bits (.BMP), archivos de iconos
(.ICO), archivos de longitud codificada (.RLE), metarchivos (.WMF), metarchivos mejorados (.EMF), archivos GIF y
archivos JPEG (.JPG).
Es posible limpiar los grficos de formularios, cuadros de imagen y controles de imagen si asigna LoadPicture sin
argumentos.
Para cargar grficos para presentarlos en un control PictureBox, en un control Image o como fondo de un formulario, el
valor devuelto por LoadPicture debe asignarse a la propiedad Picture del objeto en el que se quiere presentar la
imagen. Por ejemplo:
Image1.Picture = LoadPicture("FIESTA.BMP")
Para asignar un icono a un formulario, establezca el valor devuelto por la funcin LoadPicture a la propiedad Icon del
objeto Form:
Set Form1.Icon = LoadPicture("MIICONO.ICO")
Ejemplo de la funcin LoadPicture
Este ejemplo usa la funcin LoadPicture para cargar una imagen en la propiedad Picture de un formulario y para borrar
la imagen del objeto Form. Para probar este ejemplo, pegue el cdigo en la seccin Declaraciones de un objeto Form y
despus ejecute el ejemplo y haga clic en el objeto Form.
Private Sub Form_Click ()
Dim Msg as String
' Declara variables.
On Error Resume Next ' Establece el tratamiento de errores.
Height = 3990
Width = 4890
' Define el alto y el ancho.
Set Picture = LoadPicture("PAPEL.BMP")
' Carga un mapa de bits.
If Err Then
Msg = "Imposible encontrar el archivo .BMP."
MsgBox Msg
' Presenta el mensaje de error.
Exit Sub' Sale si hay error.
End If
Msg = "Elija "Aceptar" para borrar el mapa de bits del formulario."
MsgBox Msg
Set Picture = LoadPicture()
' Limpia el formulario.
End Sub
Sintaxis
LTrim(cadena)
RTrim(cadena)
Trim(cadena)
El argumento cadena obligatorio es cualquier expresin de cadena vlida. Si cadena contiene Null, se devuelve Null.
17.15-Mid
Devuelve un tipo Variant (String) que contiene un nmero especificado de caracteres de una cadena.
Sintaxis
Mid(string, start[, length])
La sintaxis de la funcin Mid tiene estos argumentos con nombre:
Parte Descripcin
string Obligatorio. Expresin de cadena de la cual se devuelven los caracteres. Si string contiene Null, se
devuelve Null.
start
Obligatorio; un tipo Long. Posicin de carcter en string en la cual comienza la parte que se quiere
tomar. Si start es mayor que el nmero de caracteres en la string, Mid devuelve una cadena de
longitud cero ("").
length Opcional, un tipo Variant (Long). Nmero de caracteres que se van a devolver. Si se omite o en el
texto hay menos de length caracteres (incluyendo el carcter de start), se devuelven todos los
caracteres desde la posicin de start hasta el final de la cadena.
Comentarios
Para determinar el nmero de caracteres en string, utilice la funcin Len.
17.16-MsgBox
Muestra un mensaje en un cuadro de dilogo, espera a que el usuario haga clic en un botn y devuelve un tipo Integer
correspondiente al botn elegido por el usuario.
Sintaxis
MsgBox(prompt[, buttons][, title][, helpfile, context])
Descripcin
Aceptar
Cancelar
Anular
Reintentar
Ignorar
S
No
Comentarios
Pgina 124 de 159
17.17-Right
Devuelve un tipo Variant (String) que contiene un nmero especificado de caracteres del lado derecho de una cadena.
Sintaxis
Right(string, lenght)
La sintaxis de la funcin Right tiene estos argumentos con nombre:
Parte Descripcin
String Obligatorio. Expresin de cadena desde la cual se devuelven los caracteres que estn ms a la
derecha. Si string contiene Null, se devuelve Null.
lenght Se requiere, un tipo Variant (Long). Expresin numrica que indica cuntos caracteres se van a
devolver. Si es 0, se devuelve una cadena de longitud cero (""). Si es mayor o igual al nmero de
caracteres en string, se devuelve la cadena completa.
Comentarios
Para determinar el nmero de caracteres en string, utilice la funcin Len.
Ejemplo de la funcin Right
En este ejemplo se utiliza la funcin Right para devolver un nmero especificado de caracteres de la parte derecha de la
cadena.
Dim UnaCadena, MiCadena
UnaCadena = "Hola Mundo"
' Define una cadena.
MiCadena = Right(UnaCadena, 1) ' Devuelve "o".
MiCadena = Right(UnaCadena, 6) ' Devuelve "Mundo".
MiCadena = Right(UnaCadena, 20)
' ' Devuelve "Hola Mundo".
Pgina 125 de 159
17.18-Str
Devuelve en un tipo Variant (String) la representacin de cadena de un nmero.
Sintaxis
Str(nmero)
El argumento nmero necesario es un tipo Long que contiene una expresin numrica vlida.
Comentarios
Cuando los nmeros se convierten a cadenas, siempre se reserva un espacio a la izquierda para el signo del nmero. Si
nmero es positivo, la cadena devuelta contiene un espacio a la izquierda y el signo ms se da por supuesto.
Utilice la funcin Format para convertir valores numricos en valores con formato de fecha, hora, moneda o en otros
formatos definidos por el usuario. A diferencia de Str, la funcin Format no incluye un espacio a la izquierda para el
signo del nmero.
Nota La funcin Str slo reconoce el punto (.) como separador decimal vlido.
Ejemplo de la funcin Str
En este ejemplo se utiliza Str para devolver una representacin de cadena de un nmero. Cuando un nmero se
convierte en una cadena siempre se reserva un espacio a la izquierda para el signo.
Dim MiCadena
MiCadena = Str(459)
' Devuelve " 459".
MiCadena = Str(-459.65) ' Devuelve "-459,65".
MiCadena = Str(459.001) ' Devuelve " 459,001".
17.19-Ucase
Devuelve un tipo Variant (String) que contiene una cadena especificada que se ha convertido a maysculas.
Sintaxis
UCase(cadena)
El argumento cadena necesario es cualquier expresin de cadena vlida. Si string contiene Null, se devuelve Null.
Comentarios
Slo se convierten a maysculas las letras minsculas. Las letras maysculas o los caracteres que no son letras no sufren
cambios.
Ejemplo de la funcin UCase
En este ejemplo se utiliza la funcin UCase para devolver la versin en maysculas de una cadena.
Dim LowerCase, UpperCase
LowerCase = "Hola Mundo 1234" ' Cadena a convertir.
UpperCase = UCase(LowerCase)
' Devuelve "HOLA MUNDO 1234".
17.20-Val
Pgina 126 de 159
Comentarios
La funcin Val deja de leer la cadena en el primer carcter que no puede reconocer como parte de un nmero. Los
smbolos y caracteres que se consideran a menudo parte de valores numricos, como signos de moneda y comas, no se
reconocen. Sin embargo, la funcin reconoce los prefijos de base &O (para octal) y &H (para hexadecimal). Los
espacios en blanco, los tabuladores y los avances de lnea se eliminan del argumento.
Lo siguiente devuelve el valor 1615198:
Val("
En el cdigo que se muestra a continuacin, Val devuelve el valor decimal -1 correspondiente al valor hexadecimal entre
parntesis:
Val("&HFFFF")
Nota La funcin Val slo reconoce el punto (.) como separador decimal vlido.
Ejemplo de la funcin Val
En este ejemplo se utiliza la funcin Val para devolver los nmeros contenidos en una cadena.
Dim MiValor
MiValor = Val("2457")
' Devuelve 2457.
MiValor = Val(" 2 45 7") ' Devuelve 2457.
MiValor = Val("24 y 57") ' Devuelve 24.
2.10.2-Kill
Elimina archivos del disco.
Sintaxis
Kill nombre_ruta
El argumento requerido nombre_ruta es una expresin de cadena que especifica uno o ms nombres de archivos que se
van a eliminar. Puede incluir el directorio o carpeta y la unidad de disco.
Comentarios
La funcin Kill permite el uso de los caracteres comodn '*' (mltiples caracteres) y '?' (un solo carcter) para especificar
varios archivos.
Se producir un error si intenta usar la instruccin Kill para eliminar un archivo abierto.
Nota Para eliminar directorios, utilice la instruccin RmDir.
Ejemplo de la instruccin Kill
En este ejemplo se utiliza la instruccin Kill para borrar un archivo de un disco.
' Se supone que PRUEBA es un archivo que contiene informacin.
Kill "PRUEBA" ' Se elimina el archivo.
' En Microsoft Windows:
' Se eliminan todos los archivos *.TXT del directorio actual.
Kill "*.TXT"
2.10.3-MkDir
Crea un directorio o carpeta.
Sintaxis
MkDir ruta
El argumento requerido ruta es una expresin de cadena que identifica el directorio o carpeta que se va a crear. Puede
incluir la unidad de disco. Si no se especifica la unidad de disco, la instruccin MkDir crea el directorio o carpeta en la
unidad de disco actual.
2.10.4-On Error.
Activa una rutina de control de errores y especifica la ubicacin de la misma en un procedimiento; tambin puede
utilizarse para desactivar una rutina de control de errores.
Sintaxis
On Error GoTo lnea
On Error Resume Next
On Error GoTo 0
La sintaxis de la instruccin On Error puede tener cualquiera de los formatos siguientes:
Instruccin:
-On Error GoTo lnea: Activa la rutina de control de errores que comienza en la lnea especificada en el argumento
necesario lnea. El argumento lnea es cualquier etiqueta de lnea o nmero de lnea. Si se produce un error en tiempo de
ejecucin, el control pasa a lnea, activando el controlador de errores. La lnea especificada en el argumento lnea debe
encontrarse en el mismo procedimiento que la instruccin On Error; o de lo contrario, se producir un error en tiempo de
compilacin.
-On Error Resume Next: Especifica que, en caso de que se produzca un error en tiempo de ejecucin, el control pase a la
instruccin que sigue inmediatamente a aqulla en la que se ha producido el error, donde contina la ejecucin.
-On Error GoTo 0:
Desactiva cualquier controlador de errores del procedimiento actual.
Comentarios
Si no utiliza una instruccin On Error, cualquier error en tiempo de ejecucin que se produzca ser fatal; es decir,
aparecer un mensaje de error y la ejecucin se detendr.
Nota Una rutina de control de errores no es un procedimiento Sub ni Function,. Es una seccin de cdigo marcada con
una etiqueta o un nmero de lnea.
Las rutinas de control de errores se basan en el valor de la propiedad Number del objeto Err para determinar la causa
del error. Una rutina de control de errores debe comprobar y guardar los valores de las propiedades del objeto Err antes
de que pueda producirse otro error o antes de que se llame a un procedimiento que pueda causarlo. Los valores de las
propiedades del objeto Err reflejan solamente el error ms reciente. El mensaje de error asociado a Err.Number se
encuentra en Err.Description.
On Error Resume Next hace que la ejecucin contine en la instruccin que sigue inmediatamente a la que caus el
error en tiempo de ejecucin, o en la que sigue inmediatamente a la ltima llamada desde el procedimiento que contiene
la instruccin On Error Resume Next. Esta instruccin permite continuar la ejecucin a pesar de que se haya producido
un error en tiempo de ejecucin.. Puede colocar la rutina de control de errores donde se producira el error, en vez de
transferir el control a otra posicin dentro del procedimiento. La instruccin On Error Resume Next pasa a estar
inactiva cuando se llama a otro procedimiento, por tanto usted debe ejecutar una instruccin On Error Resume Next en
cada rutina que llamada si desea un control de errores integrado dentro de la propia rutina.
On Error GoTo 0 desactiva el control de errores en el procedimiento actual. No especifica la lnea 0 como el inicio del
cdigo de control de errores, ni siquiera cuando el procedimiento contiene una lnea con el nmero 0. Sin una
instruccin On Error GoTo 0, el control de errores se desactiva automticamente al salir del procedimiento.
Para evitar que el cdigo de control de errores se ejecute cuando no se ha producido ningn error, coloque una
instruccin Exit Sub o Exit Function inmediatamente antes de la rutina de control de errores, como en el ejemplo
siguiente:
Sub InicializarMatriz(Var1, Var2, Var3, Var4)
On Error GoTo ControlErrores
...
Exit Sub
ControlErrores:
...
Resume Next
End Sub
Aqu, el cdigo de control de errores viene a continuacin de la instruccin Exit Sub y precede a End Sub para
separarlo del flujo normal del procedimiento. El cdigo de control de errores puede situarse en cualquier lugar del
procedimiento.
Pgina 129 de 159
2.10.5-Option Explicit
Se usa en el nivel de mdulo para forzar declaraciones explcitas de todas las variables en ese mdulo.
Sintaxis
Option Explicit
Comentarios
Si se usa, la instruccin Option Explicit debe aparecer en un mdulo antes de cualquier procedimiento.
Cuando Option Explicit aparece en un mdulo, debe declarar explcitamente todas las variables mediante las
instrucciones Dim, Private, Public, ReDim o Static. Si intenta usar un nombre de variable no declarado, ocurrir un
error en tiempo de compilacin.
Nota Utilice Option Explicit para evitar escribir incorrectamente el nombre de una variable existente o para evitar
confusiones en el cdigo, donde el alcance de la variable no est claro.
Ejemplo de la instruccin Option Explicit
2.10.6-SendKeys
Enva una o ms pulsaciones de teclas a la ventana activa, como si se hubieran presionado desde el teclado.
Sintaxis
SendKeys string[, wait]
La sintaxis de la instruccin SendKeys consta de estos argumentos con nombre:
Parte Descripcin
string Requerido. Expresin de cadena que especifica las pulsaciones de teclas que se van a enviar.
wait
Opcional. Valor Boolean que indica el modo de espera. Si este valor es False (predeterminado), se devuelve el
control al procedimiento inmediatamente despus de enviar las pulsaciones. Si es True, se procesan las pulsaciones antes
de devolver el control al procedimiento.
Comentarios
Cada tecla est representada por uno o ms caracteres. Para especificar un nico carcter del teclado, se utiliza el
carcter propiamente dicho. Por ejemplo, para representar la letra A, utilice "A" como string. Si se desea representar
ms de un carcter, agregue cada carcter adicional al que lo precede. Para representar las letras A, B y C, utilice "ABC"
para string.
El signo ms (+), el smbolo de intercalacin (^), el smbolo de porcentaje (%), la tilde (~) y los parntesis ( ) tienen
significados especiales para SendKeys. Para especificar uno de estos caracteres, debe incluirlo entre llaves. Por ejemplo,
para especificar el signo ms, utilice {+}.
Para especificar caracteres que no se muestran al presionar una tecla (como por ejemplo ENTRAR o TAB) y teclas que
representan acciones, en lugar de caracteres, se utilizan los siguientes cdigos:
Tecla:
RETROCESO: {BACKSPACE}, {BS}o {BKSP}
INTER: {BREAK}
BLOQ MAYS: {CAPSLOCK}
SUPR: {DELETE} o {DEL}
FLECHA ABAJO: {DOWN}
FIN: {END}
ENTRAR: {ENTER}o ~
ESC: {ESC}
AYUDA: {HELP}
INICIO: {HOME}
INSERT: {INSERT} o {INS}
FLECHA IZQUIERDA: {LEFT}
BLOQ NM: {NUMLOCK}
RE PG: {PGDN}
AV PG: {PGUP}
IMPR PANT: {PRTSC}
FLECHA DERECHA: {RIGHT}
BLOQ DESPL: {SCROLLLOCK}
TAB: {TAB}
FLECHA ARRIBA: {UP}
F1:
{F1}
F2:
{F2}
Pgina 131 de 159
{F3}
{F4}
{F5}
{F6}
{F7}
{F8}
{F9}
{F10}
{F11}
{F12}
{F13}
{F14}
{F15}
{F16}
Para especificar teclas con cualquier combinacin de las teclas MAYS, CTRL y ALT, introduzca delante del cdigo de
la tecla uno o ms de los siguientes cdigos:
Tecla
MAYS: +
CTRL (CONTROL): ^
ALT: %
Para especificar que se debe mantener presionada una combinacin cualquiera de las teclas MAYS, CTRL y ALT
mientras se presionan otras teclas, ponga entre parntesis el cdigo relativo a esas teclas. Por ejemplo, para especificar
que se debe mantener presionada MAYS mientras se presionan las teclas E y C, utilice "+(EC)". Para especificar que
se debe mantener presionada MAYS mientras se presiona la tecla E y que luego se debe presionar C, sin presionar
MAYS, utilice "+EC".
Para especificar pulsaciones repetidas de teclas, utilice el formato {tecla nmero}. Debe dejar un espacio en blanco entre
tecla y nmero. Por ejemplo, {LEFT 42} significa que se debe presionar la tecla FLECHA IZQUIERDA 42 veces; {h
10} significa que se debe presionar la tecla h 10 veces.
Nota No puede utilizar SendKeys para enviar pulsaciones de teclas a aplicaciones que no estn diseadas para
funcionar con Microsoft Windows. SendKeys puede enviar tambin la pulsacin de la tecla IMPR PANT (PRTSC) a
cualquier aplicacin.
Ejemplo de la instruccin SendKeys
En este ejemplo se utiliza la funcin Shell para ejecutar la aplicacin Calculadora incluida en Microsoft Windows; luego
se utiliza la instruccin SendKeys para enviar pulsaciones de teclas para sumar algunos nmeros y finalmente se
termina la aplicacin Calculadora. La instruccin SendKeys no est disponible en Macintosh. (Para ver el ejemplo,
pguelo en un procedimiento y a continuacin, ejecute el procedimiento. Puesto que AppActivate cambia el enfoque a la
aplicacin Calculadora, no puede avanzar paso a paso por el cdigo).
Dim ReturnValue, I
ReturnValue = Shell("Calc.exe", 1)' Ejecuta la Calculadora.
AppActivate ReturnValue
' Activa la Calculadora.
For I = 1 To 100 ' Establece un bucle contador.
SendKeys I & "{+}", True' Enva pulsaciones a la Calculadora
Next I ' para sumar cada valor de I.
SendKeys "=", True
' Obtiene el total general.
SendKeys "%{F4}", True ' Enva ALT+F4 para cerrar la Calculadora.
2.10.7-Unload
Descarga de memoria un formulario..
Sintaxis
Unload objeto
Pgina 132 de 159
Name: es el nombre que se utiliza para hacer referencia al control de mens en el cdigo.
Caption: es el texto que aparece en el control.
Otras propiedades del Editor de mens, como Index, Checked y NegotiatePosition, se describen ms adelante en este
tema.
Pgina 133 de 159
o bien
Haga clic en el botn Editor de mens de la barra de herramientas.
3.En el cuadro de texto Caption, escriba el texto del ttulo del primer men que quiera que aparezca en la barra de
mens. Coloque tambin un signo & delante de la letra que desee que sea la tecla de acceso a dicho elemento de men.
Esta letra aparecer subrayada automticamente en el men.
El texto del ttulo del men se presenta en el cuadro de lista del control de mens.
4.En el cuadro de texto Name, escriba el nombre que desee utilizar para hacer referencia al control de mens desde el
cdigo. Vea "Recomendaciones de ttulos y nombres de mens", ms adelante en este mismo tema.
5.Haga clic en los botones de flecha a la izquierda o a la derecha para modificar el nivel de sangra del control.
6.Establezca otras propiedades del control, si lo desea. Puede hacerlo con el Editor de mens o, posteriormente, en la
ventana Propiedades.
7.Elija Siguiente para crear otro control de mens.
o bien
Haga clic en Insertar para agregar un control de mens entre controles existentes.
Tambin puede hacer clic en los botones de flecha arriba y flecha abajo para mover el control entre los controles de
mens existentes.
8.Elija Aceptar para cerrar el Editor de mens cuando haya creado todos los controles de mens del formulario.
En el formulario se mostrarn los ttulos de los mens creados. En tiempo de diseo, haga clic en el ttulo de un men
para desplegar sus correspondientes elementos de men.
Para asignar una tecla de acceso a un control de mens con el Editor de mens
1.Seleccione el elemento de men al que desee asignar una tecla de acceso.
2.En el cuadro Ttulo, escriba un signo & inmediatamente delante de la letra que elija como tecla de acceso.
Nota No use teclas de acceso duplicadas en los mens. Si usa la misma tecla de acceso para ms de un elemento del
men, dicha tecla no funcionar. Por ejemplo, si C es la tecla de acceso para Cortar y Copiar, cuando seleccione el
men Edicin y presione C, se seleccionar el comando Copiar, pero la aplicacin no ejecutar el comando hasta que
presione ENTRAR. El comando Cortar no se seleccionar.
Teclas de mtodo abreviado
Las teclas de mtodo abreviado ejecutan un elemento de men inmediatamente cuando se presionan. A los elementos de
men que se utilizan con ms frecuencia se les puede asignar una tecla de mtodo abreviado, que proporciona un
mtodo de acceso por teclado de slo un paso, en lugar del mtodo de tres pasos de presionar ALT, un carcter de acceso
al ttulo del men y despus un carcter de acceso al elemento del men. Las asignaciones de mtodos abreviados
incluyen combinaciones de teclas de funcin y de control, como CTRL+F1 o CTRL+A. Aparecen en el men a la
derecha del elemento de men correspondiente, como se muestra en la figura.
Figura: Teclas de mtodo abreviado
2.11.5-Creacin de Submenes.
Cada men que cree puede incluir hasta cinco niveles de submens. Un submen sale de otro men para presentar sus
propios elementos de men. Puede utilizar un submen cuando:
La barra de mens est llena.
Sin embargo, si hay sitio en la barra de mens, es mejor crear un ttulo de men adicional en lugar de un submen. De
esta manera, todos los controles son visibles para el usuario cuando el men se despliega. Tambin es una buena prctica
de programacin restringir el uso de los submens de forma que los usuarios no se pierdan intentando explorar la
interfaz de mens de la aplicacin. (La mayora de las aplicaciones utilizan slo un nivel de submens.)
En el Editor de mens, cualquier control de mens sangrado bajo un control de mens que no sea un ttulo de men es
un control de submens. En general, los controles de submens pueden incluir elementos de submen, barras
separadoras y ttulos de submen.
Para crear un submen
1.Cree el elemento de men que vaya a ser el ttulo del submen.
2.Cree los elementos que vayan a aparecer en el nuevo submen y sngrelos haciendo clic en el botn de flecha a la
derecha.
Cada nivel de sangra est precedido por cuatro puntos (.) en el Editor de mens. Para quitar un nivel de sangra, haga
clic en botn de flecha a la izquierda.
Nota Si est pensando en la posibilidad de utilizar ms de un nivel de submens, piense en utilizar un cuadro de
dilogo en su lugar. Los cuadros de dilogo permiten que los usuarios especifiquen varias opciones en un nico lugar.
Para obtener informacin acerca del uso de cuadros de dilogo, vea "Cuadros de dilogo", ms adelante en este mismo
tema.
2.12.3-Errores de Compilacin.
Los errores de compilacin se producen por un cdigo creado incorrectamente. Si escribe incorrectamente una palabra
clave, omite algn signo de puntuacin necesario o usa una instruccin Next sin la instruccin For correspondiente en
tiempo de diseo, Visual Basic detectar estos errores cuando compile la aplicacin.
Los errores de compilacin incluyen errores en la sintaxis. Por ejemplo, podra tener una instruccin como sigue:
Left
Left es una palabra vlida en el lenguaje de Visual Basic, pero sin un objeto, no cumple con los requisitos sintcticos
para esa palabra (objeto.Left). Si ha seleccionado la opcin Comprobacin automtica de sintaxis en la ficha Editor
del cuadro de dialogo Opciones, Visual Basic presentar un mensaje de error tan pronto como introduzca un error
sintctico en la ventana Cdigo.
Para establecer la opcin Comprobacin automtica de sintaxis
1.En el men Herramientas, seleccione Opciones y haga clic en la ficha Editor del cuadro de dilogo Opciones.
2.Seleccione Comprobacin automtica de sintaxis.
2.12.5-Errores lgicos.
Los errores lgicos se producen cuando una aplicacin no acta de la forma que se pretenda. Una aplicacin puede
tener cdigo sintcticamente vlido, ejecutarse sin llevar a cabo ninguna operacin que no sea vlida y, an as, producir
resultados incorrectos. Slo si prueba la aplicacin y analiza los resultados puede comprobar que la aplicacin est
actuando correctamente.
Por ejemplo, un resultado incorrecto puede producirse al final de una larga serie de clculos. En la depuracin, la tarea
es determinar dnde ha fallado algo y qu es lo que ha fallado. Quiz se le ha olvidado inicializar una variable, ha
elegido el operador equivocado o ha utilizado una frmula incorrecta.
Cuanto mejor entienda cmo funciona su aplicacin, ms rpido podr encontrar los errores.
La siguiente tabla describe brevemente el objetivo de cada herramienta. Los temas de este tema tratan las situaciones en
las que cada una de estas herramientas le pueden ayudar a depurar o analizar una aplicacin con ms eficacia.
Herramienta de depuracin
Punto de interrupcin
Paso a paso por instrucciones
Paso a paso por procedimientos
Paso a paso para salir
Ventana Locales
Ventana Inmediato
Ventana Inspeccin
Inspeccin rpida
Pila de llamadas
Objetivo
Define una lnea en la ventana Cdigo donde Visual Basic suspende la
ejecucin de una aplicacin.
Ejecuta la siguiente lnea ejecutable de cdigo de la aplicacin y recorre
paso a paso las instrucciones de procedimientos.
Ejecuta la siguiente lnea ejecutable de cdigo de la aplicacin sin recorrer
paso a paso las instrucciones de procedimientos.
Ejecuta el resto del procedimiento actual y se interrumpe en la siguiente
lnea del procedimiento de llamada.
Presenta el valor actual de las variables locales.
Le permite ejecutar cdigo o valores de consulta mientras la aplicacin
est en modo de interrupcin.
Presenta los valores de las expresiones seleccionadas.
Presenta el valor actual de una expresin mientras la aplicacin est en
modo de interrupcin.
Mientras est en modo de interrupcin, presenta un cuadro de dilogo que
muestra todos los procedimientos a los que se ha llamado, pero que
todava no se han ejecutado completamente.
Pgina 139 de 159
2.13.2-Opciones de Distribucin.
Puede distribuir la aplicacin en disquetes, en CD o en una red. Si va a utilizar disquetes, puede elegir el mtodo
Disquete o el mtodo Directorios de discos del Asistente para instalar. Si piensa distribuir la aplicacin en un CD o en
una red, puede elegir el mtodo Directorio nico o el mtodo Directorios de disco.
Figura: Eleccin de las opciones de distribucin con el Asistente para instalar
Si piensa distribuir la aplicacin en disquetes, puede utilizar la opcin Unidad de discos para generar discos flexibles en
el equipo o puede crear imgenes de disquetes para emplearlas con un servicio de duplicado de discos mediante la
opcin Directorios de discos.
Si piensa distribuir la aplicacin en una red o en CD, tambin tiene dos opciones. Puede utilizar la opcin Directorio
nico o la opcin Directorios de discos. Ambos mtodos copian los archivos de instalacin en un directorio temporal
Pgina 140 de 159
3.1.2-Componentes de SQL.
El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones agregadas. Estos elementos se
combinan en las instrucciones empleadas para crear, actualizar y manipular bases de datos.
3.1.2.1-Comandos de SQL
Comando
SELECT
INSERT
UPDATE
DELETE
Descripcin
Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado.
Utilizado para cargar lotes de datos en la base de datos en una nica operacin.
Utilizado para modificar los valores de determinados campos y registros.
Utilizado para quitar registros de una tabla de base de datos.
3.1.2.2-Clusulas de SQL
Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular. La
siguiente tabla muestra las clusulas que puede utilizar.
Clusula
Descripcin
FROM
Utilizada para especificar la tabla de la cual se van a seleccionar los registros.
WHERE
Utilizada para especificar las condiciones que deben cumplir los registros que se van a
seleccionar.
GROUP BY
Utilizada para separar los registros seleccionados en grupos especficos.
HAVING
Utilizada para expresar la condicin que debe satisfacer cada grupo.
ORDER BY
Utilizada para ordenar los registros seleccionados de acuerdo con un orden especificado.
3.1.2.3-Operadores de SQL
Existen dos tipos de operadores en SQL: operadores lgicos y operadores de comparacin.
Pgina 143 de 159
3.1.3.2-Delete
Pgina 145 de 159
Comentarios
La instruccin DELETE es especialmente til cuando desea eliminar muchos registros.
Cuando utiliza DELETE slo se elimina el dato; la estructura de la tabla y todas sus propiedades, como los atributos y
los ndices de los campos, permanecen intactos.
Puede utilizar DELETE para quitar registros de las tablas que estn en una relacin uno a varios con otras tablas. Las
operaciones de eliminacin en cascada hacen que los registros de las tablas que estn en el lado varios de la relacin se
eliminen cuando el registro correspondiente del lado uno de la relacin se elimina en la consulta. Por ejemplo, en la
relacin entre las tablas Clientes y Pedidos, la tabla Clientes est en el lado uno y la tabla Pedidos est en el lado varios
de la relacin. La eliminacin de un registro de la tabla Clientes provoca que los registros correspondientes de la tabla
Pedidos se eliminen si se especifica la opcin de eliminacin en cascada.
Una consulta de eliminacin suprime registros completos, y no slo los datos de los campos especficos. Si desea
eliminar valores de un campo especfico, cree una consulta de actualizacin que cambie los valores a Null.
Importante
Despus de quitar registros utilizando una consulta de eliminacin, no puede deshacer la operacin. Si desea saber
qu registros se eliminaron, primero examine el resultado con una consulta de seleccin que utilice el mismo
criterio y despus ejecute la consulta de eliminacin.
Mantenga siempre copias de seguridad de sus datos. Si elimina los registros por equivocacin, podr recuperarlos
de sus copias de seguridad.
3.1.3.3-Insert
Agrega uno o varios registros a una tabla. Esto se conoce como una consulta de datos aadidos.
Sintaxis
Consulta de datos aadidos para mltiples registros:
INSERT INTO destino [IN basededatosexterna] [(campo1[, campo2[, ...]])]
SELECT [origen.]campo1[, campo2[, ...]
FROM expresintabla
Consulta de datos aadidos para un registro:
INSERT INTO destino [(campo1[, campo2[, ...]])]
VALUES (valor1[, valor2[, ...])
La instruccin INSERT INTO consta de las siguientes partes:
-destino: El nombre de la tabla o consulta donde se van a aadir registros.
-Basededatosexterna: La ruta de una base de datos externa. Si desea una descripcin de la ruta de acceso, vea la clusula
IN.
-origen: El nombre de la tabla o consulta de donde se van a copiar registros.
-Campo1, campo2: Los nombres de los campos donde se van a aadir los datos, si est a continuacin del argumento
destino, o los nombres de los campos de donde se obtienen los datos, si est a continuacin de un argumento origen.
3.1.3.4-Update
Crea una consulta de actualizacin que cambia los valores de los campos en una tabla especfica segn un criterio
especfico.
Sintaxis
UPDATE tabla
SET nuevovalor
WHERE criterio;
La instruccin UPDATE consta de las siguientes partes:
Parte
Descripcin
tabla
El nombre de la tabla cuyos datos desea modificar.
Nuevovalor Una expresin que determina el valor que se va insertar en un campo concreto de los registros
actualizados.
Criterio
Una expresin que determina qu registros se actualizarn. Slo se actualizan los registros que
satisfacen la expresin.
Comentarios
La instruccin UPDATE es especialmente til desea cambiar muchos registros o cuando los registros que desea cambiar
estn en mltiples tablas.
Pgina 147 de 159
Importante
La instruccin UPDATE no genera un conjunto de resultado. Adems, despus de actualizar registros utilizando una
consulta de actualizacin, no puede deshacer la operacin. Si desea saber qu registros se actualizaron, examine
primero el resultado de una consulta de seleccin que utilice el mismo criterio y despus ejecute la consulta de
actualizacin.
Mantenga siempre copias de seguridad de sus datos. Si actualiza registros equivocados, puede recuperarlos desde
sus copias de seguridad.
3.1.4.2-Where
Especifica qu registros de las tablas enumeradas en la clusula FROM se ven afectados por la instruccin SELECT,
UPDATE o DELETE.
Sintaxis
SELECT listacampos
FROM expresintabla
WHERE criterio
Un instruccin SELECT que contiene una clusula WHERE consta de las siguientes partes:
Pgina 148 de 159
Descripcin
El nombre del campo o de los campos que se van a recuperar con cualquier alias de nombre
de campo, predicado de seleccin (ALL, DISTINCT, DISTINCTROW o TOP) u otras
opciones de la instruccin SELECT.
Expresintabla El nombre de la tabla o de las tablas de las que se van a recuperar los datos.
Criterio
Una expresin que deben cumplir los registros para que se incluyan en el resultado de la
consulta.
Comentarios
El motor de base de datos Microsoft Jet selecciona los registros que cumplen las condiciones enumeradas en la
clusula WHERE. Si no especifica una clusula WHERE, la consulta devuelve todas las filas de la tabla.
La clusula WHERE es opcional, pero cuando se incluye, sigue a la clusula FROM. Por ejemplo, puede seleccionar
todos los empleados del departamento de ventas (WHERE Dept = 'Ventas') o todos los clientes que tengan entre 18 y 30
aos (WHERE Edad Between 18 And 30).
Si no utiliza una clusula JOIN para realizar operaciones de combinacin SQL en mltiples tablas, el objeto Recordset
resultante no podr actualizar.
La clusula WHERE es similar a la clusula HAVING. La clusula WHERE determina qu registros se seleccionan. De
forma parecida, una vez que los registros se agrupan con la clusula GROUP BY, la clusula HAVING determina qu
registros se van a mostrar.
Utilice la clusula WHERE para eliminar registros que no desea que se agrupen mediante una clusula GROUP BY.
Utilice varias expresiones para determinar qu registros devuelve la instruccin SQL. Por ejemplo, la siguiente
instruccin SQL selecciona todos los empleados cuyos salarios son superiores a $21,000:
SELECT Apellidos, Salario
FROM Empleados
WHERE Salario > 21000;
Una clusula WHERE puede contener hasta 40 expresiones vinculadas por operadores lgicos, como And y Or.
Cuando introduce un nombre de campo que contiene un espacio en blanco o un signo de puntuacin, escriba el nombre
entre corchetes ([ ]). Por ejemplo, una tabla de informacin de clientes podra incluir informacin acerca de unos clientes
concretos:
SELECT [Restaurante favorito del cliente]
Cuando especifica el argumento criterio, los literales de fecha deben estar en el formato de EE.UU., incluso si no est
utilizando la versin norteamericana del motor de base de datos Microsoft Jet. Por ejemplo, el 10 de mayo de 1996, se
escribe 10/5/96 en Espaa y Latinoamrica, y 5/10/96 en Estados Unidos de Amrica. Asegrese de escribir los literales
de fecha entre signos # como se muestra en los siguientes ejemplos.
Para encontrar registros con fecha 10 de mayo de 1996 en una base de datos espaola o latinoamericana, debe utilizar la
siguiente instruccin SQL:
SELECT *
FROM Pedido
WHERE Fecha de envo = #5/10/96#;
Tambin puede utilizar la funcin DateValue, que reconoce las configuraciones internacionales establecidas por
Microsoft Windows. Por ejemplo, utilice este cdigo para Estados Unidos de Amrica:
SELECT *
FROM Pedidos
WHERE Fecha de envo = DateValue('5/10/96');
Y utilice este cdigo para Espaa y Latinoamrica:
SELECT *
FROM Pedidos
WHERE Fecha de envo = DateValue('10/5/96');
3.1.4.3-Order By
Sintaxis
expresin Like "modelo"
La sintaxis del operador Like consta de las siguientes partes:
Parte
Descripcin
Expresin Expresin SQL utilizada en una clusula WHERE.
modelo
Cadena o literal de cadena de caracteres con la que se compara expresin.
Comentarios
Puede utilizar el operador Like para encontrar valores en un campo que coincidan con el modelo que se especific. Para
modelo, puede especificar el valor completo (por ejemplo , Like "Garca") o puede utilizar caracteres comodn para
encontrar un intervalo de valores (por ejemplo, Like "Ga*").
Comentarios
El objeto DBEngine contiene y controla todos los otros objetos en la jerarqua de los objetos del DAO. No puede crear
objetos DBEngine adicionales y el objeto DBEngine no es un elemento de ninguna coleccin.
Con cualquier tipo de base de datos o conexin, puede:
Utilizar la propiedad Version para obtener el nmero de versin del DAO.
Utilizar la propiedad DefaultType para establecer el tipo predeterminado de conexin de base de datos que
utilizarn a continuacin los objetos Workspace creados.
Utilizar las propiedades DefaultPassword y DefaultUser para establecer la identificacin de usuario y contrasea
para el objeto Workspace predeterminado.
Utilizar el mtodo CreateWorkspace para crear un objeto Workspace nuevo. Puede utilizar argumentos opcionales
para sobrescribir los valores de las propiedades DefaultType, DefaultPassword y DefaultUser.
Utilizar el mtodo OpenDatabase para abrir una base de datos en el Workspace predeterminado y utilizar los
mtodos BeginTrans, Commit y Rollback para controlar transacciones en el Workspace predeterminado.
Utilizar la coleccin Workspaces para hacer referencia a objetos Workspace especficos.
Utilizar la coleccin Errors para examinar detalles sobre los errores de acceso a datos.
Utilizar el mtodo Idle para activar el motor de base de datos Microsoft Jet y completar las tareas pendientes.
Utilice los mtodos CompactDatabase y RepairDatabase para mantener los archivos de base de datos.
Utilizar las propiedades IniPath y SystemDB para especificar la ubicacin de la informacin de Registro de
Windows de Microsoft Jet y el archivo de informacin de grupo de trabajo Microsoft Jet, respectivamente. El
mtodo SetOption le permite sobrescribir los valores del Registro de Windows para el motor de base de datos
Microsoft Jet.
Despus de cambiar los valores de la propiedad DefaultType y IniPath, slo los objetos Workspace subsiguientes
reflejarn estos cambios.
Para hacer referencia a una coleccin que pertenezca al objeto DBEngine, a un mtodo o a una propiedad que se aplique
a este objeto, utilice la siguiente sintaxis:
[DBEngine.][coleccin | mtodo | propiedad]
Mtodos
Mtodos BeginTrans, CommitTrans, Rollback
Mtodo OpenConnection
Mtodo CompactDatabase
Mtodo OpenDatabase
Mtodo CreateDatabase
Mtodo RegisterDatabase
Mtodo CreateWorkspace
Mtodo RepairDatabase
Mtodo Idle
Mtodo SetOption
Propiedades
Propiedad DefaultType
Propiedad DefaultUser, DefaultPassword
Propiedad IniPath
Propiedad LoginTimeout
Propiedad SystemDB
Propiedad Version
3.2.2-Workspace
Un objeto Workspace define una sesin para un usuario. Contiene las bases de datos abiertas y proporciona
mecanismos para realizar transacciones y, en espacios de trabajo Microsoft Jet admite asegurar grupos de trabajo.
Tambin controles si utiliza el motor de base de datos Microsoft Jet o ODBCDirect para tener acceso a datos externos.
Comentarios
Utilice el objeto Workspace para administrar la sesin actual o para iniciar una sesin adicional. En una sesin, puede
abrir mltiples bases de datos o conexiones y administrar transacciones. Por ejemplo, puede:
Utilizar las propiedades Name, UserName y Type para establecer una sesin con nombre. La sesin crea un
alcance en el que puede abrir mltiples bases de datos y dirigir una instancia de transacciones anidadas.
Adems, utilizar una base de datos Microsoft Jet, puede establecer seguridad basada en nombres de usuario y
contraseas:
Utilice las colecciones Groups y Users para establecer permisos de acceso a nivel de grupo y usuario a objetos en
el objeto Workspace.
Utilice la propiedad IsolateODBCTrans para aislar mltiples transacciones que involucren a la misma base de
datos ODBC conectada a Microsoft Jet.
Cuando hace la primera referencia o utiliza un objeto Workspace, automticamente crea el espacio de trabajo
predeterminado, DBEngine.Workspaces(0). Los valores de las propiedades Name y UserName del espacio de trabajo
predeterminado son "#Default Workspace#" y "Admin," respectivamente. Si est establecida la seguridad, el valor de la
propiedad UserName es el nombre del usuario que inici la sesin.
Cuando utilice transacciones, afecta a todas las bases de datos del objeto Workspace especificado - incluso si estn
abiertos mltiples objetos Database en el objeto Workspace. Por ejemplo, utilice un mtodo BeginTrans, actualice
varios registros en una base de datos y despus elimine registros en otra base de datos. Si despus utiliza el mtodo
Rollback, las operaciones de actualizacin y eliminacin se cancelan y se deshacen los cambios. Puede crear objetos
Workspace adicionales para administrar transacciones independientemente a travs de los objetos Database.
Puede crear objetos Workspace con el mtodo CreateWorkspace. Despus de crear un nuevo objeto Workspace, debe
agregarlo a la coleccin Workspaces si necesita hacer referencia a l desde la coleccin Workspaces.
Puede utilizar un objeto Workspace creado nuevamente sin agregarlo a la coleccin Workspaces. Sin embargo, debe
hacer referencia a l mediante la variable de objeto que tiene asignada.
Para hacer referencia a un objeto Workspace en una coleccin por su nmero de orden o por el valor de la propiedad
Name, utilice cualquiera de los formatos de sintaxis siguientes:
DBEngine.Workspaces(0)
DBEngine.Workspaces("nombre")
DBEngine.Workspaces![nombre]
Mtodos
Mtodos BeginTrans, CommitTrans, Rollback
Mtodo Close
Mtodo CreateDatabase
Mtodo CreateGroup
Mtodo CreateUser
Mtodo OpenConnection
Mtodo OpenDatabase
Propiedades
Propiedad DefaultCursorDriver
Propiedad Name
Propiedad IsolateODBCTrans
Propiedad Type
Propiedad LoginTimeout
Propiedad UserName
3.2.3-Database.
Un objeto Database representa una base de datos abierta.
Comentarios
Para manipular una base de datos abierta se utiliza un objeto Database y sus mtodos y propiedades. En cualquier tipo
de bases de datos, puede:
Utilizar el mtodo Execute para ejecutar una consulta de accin.
Utilizar la propiedad RecordsAffected para determinar cuntos registros se cambiaron en una consulta de accin.
Utilizar el mtodo OpenRecordset para ejecutar una consulta de seleccin y crear un objeto Recordset.
Utilizar la propiedad Version para determinar qu versin de un motor de base de datos cre la base de datos.
Con una base de datos Microsoft Jet (archivo .mdb), tambin puede utilizar otros mtodos, propiedades y colecciones
para manipular un objeto Database, y para crear, modificar u obtener informacin acerca de sus tablas, consultas y
relaciones. Por ejemplo, puede:
Utilizar los mtodos CreateTableDef y CreateRelation para crear respectivamente tablas y relaciones.
Utilizar el mtodo CreateProperty para definir nuevas propiedades Database.
Utilizar el mtodo CreateQueryDef para crear una definicin de consulta permanente o temporal.
Utilizar los mtodos MakeReplica, Synchronize y PopulatePartial para crear y sincronizar rplicas parciales o
completas de la base de datos.
Establecer la propiedad CollatingOrder para establecer el orden alfabtico para campos de tipo carcter en
diferentes idiomas.
Utilice el mtodo CreateDatabase para crear un objeto Database permanente que se anexa automticamente a la
coleccin Databases y de ese modo guardarlo en disco.
No necesita especificar el objeto DBEngine cuando utiliza el mtodo OpenDatabase.
Abrir una base de datos con tablas vinculadas no establece automticamente vnculos a los archivos externos
especificados o a los origen de datos ODBC conectados a Microsoft Jet. Debe hacer referencia a los objetos TableDef
o Field de la tabla o abrir un objeto Recordset. Si no puede establecer vnculos a estas tablas, se produce un error
interceptable. Tambin puede necesitar permiso para tener acceso a la base de datos u otro usuario podra tener abierta la
base de datos de modo exclusivo. En estos casos se producen errores interceptable.
Tambin puede utilizar el mtodo OpenDatabase para abrir una base de datos externa (como FoxPro, dBASE y
Paradox) directamente en vez de abrir una base de datos Microsoft Jet que tiene vnculos con las tablas.
Nota No se recomienda abrir un objeto Database directamente en un origen de datos ODBC conectado a Microsoft
Jet, como Microsoft SQL Server, porque el rendimiento de la consulta es mucho ms lento que cuando se utilizan tablas
vinculadas. Sin embargo, el rendimiento no es un problema al abrir un objeto Database directamente en un archivo de
base de datos ISAM externo, como FoxPro o Paradox.
Cuando un procedimiento que declara un objeto Database termina su ejecucin, estos objetos Database locales se
cierran junto con cualquier objeto Recordset abierto. Todas las actualizaciones pendientes se pierden y las transacciones
pendientes se reanudan, pero no se produce ningn error. Se pueden terminar explcitamente las transacciones
pendientes o editar y cerrar objetos Recordset y Database, antes de abandonar los procedimientos que declaran
localmente esas variables del objeto.
Cuando utiliza uno de los mtodos de transaccin (BeginTrans, CommitTrans o Rollback) en el objeto Workspace,
estas transacciones se aplican a todas las bases de datos abiertas en el Workspace desde el que se abri el objeto
Pgina 156 de 159
3.2.4-Recordset.
Un objeto Recordset representa los registros de una tabla base o los registros que se generan al ejecutar una consulta.
Comentarios
Utilice los objetos Recordset para manipular datos en una base de datos a nivel de registro. Cuando utiliza objetos de
acceso de datos, interacta con los datos prcticamente utilizando objetos Recordset. Todos los objetos Recordset se
construyen utilizando registros (filas) y campos (columnas). Existen tres tipos de objetos Recordset:
Recordset de tipo Table - una representacin en cdigo de una tabla base que puede utilizarse para aadir, cambiar
o eliminar registros desde una nica tabla de base de datos (slo espacios de trabajo Microsoft Jet).
Recordset de tipo Dynaset - el resultado de una consulta cuyos registros pueden actualizarse. Un objeto Recordset
de tipo Dynaset es un conjunto dinmico de registros que puede utilizarse para aadir, cambiar o eliminar registros
desde una tabla o tablas subyacentes de una base de datos. Un objeto Recordset de tipo Dynaset puede contener
campos de una o ms tablas de una base de datos.
Recordset de tipo Snapshot - una copia esttica de un conjunto de registros que puede utilizar para encontrar datos
o generar informes. Un objeto Recordset de tipo Snapshot puede contener campos de una o ms tablas de una base
de datos pero no se puede actualizar.
Recordset de tipo Forward-only - idntico a un tipo Snapshot excepto que no se proporciona ningn cursor. Slo
puede avanzar en los registros. Esto mejora el rendimiento en situaciones donde slo necesita hacer una pasada
sencilla en el conjunto de resultado.
Recordset de tipo Dynamic - un conjunto de resultado de una consulta de una o ms tablas base en las que puede
agregar, cambiar o eliminar registros de una consulta que devuelve filas. Adems, tambin aparecen en el objeto
Recordset los registros que agregan, eliminan o modifican otros usuarios en la tablas base.
Pgina 157 de 159
Propiedad LockEdits
Pgina 158 de 159