47
Curso: “Desarrollo de software en Windows con Visual Basic 6.0” Duración del curso: 25 horas Nivel: Básico-Intermedio Requisito: Conocer cualquier lenguaje de programación Mejor si conoce: Basic, SQL básico Teoría: 60% Práctica: 40% Autor: Antonio Ortíz Ramírez, www.aortiz.net, [email protected] Objetivo general: Capacitar al asistente en el desarrollo de sistemas en plataforma Windows, proporcionando conocimientos sólidos de los recursos, metodologías y tecnologías del ambiente. Además, el asistente aprenderá el lenguaje de programación Visual Basic 6.0, obteniendo conocimientos a un nivel básico-intermedio que le permitan desarrollar sistemas en Windows. Alcance del curso: Se cubrirán los aspectos teóricos de la programación Windows y la filosofía de programación Visual Basic. Se aprenderá la programación Visual Basic, incluyendo los temas: tipos de datos, estructuras de control, controles, acceso universal a datos con OLE-DB (ADO), uso del API de Windows (Win32 API). Se aprenderán las bases del lenguaje SQL.

Diccionario vba.pdf

Embed Size (px)

Citation preview

Page 1: Diccionario  vba.pdf

Curso:

“Desarrollo de software en Windows con Visual Basic 6.0”

Duración del curso: 25 horas

Nivel: Básico-Intermedio

Requisito: Conocer cualquier lenguaje de programación

Mejor si conoce: Basic, SQL básico

Teoría: 60%

Práctica: 40%

Autor: Antonio Ortíz Ramírez, www.aortiz.net, [email protected]

Objetivo general: Capacitar al asistente en el desarrollo de sistemas en plataforma Windows,

proporcionando conocimientos sólidos de los recursos, metodologías y tecnologías del ambiente.

Además, el asistente aprenderá el lenguaje de programación Visual Basic 6.0, obteniendo

conocimientos a un nivel básico-intermedio que le permitan desarrollar sistemas en Windows.

Alcance del curso: Se cubrirán los aspectos teóricos de la programación Windows y la filosofía de

programación Visual Basic. Se aprenderá la programación Visual Basic, incluyendo los temas:

tipos de datos, estructuras de control, controles, acceso universal a datos con OLE-DB (ADO), uso

del API de Windows (Win32 API). Se aprenderán las bases del lenguaje SQL.

Page 2: Diccionario  vba.pdf

2 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

TEMARIO

CAPITULO I INTRODUCCIÓN

INICIANDO CON VISUAL BASIC

CAPITULO II CAJA DE HERRAMIENTAS

CAPITULO III TIPOS DE DATOS

CAPITULO IV PRINCIPALES ESTRUCTURAS DE CONTROL Y SENTENCIAS DE

VBA

CAPITULO V PRINCIPALES FUNCIONES DE VBA

CAPITULO VI PRINCIPALES OBJETOS DE VISUAL BASIC

CAPITULO VII ACCESO A DATOS CON ADO

CAPITULO VIII CAPITULO VII: EL API DE WINDOWS

CAPITULO IX DISTRIBUCION

Page 3: Diccionario  vba.pdf

3 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

CAPITULO I: INTRODUCCIÓN

Qué es Visual Basic?

- La parte “Visual se refiere al método utilizado para la Interfase Gráfica del Usuario (GUI). En lugar

de escribir grandes cantidades de código para describir la apariencia y posición de los elementos

de la interfase, simplemente agrega objetos preconstruidos y los coloca en la pantalla.

- La parte “Basic”, se refiere al lenguaje BASIC (Beginners All-Purpose Symbolic Instruction Code),

un lenguaje utilizado por más programadores que cualquier otro lenguaje en la historia de la

computación. Visual Basic ha evolucionado del lenguaje Basic original y ahora contiene cientos de

sentencias, funciones y palabras reservadas, muchas de las cuales se relacionan directamente

con el GUI de Windows. Los principiantes pueden crear útiles aplicaciones aprendiendo unas

cuantas palabras reservadas, además, el alcance del lenguaje permite a los profesionales hacer

cualquier cosa que pueda ser hecha utilizando cualquier otro lenguaje de programación Windows.

El lenguaje de programación Visual Basic no es único de Visual Basic. El sistema de programación

Visual Basic, edición Aplicaciones (Applications Edition) se incluye en Microsoft Excel, Microsoft

Access, y muchas otras aplicaciones de Windows utilizan el mismo lenguaje. El Visual Basic

Scripting Edition (VBScript) es un lenguaje script usado ampliamente y es un subconjunto del

lenguaje Visual Basic. El esfuerzo hecho en aprender Visual Basic será de utilidad en estas otras

áreas.

Sea que se trate de crear una pequeña utilidad para sí mismo o para su equipo de trabajo, un gran

sistema corporativo, o una aplicación distribuida por el globo vía Internet, Visual Basic tiene las

herramientas que necesita.

Las características de acceso a datos permiten crear bases de datos y aplicaciones front-

end para muchas bases de datos populares como SQL Server y otras bases de datos de

nivel corporativo.

La tecnología ActiveX permite utilizar la funcionalidad de otras aplicaciones, como es el

procesador de palabras de Microsoft Word, la hoja de cálculo de Microsoft Excel, y otras

aplicaciones Windows.

Page 4: Diccionario  vba.pdf

4 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Las capacidades para Internet hacen fácil acceder a documentos y aplicaciones a través de

Internet o una Intranet desde su Aplicación, o crear aplicaciones servidor de Internet.

La aplicación final es un verdadero archivo .exe que usa una máquina virtual Visual Basic

que puede distribuir libremente.

Lo nuevo en Visual Basic 6.0

ADO (ActiveX Data Objects). Esta nueva tecnología de acceso a datos contiene un modelo

de objeto más simple, mejor integración con otras tecnologías Microsoft y no Microsoft, una

interfaz común para acceso local y remoto a datos, y conjunto de registros (recordsets)

jerárquicos.

Es posible usar “drag and drop” para crear reportes rápidamente a partir de cualquier

recordset, incluyendo recordsets jerárquicos.

Podrá utilizar el administrador visual de datos para mostrar todas las bases de datos que

están conectadas y sus tablas, vistas, “stored procedures”, etc.

Existen un conjunto de rutinas que permiten utilizar el sistema de archivos y crear archivos

de texto y directorios.

Escriba aplicaciones Internet del lado Servidor que usan código Visual Basic para

responder a peticiones de usuarios desde un navegador.

El control CoolBar, es un control contenedor que puede ser usado para crear barras de

herramientas configurables por el usuario parecidas a las de Internet Explorer.

Las rutinas ahora pueden regresar arreglos, lo cual indica que las clases pueden tener

arreglos como propiedad. También es posible asignar el contenido completo de un arreglo

a otro, siempre que el arreglo de la parte izquierda de la asignación sea un arreglo

dinámico.

Cree componentes ActiveX que usan un ambiente aparte para ejecutar rutinas asíncronas

en hilos separados.

Page 5: Diccionario  vba.pdf

5 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

REQUERIMIENTOS Y ESPECIFICACIONES DE VISUAL BASIC

Pentium® 90MHz o superior

VGA 640x480 o resolución superior soportada por Microsoft Windows.

Microsoft Windows NT 4.0 o posterior, o Microsoft Windows 95 o posterior.

24 MB de RAM para Windows 95/98, 32 MB parar Windows NT.

Microsoft Internet Explorer version 4.01 o posterior (version 4.01 Service Pack 1 o posterior

para desarrollo de aplicaciones DHTML, y 4.x para usuarios finales de estas aplicaciones).

Requerimientos de espacio en disco:

Standard Edition: instalación típica 48 MB, completa 80 MB.

Professional Edition: instalación típica 48 MB, completa 80 MB.

Enterprise Edition: instalación típica 128 MB, completa 147 MB.

Componentes adicionales (si se requieren): MSDN (para documentación): 67 MB, Internet

Explorer 4.x: aproximadamente 66 MB.

CD-ROM

LIMITACIONES DE PROYECTO

Un proyecto puede contener hasta 32,000 identificadores (cualquier palabra no reservada), que

incluye, pero no limitado a, formularios, controles, módulos, variables, constantes, procedimientos,

funciones, y objetos.

Los nombres de variables en Visual Basic no pueden ser más largos de 255 caracteres, y los

nombres de formularios, controles, módulos, y clases no pueden ser más largos de 40 caracteres.

Visual Basic no impone un límite sobre el número de objetos distintos en un proyecto.

LIMITACIONES DE CONTROLES

Cada control no gráfico (todos los controles excepto shape, line, image, y etiqueta) utiliza una

ventana. Cada ventana usa recursos del sistema, limitando el número total de ventanas que

pueden existir al mismo tiempo. El límite exacto depende de los recursos disponibles del sistema y

del tipo de controles utilizados.

Page 6: Diccionario  vba.pdf

6 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Para reducir el consumo de recursos del sistema, use los controles shape, line, label, e image en

lugar de picture box para crear o desplegar gráficos.

NUMERO TOTAL DE CONTROLES

El número máximo de controles permitidos en un formulario depende del tipo de controles usados

y los recursos del sistema disponibles. Aunque, hay un límite fijo de 254 nombres de controles por

formulario. Un arreglo de controles cuenta como un sólo control, ya que todos los controles en el

arreglo comparten el mismo nombre de control.

El límite de elementos en un arreglo de controles es de 0 a 32767 en todas las versiones.

LIMITE PARA CONTROLES ESPECIFICOS

Propiedad Aplica a Límite

List y ListCount List box y Combo box El número máximo de elementos es de 32K; el límite

para el tamaño de cada elemento es de 1K

Text Text box 64K

Caption Label 1024 bytes

Command, Check

box, Frame, y Option

255 caracteres. Cualquier título sobre estos límites es

truncado. Los títulos en propiedades de controles

personalizados están limitados a 32K

Menú control 235 caracteres

Tag Todos los controles Limitado sólo por la memoria disponible

Name Todos los controles Limitado a 40 caracteres

NOTA: en Visual Basic, los nombres de propiedades de control están limitados a 30 caracteres

LIMITACIONES DE CODIGO

La cantidad de código en una forma, clase, o módulo está limitado a 65534 líneas. Una línea de

código puede contener hasta 1023 bytes. Hasta 256 espacios en blanco pueden preceder el texto

Page 7: Diccionario  vba.pdf

7 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

en una línea, y no más de 24 caracteres de continuación de línea ( _ ) pueden ser incluidos en una

línea lógica.

PROCEDIMIENTOS, TIPOS Y VARIABLES

No hay límite sobre el número de procedimientos por módulo. Cada procedimiento puede contener

hasta 64K de código. Si un procedimiento o módulo excede este límite, Visual Basic genera un

error al tiempo de compilación. Visual Basic usa tablas para guardar los nombres de

identificadores (variables, procedimientos, constantes, etc) en el código. Cada tabla está limitada a

64K.

TABLA DE DECLARACION DE DLL’s

Cada formulario y módulo de código usa una tabla que contiene una estructura describiendo un

punto de entrada a DLL’s. Cada estructura usa aproximadamente 40 bytes, con una restricción

total de 64K, resultando alrededor de 1500 declaraciones permitidas por módulo.

Page 8: Diccionario  vba.pdf

8 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

CONCEPTOS

Sistema: Conjunto de métodos, recursos y dispositivos para realizar un fin específico.

Clase: Define las características (propiedades) y acciones de un tipo de objeto. A las clases

también se les llama “Moldes”.

Objeto: Entidad con características y acciones definidas de cierto tipo o clase.

Contenedor: Objeto que existe para contener otros objetos y además puede realizar alguna

acción.

Propiedad: Característica con nombre. Ejemplo de propiedades son: ancho, alto, color, etc.

Función: Conjunto de instrucciones agrupadas en un procedimiento y que regresa un valor.

Método: Acción que puede realizar un objeto. Por ejemplo: el método Refresh o Move. Un evento

sólo se ejecuta por una llamada mediante código.

Evento: Acción que puede realizar un objeto. Los eventos normalmente se ejecutan como

respuesta a una acción del usuario como presionar un botón. Los eventos también pueden

dispararse por el sistema (como el Timer) o por una llamada en el código.

Thread / Hilo: Un “thread” es básicamente un camino de ejecución a través de un programa.

También es una pequeña unidad de ejecución que el Win32 maneja. Un thread consiste de un

Stack, el estado de los registros del CPU, y una entrada en la lista de ejecución del Sistema. Cada

thread comparte todos los recursos del proceso.

Los hilos de baja prioridad pueden estar esperando mientras hilos de más alta prioridad completan

su trabajo. En equipos con múltiples procesadores, el programador de tareas puede mover hilos a

diferentes procesadores para “balancear” la carga de CPU’s.

Ejecución Asíncrona: Algunas funciones pueden ser ejecutadas de manera asíncrona, esto es, la

aplicación llama la función, y el manejador, después de un mínimo procesamiento, regresa el

control a la aplicación. Entonces la aplicación puede llamar otras funciones mientras la primera

función continúa ejecutándose.

Page 9: Diccionario  vba.pdf

9 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

API: (Application Programming Interface). Son las funciones, mensajes, estructuras de datos, tipos

de datos, y sentencias que puede utilizar para crear aplicaciones. El API de Windows consiste de

un conjunto de Librerías de Ligado Dinámico (DLL’s) conteniendo los procedimientos relacionados

al sistema. Para llamar estos procedimientos desde Visual Basic, primero debe declararlos

utilizando la sentencia Declare. Entonces podrá llamarlos como cualquier otro procedimiento.

OLE: Object Linking and Embedded, un ambiente unificado de servicios basados en objetos con la

capacidad de personalizar estos servicios y arbitrariamente extender la arquitectura a través de

servicios personalizados, con el propósito de permitir total integración entre componentes.

Cursor: Un objeto de la base de datos utilizado por las aplicaciones para manipular datos por

renglones de manera similar a usar registros en un archivo secuencial.

Stored Procedure: Una colleción precompilada de sentencias Transact-SQL almacenadas bajo un

nombre y procesadas como unidad. Los Stored Procedures también sirven para administrar SQL

Server y mostrar información sobre las base de datos y usuarios. Los Stored Procedure

proporcionados por SQL Server son llamados “system stored procedured”.

Recordset: Objeto ADO usado para contener un resultado. También muestra un cursor,

dependiendo de las propiedades del recordset asignado por una aplicación.

Back End: Término aplicado al servidor de base de datos cuando está procesando, almacenando

datos, y obteniendo datos.

Page 10: Diccionario  vba.pdf

10 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

El IDE de Visual Basic

Cuando inicia Visual Basic, aparece el Entorno Integrado de Desarrollo (IDE), como se muestra a

continuación

Page 11: Diccionario  vba.pdf

11 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

EL ENTORNO INTEGRADO DE DESARROLLO (IDE) DE VISUAL BASIC CONSISTE DE LOS

SIGUIENTES ELEMENTOS:

Barra de Menús / Menu Bar

Muestra los comandos que utilizará para trabajar con Visual Basic. Existe menús estándar como

File / Archivo, Edit / Edición, y Help / Ayuda, también existen menús que proveen acceso a

funciones específicas para programación como son: Project / Proyecto, Format / Formato, o Debug

/ Depuración.

Menús Contextuales / Context Menus

Contienen atajos para acciones utilizadas con frecuencia. Para abrir un menú contextual, haga clic

con el botón derecho del mouse sobre el objeto que esté usando. La lista de atajos disponible en el

menú contextual depende de la parte del IDE donde haga clic con el botón derecho del mouse.

Barras de Herramientas / Toolbar

Permiten acceso rápido a comandos usados comúnmente en el ambiente de desarrollo. Por

defecto, la barra de herramientas Estándar es mostrada cuando inicia Visual Basic. Barras

adicionales para edición, diseño de formularios, y depuración pueden ser mostradas u ocultadas

de los comandos de las barras de herramientas a través del menú View / Ver.

Caja de Herramientas / Toolbox

Proveen un conjunto de herramientas que puede utilizar al tiempo de diseño para colocar controles

sobre una forma. Es posible personalizar el diseño de la caja de herramientas por defecto,

agregando o quitando controles.

Ventana del Explorador de Proyecto / Project Explorer Window

Page 12: Diccionario  vba.pdf

12 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Lista los formularios y módulos en el proyecto actual. Un proyecto es la colección de archivos que

se utilizan para construir una aplicación.

Visor de Objetos / Object Browser

Muestra los objetos disponibles para usar en el proyecto y permite una manera rápida de navegar

a través del código. Podrá usar el Visor de Objetos para explorar los objetos en Visual Basic y

otras aplicaciones, ver los métodos y propiedades disponibles para estos objetos, y pegar

procedimientos de código en su aplicación.

Diseñador de Formulario / Form Designer

Funciona como una ventana que puede personalizar para diseñar la interfase de su aplicación.

Agregue controles, gráficas, e imágenes a una forma para crear la apariencia que desee. Cada

forma en su aplicación tiene su propia ventana para Diseño de Formulario.

Ventana de Edición de Código / Code Editor Window

Funciona como un editor para escribir el código de la aplicación. Una ventana para edición de

código por separado es creada por cada forma o módulo de código en su aplicación.

Ventana Posición del Formulario / Form Layout Window

La ventana para posición del formulario permite posicionar los formularios en su aplicación

utilizando una pequeña representación gráfica en la pantalla.

Ventanas Inmediato, Local e Inspección / Inmediate, Locals, and Watch Windows

Estas ventanas son provistas para uso en depuración de su aplicación. Sólo están disponibles

mientras se ejecuta su aplicación con el IDE.

Page 13: Diccionario  vba.pdf

13 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

INICIANDO CON VISUAL BASIC

Existen tres pasos principales para crear una aplicación en Visual Basic:

1) Crear la interfaz,

2) Asignar propiedades, y

3) Escribir el código

Crear la interfaz

Los “Formularios” son la base para la creación de la interfase de una aplicación. Puede utilizar

formularios para agregar ventanas y cajas de diálogo a su aplicación. También puede usarlos

como contenedores para elementos que no son parte visible de la interfase de la aplicación. Por

ejemplo, puede tener una formulario en su aplicación que sirve como contenedor para gráficas que

piensa mostrar en otros formularios.

El primer paso para construir una aplicación Visual Basic es crear los formularios que serán la

base de la interfase de la aplicación. Enseguida coloque los objetos que formarán la interfase en

los formularios que cree.

Asignar Propiedades

El siguiente paso es asignar propiedades para los objetos que ha creado, la ventana Propiedades

nos provee es una manera fácil de asignar propiedades a todos los objetos en el formulario actual.

La ventana Propiedades se muestra a través del menú View-“Properties Window”.

Escribir Código

La ventana “Edición de Código” es donde se escribe el código para su aplicación. El código

consiste en sentencias del lenguaje, constantes, y declaraciones. Utilizando la venta de Edición de

Código, podrá ver y editar rápidamente cualquier código en la aplicación.

Page 14: Diccionario  vba.pdf

14 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Para abrir la ventana de Código:

Haga Doble-clic en el formulario o control para el cual desea escribir código

Desde la ventana “Project Explorer” o Explorador del Proyecto, seleccione el nombre del

Formulario o Módulo y presione el botón “View Code” o Ver Código.

El código en una aplicación de Visual Basic está dividida en pequeños bloques llamados

Procedimientos, un procedimiento de evento, contiene el código que es ejecutado cuando ocurre

un evento (como cuando el usuario hace clic en un botón). Un procedimiento de evento para un

control combina el nombre del control actual (especificado en la propiedad “Name”), una subraya (

_ ), y el nombre del evento. Por ejemplo, si desea que un botón de comandos llamado Command1

ejecute un procedimiento de evento cuando es presionado, use el procedimiento

Command1_Click.

Ejercicio No. 1: Cree una aplicación llamada “Hola Mundo”, la cual contendrá un formulario con

sólo una caja de texto y un botón. Al presionar el botón la caja mostrará el texto “Hola Mundo”.

Cree un nuevo Proyecto

Cree un Formulario con nombre FmaPpal

Coloque un Botón de Comandos con nombre BtnHola

Coloque una Caja de Texto de nombre TxtHola

Haga doble clic en el objeto “BtnHola” y en la ventana de código asegúrese que se encuentre en el

evento Click, aquí escriba el código: TxtHola.Text = “Hola Mundo”

Presione F5 para ejecutar la aplicación

Page 15: Diccionario  vba.pdf

15 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Propiedades, Métodos y Eventos

Los formularios y controles en Visual Basic son objetos que tienen propiedades, métodos y

eventos. Las propiedades se conocen como los atributos de un objeto, los métodos como sus

acciones, y lo eventos como sus respuestas.

Por ejemplo, el globo de helio de un niño tiene sus propiedades, métodos y eventos. Las

propiedades del globo incluyen atributos visibles como el alto, diámetro y color. Otras propiedades

describen el estado (como inflado o desinflado), o atributos que no son visibles como su edad. Por

definición todos los globos tienen estas propiedades pero los valores de estas propiedades pueden

ser diferentes de un globo a otro.

Un globo también tiene métodos o acciones que puede realizar. Como el método inflar (la acción

de llenado con helio), un método desinflar (expeler su contenido).

Los globos también tienen respuestas predefinidas a ciertos eventos externos. Por ejemplo, un

globo responderá al evento de ser picado desinflándose por sí solo, o al evento de ser liberado por

flotar en el aire.

Page 16: Diccionario  vba.pdf

16 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

CAPITULO II: CAJA DE HERRAMIENTAS DE VISUAL BASIC

La caja de herramientas, contiene los controles que se utilizan para crear una aplicación en Visual

Basic, estos son los principales controles en la barra de herramientas estándar:

Etiqueta / Label: Una etiqueta muestra texto que el usuario no puede cambiar directamente.

Podrá utilizar las etiquetas para identificar controles, como cajas de texto y barras de corrimiento,

que no tienen una propiedad título. el texto mostrado en la etiqueta es controlado por la propiedad

Caption, que puede ser asignada en tiempo de diseño en la ventana Propiedades o en tiempo de

ejecución por asignar un valor en el código. Por defecto, la propiedad Caption es la única parte

visible de la etiqueta.

La propiedad Autosize, determina si la etiqueta cambiará de tamaño de manera automática para

mostrar todo el contenido de la propiedad Caption. Esto es importante si se cambia el valor de esta

propiedad en tiempo de ejecución.

Cajas de Texto / TextBox: Las cajas de texto son controles que pueden ser usados para obtener

una entrada del usuario o para desplegar texto. Las cajas de texto no pueden ser utilizadas para

mostrar texto que no desea que el usuario cambie, a menos que asigne la propiedad Locked a

verdadero. El texto mostrado en la caja de texto es controlado por la propiedad Text. Esta puede

ser asignada de tres maneras diferentes: al tiempo de diseño en la ventana Propiedades, en

tiempo de ejecución por asignar un valor en el código, o por la entrada del usuario en tiempo de

ejecución.

Page 17: Diccionario  vba.pdf

17 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Casilla de Verificación / CheckBox: Indica cuando una condición particular es verdadera o falsa.

Las casillas de verificación se utilizan en una aplicación para capturar valores Verdadero/Falso o

Sí/No del usuario. Las casillas de verificación trabajan de manera independiente de otra, por lo

tanto, un usuario puede seleccionar cualquier número de casillas al mismo tiempo.

Botones de Opción / Options Buttons: Presentan un conjunto de dos o más opciones al usuario.

Al contrario de los check boxes, los botones de opción trabajan como parte de un grupo; al

seleccionar un botón, inmediatamente se limpian todos las demás opciones del grupo.

Cajas de Lista y Cajas Combinadas / List Boxes y Combo Boxes: Las cajas de lista y cajas

combinadas presentan una lista de opciones al usuario. Por defecto, las opciones son mostradas

verticalmente en sólo una columna, aunque también puede establecer múltiples columnas. Si el

número de elementos excede los que pueden ser mostrados en la caja combinada o caja de lista,

aparecerán barras de corrimiento de manera automática sobre el control.

List Box Combo Box

Page 18: Diccionario  vba.pdf

18 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Barras de Corrimiento / Scroll Bars: Como estos controles indican la posición actual en una

escala, las barras de corrimiento pueden ser utilizadas para controlar la entrada en un programa,

por ejemplo, para controlar el volumen del sonido o ajustar los colores de una foto. Los controles

de barra horizontal (HScrollBar) y vertical (VScrollBar) operan independientemente de otros

controles y tienen sus propios eventos, propiedades, y métodos. Los controles de barras de

corrimiento no son los mismos que aparecen en las cajas de texto, cajas de listas, cajas

combinadas, o formularios MDI. La guía de interfase de Windows ahora sugiere utilizar controles

de desplazamiento (Slider Controls) como entrada en lugar de barras de corrimiento. Ejemplos de

estos controles de desplazamiento pueden ser vistos en el panel de control de Windows 95/98.

Picture Box: El principal uso del control Picture Box es mostrar una foto al usuario. La foto actual

que se muestra es determinada por la propiedad Picture. La propiedad Picture contiene el nombre

del archivo (y opcionalmente el path) de la archivo de imagen a ser mostrado. Para mostrar o

reemplazar una foto en tiempo de ejecución, puede utilizar la función LoadPicture para asignar la

propiedad Picture. Ejemplo: MiPct = LoadPicture(“Picasso.Bmp”)

El control Picture Box también puede ser usado como un contenedor para otros controles. Al igual

que el control frame, puede colocar otros controles sobre el control Picture Box. Los controles

contenidos son movidos con el control Picture Box y sus propiedades Top y Left serán relativos al

picture box en lugar del formulario.

Timer: Ejecuta el evento timer al intervalo de tiempo especificado.

Shape: Permite colocar un rectángulo, cuadrado, elipse o círculo en una forma, frame o picture

box.

Page 19: Diccionario  vba.pdf

19 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

USANDO EL VALOR DE UN CONTROL

Todos los controles tienen una propiedad que es utilizada para guardar o tomar valores al referirse

al control, sin utilizar el nombre de la propiedad. Esto es llamado el valor del control y usualmente

es el más importante o la más utilizada de las propiedades del control. La siguiente tabla lista las

propiedad que es considerada el valor de cada control

CONTROL VALOR

Check box Value

Combo box Text

Command button Value

Common dialog Action

Data Caption

DataCombo Text

DataGrid Text

Directory list box Path

Drive list box Drive

File list box FileName

FlexGrid Text

Frame Caption

Horizontal scroll bar Value

Image Picture

Label Caption

Line Visible

Cuando desea referirse a la propiedad de un control que es el valor del control, puede hacerlo sin

especificar el nombre de la propiedad en el código. Por ejemplo, esta línea asigna el valor de la

propiedad Text de un control text box:

Text1 = “Este texto es asignado a la propiedad Text of Text1”

En este ejemplo, la propiedad Caption de Label1 es asignada al valor de la propiedad Filename de

File1 cuando el usuario hace clic sobre un archivo en el cuadro file list.

Private Sub File1_Click () Label1 = File1 End Sub

Page 20: Diccionario  vba.pdf

20 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

EL CONTROL ADO

El control ADO (ADO Data Control), usa Microsoft ActiveX Data Objects (ADO) para crear

conexiones entre controles conectados a datos (data-bound controls) y proveedores de datos (data

providers). Los controles con conexión a datos son todos los controles que cuentan con la

propiedad DataSource. Los proveedores de datos pueden ser cualquier fuente escrita para la

especificación OLE DB.

Aunque puede usar los ActiveX Data Objects (ADO) directamente en su aplicación, el control de

datos ADO tiene la ventaja de ser un control gráfico (con botones de avanzar y regresar) y una

interfase fácil de usar que permite crear aplicaciones de base de datos con un mínimo de código.

En versiones previas de Visual Basic se existían los controles “Data Control” y “Remote Data

Control” (RDC) para acceso a datos. Ambos controles se siguen incluyendo por compatibilidad. Sin

embargo, debido a la flexibilidad de ADO, se recomienda que las nuevas aplicaciones de base de

datos sean creadas usando el control ADO.

Page 21: Diccionario  vba.pdf

21 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

OBTENIENDO EL ENFOQUE: El enfoque o focus es la capacidad de recibir entradas del usuario

a través del mouse o teclado. Cuando un objeto tiene el enfoque, puede recibir entradas del

usuario. En la interfase de Microsoft Windows, varias aplicaciones pueden estar ejecutándose al

mismo tiempo, pero sólo la aplicación con el enfoque tendrá una barra de título activa y podrá

recibir entradas del usuario. En un formulario de Visual Basic con varias cajas de texto, sólo la caja

de texto con el enfoque podrá mostrar el texto entrado por el teclado. Los eventos GotFocus y

LostFocus ocurren cuando un objeto recibe o pierde el enfoque. Los formularios y algunos

controles soportan estos eventos.

ESTABLECIENDO EL ORDEN DEL TAB: El “tab order”, es el orden en que el usuario se mueve

de un control a otro presionando la tecla TAB. Cada formulario tienen su propio “tab order”.

Normalmente el orden del tab es el mismo orden con el que fueron creados los controles.

Al presionar la tecla Tab, el enfoque se mueve de un control a otro. Usualmente, presionando la

tecla TAB en tiempo de ejecución selecciona cada control en el orden del tab. Puede quitar un

control del orden del tab estableciendo su propiedad TabStop a False (0).

Cuadros de diálogo: En aplicaciones basadas en Windows, los cuadros de diálogos son usadas

para preguntar al usuario por datos necesarios por la aplicación para continuar o para desplegar

información. Los cuadros de diálogo son un tipo especializado de objetos formulario que pueden

ser creados de tres maneras:

1. Diálogos predefinidos pueden ser creados usando las funciones MsgBox o InputBox.

2. Diálogos personalizados utilizando un formulario estándar o personalizando un diálogo

existente

3. Diálogos estándar, como Print y File Open, pueden ser creados usando el control common

dialog

Page 22: Diccionario  vba.pdf

22 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

CAPITULO III: TIPOS DE DATOS

Tipo de dato Memoria requerida Rango

Byte 1 byte 0 a 255

Boolean 2 bytes True ó False

Integer 2 bytes -32,768 a 32,767

Long

(long integer)

4 bytes -2,147,483,648 a 2,147,483,647

Single

(single-precision

floating-point)

4 bytes -3.402823E38 a -1.401298E-45 para valores

negativos; 1.401298E-45 a 3.402823E38 para

valores positivos

Double

(double-precision

floating-point)

8 bytes -1.79769313486231E308 a

-4.94065645841247E-324 para valores

negativos; 4.94065645841247E-324 a

1.79769313486232E308 para valores positivos

Currency

(scaled integer)

8 bytes -922,337,203,685,477.5808 a

922,337,203,685,477.5807

Decimal 14 bytes +/-79,228,162,514,264,337,593,543,950,335

sin punto decimal;

+/-7.9228162514264337593543950335 con 28

lugares a la derecha del punto decimal; el

número más pequeño superior al cero es:

+/-0.0000000000000000000000000001

Date 8 bytes Enero 1, 100 to Diciembre 31, 9999

Object 4 bytes Cualquier referencia a un objeto

String

(longitud variable)

10 bytes + string length 0 hasta aproximadamente 2 billion

String Length of string 1 hasta aproximadamente 65,400

Page 23: Diccionario  vba.pdf

23 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

(longitud fija)

Variant

(con números)

16 bytes Cualquier valor numérico hasta el rango de un

doble

Variant

(con caracteres)

22 bytes + longitud de

la cadena

El mismo rango que para String de longitud

variable

User-defined

(usando Type)

Número requerido por

sus elementos

el rango de cada elemento es el mismo que

para su tipo de dato.

Notas:

- Los arreglos de cualquier tipo de dato requieren 20 bytes de memoria más 4 bytes por cada

dimensión más el número de bytes ocupados por el dato. La memoria ocupada por los datos

puede ser calculada por multiplicar el número de elementos de datos por el tamaño de cada

elemento. Por ejemplo, los datos en un arreglo unidimensional de 4 enteros de 2 bytes cada uno

ocupan 8 bytes. Los 8 bytes requeridos por los datos más los 24 bytes adicionales resulta en 32

bytes el total de memoria requerida para almacenar este arreglo.

- Un “Variant” conteniendo un arreglo requiere 12 bytes más que el arreglo por sí solo.

Page 24: Diccionario  vba.pdf

24 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

CAPITULO IV: PRINCIPALES ESTRUCTURAS DE CONTROL Y SENTENCIAS DE VBA

Dim: Declara variables y reserva espacio para almacenarlas. Sintaxis:

Dim [WithEvents] varname[([subscripts])] [As [New] type] [, [WithEvents] varname[([subscripts])] [As

[New] type]] . . .

Do - Loop: Repite un bloque de sentencias mientras la condición es verdadera o hasta que la

condición sea verdadera. Sintaxis:

Do [{While | Until} condition]

[statements]

[Exit Do]

[statements]

Loop

también puede ser usada la siguiente sintaxis:

Do

[statements]

[Exit Do]

[statements]

Loop [{While | Until} condition]

End: Termina un procedimiento o bloque. Sintaxis:

End

End Function

End If

End Property

End Select

End Sub

End Type

End With

Page 25: Diccionario  vba.pdf

25 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Exit: Sale de un bloque Do..Loop, For..Next, Function, Sub, o código Property. Sintaxis:

Exit Do

Exit For

Exit Function

Exit Property

Exit Sub

For Each: Repite un grupo de sentencias por cada elemento en un arreglo o colección. Sintaxis:

For Each element In group

[statements]

[Exit For]

[statements]

Next [element]

For..Next: Repite un grupo de sentencias un número especificado de veces. Sintaxis:

For counter = start To end [Step step]

[statements]

[Exit For]

[statements]

Next [counter]

Function: Declara el nombre, argumentos, y código que forma parte del cuerpo de una función.

Sintaxis:

[Public | Private | Friend] [Static] Function name [(arglist)] [As type]

[statements]

[name = expression]

[Exit Function]

[statements]

[name = expression]

End Function

Page 26: Diccionario  vba.pdf

26 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

If..Then..Else: Condiciona la ejecución de un grupo de sentencias, dependiendo del valor de una

expresión. Sintaxis:

If condición Then

[sentencias]

Else

[sentencias]

End If

On Error: Activa una rutina manejador de errores y especifica la ubicación de la rutina sin un

procedimiento. También puede ser usada para desactivar una rutina manejador de errores.

Sintaxis:

On Error GoTo line

On Error Resume Next

On Error GoTo 0

On Error Goto line, activa el manejador de errores que inicia en la línea especificada en el

argumento line. El argumento line puede ser cualquier número de línea o etiqueta de línea. La

línea especificada debe estar en el mismo procedimiento que la sentencia On Error, de lo contrario

ocurrirá un error al compilar.

On Error Resume Next, especifica que al ocurrir un error en tiempo de ejecución el control vaya a

la sentencia que sigue a la sentencia que provocó el error.

On Error Goto 0, desactiva cualquier manejador de error.

Select Case: Ejecuta uno de varios grupos de sentencias, dependiendo del valor de una

expresión. Sintaxis:

Page 27: Diccionario  vba.pdf

27 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Select Case testexpression

[Case expressionlist-n

[statements-n]] ...

[Case Else

[elsestatements]]

End Select

SendKeys: Envía uno o más teclazos a la ventana activa como si fueran escritos por el teclado.

Sintaxis:

SendKeys string[, wait]

Para especificar un caracter, use el símbolo por sí mismo. Por ejemplo, para representar la letra A,

use “A” para string. El signo suma (+), potencia (^), porcentaje (%), tilde (~), y paréntesis () tienen

significado especial para Senkeys. Para especificar uno de estos caracteres, enciérrelos con llaves

{}. Por ejemplo, para especificar el signo suma, use {+}.

Para especificar combinación de teclas con Shift, Ctrl, y Alt, preceda el código de la tecla con uno

de los siguientes códigos

SHIFT +

CTRL ^

ALT %

Para especificar que cualquier combinación de Shift, Ctrl, y Alt deben estar presionadas mientras

otras teclas son presionadas, encierre los códigos para estas teclas entre paréntesis. Por ejemplo,

para especificar que presione Shift mientras E y C son presionados, use “+(EC)”. Para especificar

Shift presionado mientras E es presionado, seguido de C sin Shift, use “+EC”.

Set, asigna una referencia a un objetos a una variable o propiedad. Sintaxis:

Set objectvar = {[New] objectexpression | Nothing}

Sub, Declara el nombre, argumentos, y código que forma parte del cuerpo de un procedimento.

Sintaxis:

Page 28: Diccionario  vba.pdf

28 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

[Private | Public | Friend] [Static] Sub name [(arglist)]

[statements]

[Exit Sub]

[statements]

End Sub

Type, usado en el nivel módulo para definir un tipo de dato definido por el usuario conteniendo uno

o más elementos. Sintaxis:

[Private | Public] Type varname

elementname [([subscripts])] As type

[elementname [([subscripts])] As type]

. . .

End Type

While..Wend, Ejecuta un bloque de sentencias mientras una condición es verdadera. Sintaxis:

While condition

[statements]

Wend

Page 29: Diccionario  vba.pdf

29 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

CAPITULO V: PRINCIPALES FUNCIONES DE VBA

Asc, Regresa un entero representando el código del caracter que corresponde a la primera letra

en la cadena. Sintaxis:

Asc(string)

Chr, Regresa una cadena conteniendo el caracter asociado con el código especificado. Sintaxis:

Chr(charcode)

Date, Regresa un Variant (Date) conteniendo la fecha actual del sistema. Utilice Date para

actualizar la fecha del sistema. Sintaxis:

Date

DateDiff, Regresa un Variant (long) especificando el intervalo de tiempo entre dos fechas

específicas. Sintaxis:

DateDiff(intervalo, fecha1, fecha2)

El intervalo es una cadena que puede tener estos valores

Valor Intervalo

yyyy Años

m Mes

d Días

h Horas

n Minutos

s Segundos

DoEvents, Pasa la ejecución al sistema operativo para que pueda procesar otros eventos.

Sintaxis:

DoEvents()

Error, Regresa el mensaje de error que corresponde al último error o al número de error

especificado. Sintaxis:

Error( [no. error] )

Page 30: Diccionario  vba.pdf

30 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Format, Regresa un Variant (string) conteniendo una expresión formateada de acuerdo a las

instrucciones contenidas en la expresión de formato. Sintaxis:

Format(expresión, formato)

Iif, Regresa una de dos partes, dependiendo de la evaluación de una expresión. Sintaxis:

Iif(expresión, valor cuando es verdadera, valor cuando es falso)

InputBox, Muestra un cuadro de diálogo, espera la entrada de texto del usuario o que haga clic en

un botón, y regresa una cadena con el contenido de la caja de texto. Sintaxis:

InputBox(mensaje[, título] [, default])

InStr, Regresa un variant (long) especificando la posición de la primera ocurrencia de una cadena

en otra. Sintaxis.

InStr([inicio,] cadena1, cadena2)

IsNull, Regresa un valor boleano que indica si una expresión contiene datos no válidos (Null).

Sintaxis:

IsNull(expresión)

IsNumeric, Regresa un valor boleano que indica si una expresión puede ser evaluada como un

número. Sintaxis:

IsNumeric(expresión)

LCase, Regresa una cadena que ha sido convertida a minúsculas. Sintaxis:

LCase(cadena)

Left, Regresa un Variant (string) conteniendo un número específico de caracteres de la parte

izquierda de una cadena. Sintaxis:

Left(cadena, longitud)

Len, Regresa un Long conteniendo el número de caracteres de una cadena o el número de bytes

requeridos para almacenar una variable.

Len(cadena | nombredevariable)

Mid, Regresa un Variant (string) conteniendo un número específico de caracteres de una cadena.

Sintaxis:

Page 31: Diccionario  vba.pdf

31 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Mid(cadena, inicio[,longitud])

MsgBox, Muestra un mensaje en un cuadro de diálogo, espera que el usuario presione un botón, y

regresa un Integer, indicando el botón que presionó el usuario. Sintaxis:

MsgBox(mensaje[,botones] [,título])

Now, Regresa un Variant (date) especificando la fecha y hora actual del sistema. Sintaxis:

Now

Right, Regresa un Variant (string) conteniendo un número específico de caracteres del lado

derecho de una cadena. Sintaxis:

Right(cadena, longitud)

Str, Regresa un Variant (string) que representa un número. Sintaxis:

Str(número)

Time, Regresa un Variant (date) indicando la hora actual del sistema. Sintaxis:

Time

UCase, Regresa un Variant (string) conteniendo la cadena especificada, convertida en

mayúsculas. Sintaxis:

UCase(string)

Val, Regresa los números contenidos en una cadena como un valor numérico del tipo apropiado.

Sintaxis:

Val(cadena)

Page 32: Diccionario  vba.pdf

32 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

CAPITULO VI: PRINCIPALES OBJETOS DE VISUAL BASIC

App, El objeto App es un objeto global. Este obtiene o especifica la información sobre la aplicación

como el título, versión, ruta y nombre del archivo ejecutable y archivos de ayuda, y si existe o no

una instancia previa de la aplicación en ejecución. Principales propiedades del objeto App: Path,

ExeName, PrevInstance, Title. Ejemplo: If(App.PrevInstance) Then End

Clipboard, Provee acceso al portapapeles del sistema. Propiedades y métodos: Clear, GetData,

GetText, SetData, SetText. Ejemplo: Clipboard.SetText “Hola”

Err, Contiene información sobre el último error en tiempo de ejecución. Propiedades y métodos:

Clear, Description, Number, Source. Ejemplo: If( Err <> 0 ) Then Exit sub

Printer, el objeto Printer permite la comunicación con una impresora del sistema (inicialmente la

impresora predeterminada). Propiedades y métodos: Copies, CurrentX, CurrentY, DeviceName,

DriverName, EndDoc, KillDoc, Line, NewPage, Orientation, Page, Port.

Screen, Contiene información sobre la pantalla y controla el puntero del mouse fuera de los

formularios de su aplicación en tiempo de ejecución. El objeto Screen es el escritorio completo de

Windows. Propiedades: ActiveControl, ActiveForm, FontCount, Fonts, Height, Width.

Me, El objeto Me es una referencia al formulario actual. Muy útil si desea crear un código

independiente al nombre del formulario.

Page 33: Diccionario  vba.pdf

33 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

CAPITULO VII: ACCESO A DATOS CON ADO

OLE DB es la estrategia de programación Microsoft a nivel sistema para interfase de datos. OLE

DB es una especificación abierta diseñada para construir sobre ODBC, esto es posible al proveer

un estándar abierto para acceder a todos los tipos de datos. ODBC fue creado para accesar bases

de datos relacionales (de manera primaria a SQL) en una ambiente multiplataforma. OLE DB está

diseñada para proveer acceso a todos los tipos de datos en ambiente OLE Component Object

Model (COM). OLE DB incluye la funcionalidad SQL definida en ODBC pero también define

interfaces para tener acceso a otros datos diferentes al tipo soportado por SQL.

Los componentes OLE DB consisten en “Data Providers” (que contienen y exponen los datos),

“Data Consumers” (que usan los datos), y “Service Components” (que procesan y transportan los

datos, por ejemplo, procesadores de querys e ingeniería de cursores).

Page 34: Diccionario  vba.pdf

34 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Microsoft® ActiveX® Data Objects (ADO) es la estrategia de programación Microsoft a nivel

aplicación para interfase a datos e información. ADO provee acceso a datos consistente, alto

rendimiento y soporta una amplia variedad de necesidades de desarrollo, incluyendo la creación

de clientes de bases de datos o front-end, usando aplicaciones, herramientas, lenguajes, o

navegadores de Internet. ADO está diseñado para ser la única interfase a datos necesaria para

sistemas cliente-servidor y desarrollos basados en Web.

ADO provee una interfase fácil de usar a nivel aplicación para OLE DB, que provee acceso a

diferentes formatos de datos. Como ADO fue diseñado para combinar las mejores características

y, eventualmente reemplazar RDO y DAO, usa notación similar con una semántica simplificada

para hacer de él el siguiente paso natural para los desarrolladores de hoy.

El modelo ADO contiene siete objetos:

Connection

Page 35: Diccionario  vba.pdf

35 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Command

Parameter

Recordset

Field

Property

Error

y cuatro tipos de colecciones:

Fields

Properties

Parameters

Errors

El Modelo ADO

Page 36: Diccionario  vba.pdf

36 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Otra vista del modelo ADO

Microsoft® Data Access Components (MDAC) es un conjunto de tecnologías redistribuibles que

implementan la estrategia Universal de Acceso a Datos. MDAC consiste de las últimas versiones

de ActiveX Data Objects (ADO), componentes OLE DB, y Open Database Conectivity (ODBC), que

ahora ha sido liberado como un conjunto integrado. Los desarrolladores creando soluciones

cliente-servidor y basados en Web seleccionan los componentes que necesitan y llaman a estos

desde su herramienta de selección, aplicaciones, lenguajes, o navegadores de Internet para crear

soluciones completas de base de datos.

Práctica: Escribir el siguiente programa que accede a datos a través de ADO. Colocar el código en

el evento load del formulario principal. Cree una base de datos .MDB con la tabla TbaAutor, la cual

contendrá el campo Autor. Además cree una fuente de datos Microsoft Access llamada Biblio que

haga referencia a la base de datos.

Forma #1:

Private Sub Form_Load()

Dim objData As ADODB.Recordset

Set objData = CreateObject("ADODB.RecordSet")

Page 37: Diccionario  vba.pdf

37 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

objData.Open "select * from TbaAutor", "DSN=Biblio"

While Not objData.EOF

Debug.Print objData!Autor

objData.MoveNext

Wend

End Sub

Forma #2

Private Sub Form_Load()

Dim cnx As New Connection

Dim Rs As New ADODB.Recordset

cnx.Open "DSN=Biblio"

Rs.Open "select * from TbaAutor", cnx, adOpenForwardOnly

While Not Rs.EOF

Debug.Print Rs!Autor

Rs.MoveNext

Wend

Rs.Close

End Sub

EL OBJETO CONNECTION

El objeto connection permite establecer una conexión con fuentes de datos. En otra palabras, la

representa una conexión física a una fuente de datos. El objeto connection provee mecanismos

para inicializar y establecer la conexión.

Una vez que el objeto conexión fue creado puede usar sus métodos y propiedades para manipular

la fuente de datos (la base de datos) que fue conectada. También puede utilizar el objeto

connection para ejecutar filtros y usar transacciones

Métodos del objeto connection

Page 38: Diccionario  vba.pdf

38 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Método Descripción

Open Abre una nueva conexión a una fuente de datos

Close Cierra una conexión y todos sus objetos dependientes

Execute Ejecuta un query (una sentencia SQL)

BeginTrans Inicia una transacción

CommitTrans Procede con los cambios hechos durante la transacción

RollBackTrans Cancela cualquier cambio hecho durante una transacción

Propiedades del objeto connection:

Propiedad Descripción

ConnectionString Contiene la información necesaria para establecer una conexión

ConnectionTimeOut Determina el tiempo a esperar para establecer una conexión

CommandTimeOut Determina el tiempo a esperar mientras ejecuta un comando

State Indica si una conexión está abierta

Provider Indica el nombre del proveedor de datos

Version Indica la versión ADO

CursorLocation Establece/Regresa la ubicación del “cursor engine”

Nosotros programamos para la interface ADO. Pero recuerde que seleccionamos OLE DB Provider

cuando construimos la propiedad “ConnectionString”. Esto es, el proveedor OLE DB sabe cómo

tomar comandos ADO y trasladarlos en lenguaje que la fuente de datos específica puede

entender. Como cada día más y más fabricantes crean proveedores OLE DB para sus fuentes de

datos, ADO se posiciona en el mundo.

Ejemplo de conexión, recordset y transacciones

Dim Cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

' Abre la conexión

Cn.Open "pubs", "sa"

Page 39: Diccionario  vba.pdf

39 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

' Abre la tabla “titles”

rs.Open "SELECT * FROM titles", Cn, adOpenDynamic, adLockPessimistic

Cn.BeginTrans

' realiza cambios

Cn.CommitTrans

' O da marcha atrás

' cn.RollbackTrans

Cn.Close

Page 40: Diccionario  vba.pdf

40 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

EL OBJETO RECORDSET

Un objeto Recordset representa los registros en una tabla o los registros que resultan de ejecutar

un comando. En cualquier momento dado, el objeto Recordset direcciona a un registro único al

que se refiere como el registro actual.

Utilice objetos Recordset para manipular datos de un proveedor. Todos los objetos Recordset son

construídos usando registros (renglones) y campos (columnas). Dependiendo de la funcionalidad

soportada por el proveedor, algunos métodos o propiedades del Recordset pueden no estar

disponible.

Existen cuatro tipos de cursores definidos en ADO:

Cursor dinámico (dynamic cursor), permite agregar, cambiar, y borrar en la vista; permite todos

los tipos de desplazamientos a través del Recordset que no son basados en bookmarks; y permite

bookmarks si el proveedor los soporta.

Cursor keyset, idéntico a un cursor dinámico, excepto que no podrá ver los registros que otros

usuarios agregan, y evita acceder a registros que otros usuarios borraron. Los cambios a datos por

otros usuarios serán visibles. También soporta bookmarks y todos los tipos de desplazamientos a

través del recordset.

Cursor estático (static cursor), provee una copia estática de un conjunto de registros que podrá

utilizar para localizar datos o generar reportes; también permite bookmarks y todos los tipos de

movimientos a través del recordset. Las adiciones, cambios, o eliminaciones de otros usuarios no

serán visibles. Este es el único tipo de cursor que puede abrir un objeto recordset (ADOR)

del lado del cliente

Page 41: Diccionario  vba.pdf

41 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Forward-only cursor, funciona idéntico a un cursor estático excepto que sólo permite

desplazamiento hacia delante a través de los registros. Este mejora el rendimiento en situaciones

donde sólo necesita recorrer de una manera a través del recordset.

Asigne la propiedad CursorType antes de abrir el recordset para elegir el tipo de cursor, o pase el

argumento CursorType del método Open. Algunos proveedores no soportan todos los tipos de

cursores. Verifique la documentación del proveedor. Si no especifica el tipo de cursor, ADO abre

un cursor forward-only por defecto.

Al usar algunos proveedores (como Microsoft ODBC Provider para OLE DB con Microsoft SQL

Server), puede crear objetos recordset sin definir un objeto connection con anterioridad, esto se

hace pasando una cadena de conexión con el método Open. ADO crea un objeto Connection, pero

no asigna este objeto a una variable objeto. Si no usa esta variable objeto cuando abre sus objetos

Recordset, ADO crea un nuevo objeto Connection por cada Recordset, aunque pase la misma

cadena de conexión.

Puede crear tantos objetos Recordset como necesite.

Cuando abre un Recordset, el registro actual es posicionado en el primer registro (si existe) y las

propiedades BOF y EOF son asignadas a False. Si no hay registros, las propiedades BOF y EOF

se establecen como True.

Page 42: Diccionario  vba.pdf

42 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

EL OBJETO COMMAND

El objeto Command define información detallada sobre los datos que se obtienen de una conexión.

Los objetos Command pueden estar basados en cualquier objeto de la base de datos (como una

tabla, vista, stored procedure o similares) o en un filtro escrito en Structured Query Language

(SQL). También puede crear relaciones entre objetos Command para obtener un conjunto de datos

relacionados en forma de jerarquía.

Para ser un objeto Command válido, debe asociarlo con un objeto Connection.

Si un objeto Command regresa datos, es un “recordset returning”, y el resultado puede ser

accesado usando un objeto Recordset disponible desde el objeto DataEnviroment. Si un objeto

Command no regresa datos (por ejemplo, stored procedures o texto SQL que realiza

actualizaciones), es un “non-recordset returning”.

Page 43: Diccionario  vba.pdf

43 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

CAPITULO VIII: EL API DE WINDOWS

EL API ó Application Programming Interface, es un “Conjunto de rutinas que una aplicación usa

para solicitar servicios de bajo nivel realizados por otro componente, como el sistema operativo de

la computadora o un servicio ejecutando en una computadora de la red.

Windows Application Programming Interface (API)

Las funciones, mensajes, estructuras de datos, tipos de datos, y sentencias que se utilizan para

crear aplicaciones que ejecutan bajo Microsoft Windows. Las partes del API que use deben

contener los elementos necesarios para llamar funciones API desde Windows. Estos incluyen

declaración de procedimientos (para las funciones de Windows), definiciones de tipos definidos por

el usuario (para estructuras de datos pasadas a estas funciones), y declaraciones de constantes

(para valores a pasar y a regresar de estas funciones).

API Win32

El término Win32 es usado para describir un API que es común a todas las plataformas Windows

32 bits. Estas plataformas incluyen:

Windows 95, 98 y Me

Windows NT

Windows CE

Los beneficios de un API común son muchos: facilidad de portar aplicaciones, requiere menor

aprendizaje cuando se emigra de una plataforma a otra, y una vasta librería de soporte de

programación existente, ejemplos, y recursos de otros fabricantes.

Page 44: Diccionario  vba.pdf

44 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

Declarando funciones externas

Para llamar procedimientos externos desde VBA, se debe proveer información a VBA sobre el

procedimiento que se desea llamar. VBA requiere saber el nombre de archivo de la librería donde

se encuentra la subrutina o función a llamar, el nombre del procedimiento a llamar, los parámetros

que desea enviar, y, si el procedimiento es una función, el tipo de dato del valor que regresa.

Syntaxis 1 [Public|Private] Declare Sub name Lib "libname" [Alias "aliasname" ] [([argumentlist])] Syntaxis 2 [Public|Private] Declare Function name Lib "libname" [Alias "aliasname"] [([argumentlist])] [As type]

Ejemplos de llamadas al API Win32

Ejemplo #1:

Const SND_SYNC = &H0 ' play synchronously (default)

Const SND_ASYNC = &H1 ' play asynchronously

Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags

As Long) As Long

Function PlayWav(Archivo as string) As Long

PlayWav = sndPlaySound(Archivo, SND_ASYNC)

End Function

Ejemplo #2:

Public Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize

As Long) As Long

Function NombrePC() As String

Dim Buff As String * 255

Dim N As Long

N = 255

GetComputerName Buff, N

NombrePC = Left(Buff, N)

End Function

Page 45: Diccionario  vba.pdf

45 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

CAPITULO IX: DISTRIBUCION

Archivos que tiene permitido distribuir

Puede distribuir libremente cualquier aplicación o componente creado con Visual Basic. Además

del archivo ejecutable (.exe), su aplicación puede requerir otros archivos, como DLLs, controles

ActiveX (.ocx), o bitmaps (.bmp).

Puede distribuir de forma legal aplicaciones de ejemplo y cualquier otro archivo que fue copiado a

la subcarpeta \Icons de la carpeta \Visual Studio\Common\Graphics cuando instaló Visual Basic en

su equipo.

Nota: La carpeta \Graphics sólo es instalada si elige instalación personalizada (custom) cuando

instala Visual Basic, y elige instalar gráficos (Graphics).

Si ha comprado la edición Profesional o Enterprise de Visual Basic, también podrá distribuir

cualquier archivo copiado a las carpetas \Visual Studio\Common\Graphics y \Program

Files\Common Files\ODBC durante la instalación.

Nota: También podrá distribuir otros controles ActiveX, archivos .exe, y DLLs que haya comprado.

Consulte la licencia del fabricante para cada uno de estos archivos que desea distribuir para

determinar si tiene derechos para distribuir el archivo con su aplicación.

Pasos a seguir en el proceso de empaquetado

(The Package and Deployment Wizard)

1) Determine el tipo de paquete que desea crear. Puede crear un paquete estandar para

programas basados en Windows que serán distribuidos en disquete, CD, o en red, o puede crear

un paquete de Internet para programas que serán distribuidos en la Web. También puede elegir

crear sólo el archivo de dependencias.

2) Determine los archivos que necesita distribuir. El asistente determinará los archivos del

proyecto y de dependencias para la aplicación de manera automática, por ejemplo, el archivo .vbp

y su contenido. Los archivos de dependencias son archivos en tiempo de ejecución o

componentes que la aplicación necesita para funcionar. La información de dependencia es

Page 46: Diccionario  vba.pdf

46 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

almacenada en el archivo vb6dep.ini, o en varios archivos .dep correspondiendo a los

componentes en el proyecto.

3) Determine dónde instalar los archivos en el equipo del usuario. Los archivos del programa

e instalación normalmente son instalados en la carpeta “Archivos de Programas” o “Program Files”,

dependiendo de la versión de Windows en español o inglés respectivamente, mientras que los

archivos del sistema y dependencias son instalados en la carpeta \Windows\System o

\Winnt\System32. Verifique si desea agregar archivos que no fueron incluidos por el asistente,

como pueden ser archivos de base de datos (.mdb), de imágenes, de sonido u otros.

4) Cree su paquete. El asistente crea el paquete y el programa de instalación (setup1.exe) por sí

mismo, referenciando todos los archivos necesarios. El resultado final de este paso es uno o más

archivos .cab y cualquier archivo necesario de instalación.

5) Cree su medio de distribución. Copie todos los archivos necesarios a la ubicación desde donde

los usuarios accederán al programa de instalación.

Page 47: Diccionario  vba.pdf

47 de 47

2001, Antonio Ortíz Ramírez www.aortiz.net

TEMAS AVANZADOS

Sin lugar a duda, Basic a evolucionado mucho, ahora es una herramienta robusta y completa

donde se desarrollan grandes sistemas de diversa índole. Este curso ha sido un buen paso en el

aprendizaje de la programación Windows pero aún falta mucho por aprender. A continuación se

describen algunos temas que se recomiendan como seguimiento a este curso:

Cristal Reports

Sistemas Cliente-Servidor

SQL Server, Oracle u otro Servidor

Desarrollo en Internet

Intranets

Desarrollo de herramientas ActiveX