
Recursos Informáticos - VBA Excel 2007 - Programar en Excel: Macros y Lenguaje VBA
Completo y, a la vez, simple y práctico, este libro está dirigido a usuarios de Excel o a programadores que deseen crear aplicaciones en plantillas amigables, confiables y poderosas. Otros elementos básicos del lenguaje VBA (estructura del lenguaje y conceptos de programación orientada a objetos) permiten automatizar el tratamiento de sus datos. Usted aprenderá a crear formularios, a personalizar la interfaz de Excel, a comunicar Excel con las otras aplicaciones del paquete Office, a importar y publicar páginas Web y archivos XML y a emplear al máximo las funciones API de Windows. En cada capítulo se presentan numerosos ejemplos. En el último capítulo se desarrolla un ejercicio integrador con la creación de una completa aplicación Excel.
Recursos Informáticos - VBA Access 2007 - Programar en Access
Simple, práctica y completa a la vez, esta obra está dirigida a los desarrolladores y a los usuarios avanzados que quieran crear aplicaciones profesionales fiables, potentes y de fácil uso con Access. Además de los elementos básicos del lenguaje VBA que permiten crear procedimientos y funciones, aprenderá a manipular datos usando los objetos DAO o ADO y el lenguaje SQL, a personalizar formularios e informes, a crear menús y barras de herramientas, a controlar otras aplicaciones Office 2007 a través de la tecnología Automation, a exportar datos en Internet (en formato XML o HTML) y a usar las API de Windows.
Además de los numerosos ejemplos presentados a lo largo del manual, el último capítulo le guiará en la creación de una mini aplicación Access.



Ediciones ENI
VBA Excel 2007 Programar en Excel: Macros y Lenguaje VBA
Colección
Recursos Informáticos
Contenido
-
-
!
'
# '
!
'
%& %
'
%& %
'
!
'
' !
!
'
!
(
!
)
#
! !
!
*
!
!
+
!
+
,
!
-
.
-
.
# '
'
.
/ !
!
-
!
'
!
!
!
'
!
!
''
!
0
1
''
!
!
&
2
'(
!
!
1'
')
'
'*
&
'+
3
'+
# '
'4
! #
33/P>
&
' 5
(
&
(
2
(
'
('
6
-
6
!
((
% & ' ' 26724(
7
3
' 4
((
,
3
' 4
()
-
! -
-'
# 0%
& -
--
--
-'
0 -(
- ) -*
) !
!
+ -
+, ! '
! !'
- . '%
. '*
/ '*
/ '*
#
'
. '
/ '
/ '
0 ('
1 (
1 2 (
1 (-
# /usr/bin/perl !
& (*
# 1 *
0 /usr/bin/perl !
) *%
34 3 *-
& 5 *-
& + 45 *(
# **
% &' !
6 7 *
6
*
6
*
6
( ) * !
!
*
1 %
1 8
%
# / %
5 0 9 .
-
-
!
' -
# !
0 ' #
0
%&
% &
!!
'
( )
'
* ) + ,
' '
-. / . 00
# '
1 0
'
02
34 , % 0!
-
! '
#
0
%
&' '
(
'
'
)
*
+,
&
)#
*
-
+
.
)#
*
-
+
)%
*
-
+
'
)%
*
)(
*
)(
*
'
)/
*
'
00
)/
*
)1
,
+,
&
)2
'
)2
3
'
)2
4
'
)
'
)
+,
.
#
##
'
'
.
+
+
##
'
+
#%
#/
5
*
#2
*
-
+
+
#2
*
'
%
*
'
+
%
*
'
%
*
'
'
+
%)
*
%#
,
+,
6 7+ 7
%#
3
+
%#
8
+
.
9: 5
%%
+
%(
+
%(
-
5
+,
.
%/
+,
.
%1
%
*
(
,
+,
6 7;
(#
; ,
+
(#
; ,
+
((
+
((
!
' #
.
*
' '
+,
!
(/
4
' '
+,
!
(2
5
+,
.
/#
/(
.
/(
.
//
/1
- - - ! '# - 1794 !
*
/1
*
' '
+,
/1
*
/2
*
/
*
+
1
*
1
*
1)
*
;
&
1)
*
1#
- % &- % -
- '
3
1%
&
1/
%
-
!' #
% ' &' (
% ' &' )
- !' #
* &' +
, ' #' -
. /
- ! !
-
!
'
#
! 0& #
-
!
'
# 33/P>
33/P>
33/P>
%
&
- ' (
!
-
- (
%
# )
%
*
- -
*
'
*
# +
!
,
%
-
. &
.
/ &
.
. '
0 1 1 &
- .
/ 2 &&
' .
. - ' &&
# .
. - -
&3
-
-
! ' ' -
! ' # -33/P>
% # -&
-
-
- !
-
-
'
-
-
! -
'
# 33/P>
# 33/P>
! %
Ediciones ENI
VBA Excel 2007 Programar en Excel: Macros y Lenguaje VBA
Colección
Recursos Informáticos
Contenido
-
-
!
\'
# \'
!
$ \'
%& %
$ \'
%& %
\'
$
!
\'
$
\' !
!
\'
!
(
$
!
)
#
! !
!
*
!
!
+
$
!
+
,
!
-
.
-
.
# \'
\'
.
/ !
!
-
!
\'
!
!
!
\'
!
!
\'\'
!
0
1
\'\'
!
!
&
2
\'(
!
!
1\'
\')
\'
\'*
&
\'+
3
\'+
# \'
\'4
! #
$
&
\' 5
(
&
(
$
(
\'
(\'
6
-
6
!
((
% & \' \' $$(
7
3
\' 4
((
,
3
\' 4
()
-
! -
-\'
# $ -%
& -
--
--
-\'
$ -(
- ) -*
) !
!
+ -
+, ! \'
! !\'
- . $ \'%
. $ \'*
/ \'*
/ \'*
#
\'
. $ \'
/ \'
/ \'
0 (\'
1 (
1 2 (
1 (-
# $ !
& (*
# 1 *
$ $ !
) *%
34 3 *-
& 5 *-
& + 45 *(
# **
% &\' !
6 7 *
6
*
6
*
6
( ) * !
!
*
1 %
1 8
%
# / %
5 $ 9 . $
-
-
!
\' -
# !
$ \' #
$
%&
% &
!!
\'
( )
\'
* ) + ,
\' \'
-. / . 00
# \'
1 0
\'
02
34 , % 0!
-
! \'
#
$
%
&\' \'
(
\'
\'
)
*
+,
&
)#
*
-
+
.
)#
*
-
+
)%
*
-
+
\'
)%
*
)(
*
)(
*
\'
)/
*
\'
00
)/
*
)1
,
+,
&
)2
\'
)2
3
\'
)2
4
\'
)
\'
)
+,
.
#
##
\'
\'
.
+
+
##
\'
+
#%
#/
5
*
#2
*
-
+
+
#2
*
\'
%
*
\'
+
%
*
\'
%
*
\'
\'
+
%)
*
%#
,
+,
6 7+ 7
%#
3
+
%#
8
+
.
9: 5
%%
+
%(
+
%(
-
5
+,
.
%/
+,
.
%1
%
*
(
,
+,
6 7;
(#
; ,
+
(#
; ,
+
((
+
((
!
\' #
.
*
\' \'
+,
!
(/
4
\' \'
+,
!
(2
5
+,
.
/#
/(
.
/(
.
//
/1
- - - ! \'# - $ !
*
/1
*
\' \'
+,
/1
*
/2
*
/
*
+
1
*
1
*
1)
*
;
&
1)
*
1#
$ - % &- % -
- \'
3
1%
&
1/
%
-
!\' #
$ % \' &\' (
% \' &\' )
- !\' #
$ * &\' +
, \' #\' -
. /
- ! !
-
!
\'
#
! $%& #
-
!
\'
# $
$
$
%
&
- \' (
!
-
- (
%
# )
%
*
- -
*
\'
*
# +
!
,
$ %
-
. &
.
/ &
.
. \'
0 1 1 &
- .
/ 2 &&
\' .
. - \' &&
# .
. - -
&3
-
-
! \' \' -
! \' # -$
% # -&
-
-
- !
-
-
\'
-
-
! -
\'
# $
# $
! % $&
- \'
$
% $
\' $
\' ( $)
* $
#
$
% - \'\'
+ $$
% $,
&
## \'(
\' -
,.
\' *
,.
\' ,
) $*+
,
\'
\'/ \' ,)
% \' ,)
- ./
0 &
& ,
,
- \'
\'/ ! % % - + + ,
\'/ ! % % ,,
-
- ! \'#-
$
-
-
-
-
-
!
-
-
!
\'
\'
% & $ \'- % (
$ \'-
# -
$ %
& -
# -
$ %
\'
(
# -
$ %
% )
*
#
*
+,
! # -
-
)
- * +
-
-#
-
!
,-- ./& 0
. -
/
+,
! 0 0
/
) -
! 0 0
/
1 +,
1 +
//
2 3 &- 4
/
+,
/\'
-
! \'# $
%
-
-
!
- \'
\' \' \' () *
- #$
%&
\'
( ) %
- ! \'
#
$
% & \' ( )#
#
$
- ! !
)
* % &
)
#
\'
$ \'
#
%
+
,-
#
$%
$
& $
Ediciones ENI
VBA Access 2007 Programar en Access
Colección
Recursos Informáticos
Contenido
Capítulo 1: Generalidades
A. Revisión de conceptos . . . . . . . . . . . . . . 11
B. Principios fundamentales de VBA . . . . . . . . . 12
C. Las novedades de Access 2007 . . . . . . . . . . 13
D. Conversión de macros a VBA . . . . . . . . . . . 14
1. Conversión de las macros en un formulario o en un informe. . . . 14
2. Conversión de macros globales . . . . . . . . . . . . . . . . 15
3. Las macros y la seguridad. . . . . . . . . . . . . . . . . . 15
a. Modificación de la configuración de seguridad . . . . . . . . 15
b. Descripción de las diferentes opciones de seguridad. . . . . . 16
c. Editores de confianza . . . . . . . . . . . . . . . . . . 17
d. Ubicaciones de confianza. . . . . . . . . . . . . . . . . 18
E. El entorno de desarrollo IDE . . . . . . . . . . . 19
F. Configuración del editor VBA . . . . . . . . . . . 23
1. Configuración de los colores del editor. . . . . . . . . . . . . 23
2. Configuración de la presentación del código . . . . . . . . . . 23
G. Referencia a los objetos . . . . . . . . . . . . . 24
H. Creación de un procedimiento en VBA . . . . . . . 25
I. Consejos. . . . . . . . . . . . . . . . . . . . 29
Capítulo 2: El lenguaje Visual Basic
A. Los módulos . . . . . . . . . . . . . . . . . . 33
B. Los procedimientos . . . . . . . . . . . . . . . 34
1. Los procedimientos Sub. . . . . . . . . . . . . . . . . . . 35
2. Los procedimientos Function. . . . . . . . . . . . . . . . . 36
3. Declaración de los procedimientos . . . . . . . . . . . . . . 37
4. Alcance de los procedimientos . . . . . . . . . . . . . . . . 37
5. Argumentos de los procedimientos . . . . . . . . . . . . . . 38
6. Los argumentos con nombre . . . . . . . . . . . . . . . . . 39
7. Llamada a un procedimiento. . . . . . . . . . . . . . . . . 40
8. Ejemplos de procedimientos . . . . . . . . . . . . . . . . . 40
9. La función MsgBox. . . . . . . . . . . . . . . . . . . . . 41
C. Las variables . . . . . . . . . . . . . . . . . . 45
1. Los tipos de variables. . . . . . . . . . . . . . . . . . . . 45
2. Las declaraciones de variables . . . . . . . . . . . . . . . . 48
3. El alcance de las variables. . . . . . . . . . . . . . . . . . 49
4. Las matrices . . . . . . . . . . . . . . . . . . . . . . . 50
5. Las constantes. . . . . . . . . . . . . . . . . . . . . . . 52
D. Las estructuras de decisión . . . . . . . . . . . . 55
1. La instrucción IF. . . . . . . . . . . . . . . . . . . . . . 55
2. La instrucción Select Case. . . . . . . . . . . . . . . . . . 57
3. La función IIf . . . . . . . . . . . . . . . . . . . . . . . 58
E. Las estructuras en bucle . . . . . . . . . . . . . 59
1. La instrucción Do...Loop . . . . . . . . . . . . . . . . . . 59
2. La instrucción While...Wend . . . . . . . . . . . . . . . . . 60
3. La instrucción For...Next . . . . . . . . . . . . . . . . . . 61
4. La instrucción For Each...Next . . . . . . . . . . . . . . . . 62
F. Los operadores . . . . . . . . . . . . . . . . . 63
1. Los operadores aritméticos. . . . . . . . . . . . . . . . . . 64
2. Los operadores de comparación . . . . . . . . . . . . . . . 64
3. Los operadores lógicos . . . . . . . . . . . . . . . . . . . 65
4. El operador de concatenación . . . . . . . . . . . . . . . . 66
5. Prioridad de los operadores . . . . . . . . . . . . . . . . . 66
G. Las reglas de escritura del código . . . . . . . . . 67
1. Los comentarios . . . . . . . . . . . . . . . . . . . . . . 67
2. El carácter de continuación . . . . . . . . . . . . . . . . . 68
3. La indentación. . . . . . . . . . . . . . . . . . . . . . . 68
4. Los nombres de procedimientos, variables y constantes. . . . . . 68
H. Las convenciones de llamada . . . . . . . . . . . 69
1. Convención de llamada de las variables . . . . . . . . . . . . 69
2. Convención de llamada de los controles . . . . . . . . . . . . 70
3. Convención de llamada de los objetos . . . . . . . . . . . . . 71
Capítulo 2
32 VBA Access 2007
Capítulo 3: Objetos y colecciones
A. Presentación . . . . . . . . . . . . . . . . . . 75
B. El modelo de objetos de Access . . . . . . . . . . 76
1. Principales colecciones . . . . . . . . . . . . . . . . . . . 77
2. Otras colecciones . . . . . . . . . . . . . . . . . . . . . 78
3. Objetos del Modelo. . . . . . . . . . . . . . . . . . . . . 79
C. Principios de utilización de los objetos
y de las colecciones . . . . . . . . . . . . . . . 80
1. Las propiedades . . . . . . . . . . . . . . . . . . . . . . 80
2. Propiedades que representan objetos . . . . . . . . . . . . . 81
3. Los métodos . . . . . . . . . . . . . . . . . . . . . . . 82
4. Los eventos . . . . . . . . . . . . . . . . . . . . . . . . 83
5. Las colecciones . . . . . . . . . . . . . . . . . . . . . . 84
6. Presentación automática de instrucciones . . . . . . . . . . . 86
D. Instrucciones utilizadas con los objetos . . . . . . . 89
1. La instrucción With. . . . . . . . . . . . . . . . . . . . . 89
2. La instrucción For each...Next . . . . . . . . . . . . . . . . 90
3. La instrucción If TypeOf. . . . . . . . . . . . . . . . . . . 91
4. La instrucción Set . . . . . . . . . . . . . . . . . . . . . 92
E. Las clases de objetos . . . . . . . . . . . . . . 96
1. Descripción . . . . . . . . . . . . . . . . . . . . . . . . 96
2. Los módulos de clase. . . . . . . . . . . . . . . . . . . . 97
3. Ejemplo de módulos de clase . . . . . . . . . . . . . . . . 97
F. El examinador de objetos. . . . . . . . . . . . . 102
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 102
2. Búsqueda en el examinador de objetos . . . . . . . . . . . . 103
G. Propiedades y métodos de objetos de Access . . . . 104
1. El objeto Application . . . . . . . . . . . . . . . . . . . . 104
2. El objeto DoCmd. . . . . . . . . . . . . . . . . . . . . . 110
3. El objeto Screen . . . . . . . . . . . . . . . . . . . . . . 116
4. La colección References. . . . . . . . . . . . . . . . . . . 117
5. La colección Printers . . . . . . . . . . . . . . . . . . . . 120
Capítulo 3
74 VBA Access 2007
Capitulo 4: Objetos de acceso a datos
A. Objetos de acceso a datos DAO y ADO . . . . . . . 125
B. El modelo de acceso a datos DAO . . . . . . . . . 126
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 126
2. Jerarquía de los objetos DAO. . . . . . . . . . . . . . . . . 127
3. Descripción de las colecciones . . . . . . . . . . . . . . . . 128
4. El objeto DBEngine. . . . . . . . . . . . . . . . . . . . . 130
5. Los objetos Workspace . . . . . . . . . . . . . . . . . . . 131
6. Les objetos Database . . . . . . . . . . . . . . . . . . . . 132
7. Los objetos Recordset. . . . . . . . . . . . . . . . . . . . 134
8. Los objetos Tabledef . . . . . . . . . . . . . . . . . . . . 141
9. Los objetos Field e Index . . . . . . . . . . . . . . . . . . 143
10. Los objetos QueryDef y Parameter . . . . . . . . . . . . . . 146
11. Los objetos Relation . . . . . . . . . . . . . . . . . . . . 148
12. Los objetos Container y Document . . . . . . . . . . . . . . 150
13. Los objetos Group y User . . . . . . . . . . . . . . . . . . 153
14. El objeto Error. . . . . . . . . . . . . . . . . . . . . . . 154
15. Los objetos Property . . . . . . . . . . . . . . . . . . . . 156
C. El modelo de acceso a datos ADO . . . . . . . . . 157
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 157
2. ADO y OLE DB . . . . . . . . . . . . . . . . . . . . . . 158
3. Jerarquía de los objetos ADO. . . . . . . . . . . . . . . . . 159
4. Modelo de base de programación ADO. . . . . . . . . . . . . 160
5. Descripción de los objetos ADO. . . . . . . . . . . . . . . . 161
6. Las colecciones ADO . . . . . . . . . . . . . . . . . . . . 162
7. Los objetos Connection . . . . . . . . . . . . . . . . . . . 162
8. Los objetos Command . . . . . . . . . . . . . . . . . . . 165
9. Los objetos Recordset. . . . . . . . . . . . . . . . . . . . 166
10. La colección Fields . . . . . . . . . . . . . . . . . . . . . 172
11. Los objetos Field. . . . . . . . . . . . . . . . . . . . . . 173
12. La colección Parameters. . . . . . . . . . . . . . . . . . . 174
13. Los objetos Parameter . . . . . . . . . . . . . . . . . . . 174
14. La colección Properties . . . . . . . . . . . . . . . . . . . 175
15. Los objetos Property . . . . . . . . . . . . . . . . . . . . 175
16. La colección Errors . . . . . . . . . . . . . . . . . . . . . 176
17. Los objetos Error. . . . . . . . . . . . . . . . . . . . . . 176
Capítulo 4
124 VBA Access 2007
Capítulo 5: El lenguaje SQL
A. Presentación . . . . . . . . . . . . . . . . . . 179
B. Lenguaje SQL y VBA . . . . . . . . . . . . . . 181
C. Descripción del lenguaje SQL . . . . . . . . . . . 182
1. La instrucción SELECT . . . . . . . . . . . . . . . . . . . 182
2. La cláusula FROM . . . . . . . . . . . . . . . . . . . . . 183
3. La cláusula WHERE . . . . . . . . . . . . . . . . . . . . 184
4. La cláusula GROUP BY . . . . . . . . . . . . . . . . . . . 185
5. La cláusula HAVING . . . . . . . . . . . . . . . . . . . . 185
6. La cláusula ORDER BY . . . . . . . . . . . . . . . . . . . 186
7. La instrucción UPDATE . . . . . . . . . . . . . . . . . . . 186
8. La instrucción DELETE . . . . . . . . . . . . . . . . . . . 187
9. La instrucción INSERT INTO . . . . . . . . . . . . . . . . . 188
10. Otras instrucciones . . . . . . . . . . . . . . . . . . . . . 189
D. Ejemplos de utilización de consultas SQL . . . . . . 190
1. Actualización de registros . . . . . . . . . . . . . . . . . . 190
2. Carga de una lista desplegable . . . . . . . . . . . . . . . . 191
Capítulo 6: Gestión de los eventos
A. Presentación . . . . . . . . . . . . . . . . . . 197
1. Definición. . . . . . . . . . . . . . . . . . . . . . . . . 197
2. Asociación de código VBA a un evento. . . . . . . . . . . . . 198
B. Categorías de eventos . . . . . . . . . . . . . . 199
1. Eventos de tipo Ventana. . . . . . . . . . . . . . . . . . . 199
2. Eventos de tipo Enfoque. . . . . . . . . . . . . . . . . . . 200
3. Eventos de tipo Datos. . . . . . . . . . . . . . . . . . . . 201
4. Eventos de tipo Ratón . . . . . . . . . . . . . . . . . . . 202
5. Eventos de tipo Teclado. . . . . . . . . . . . . . . . . . . 203
6. Eventos de tipo Impresión . . . . . . . . . . . . . . . . . . 204
7. Eventos de tipo Filtro . . . . . . . . . . . . . . . . . . . . 205
8. Eventos de tipo Error y Cronómetro . . . . . . . . . . . . . . 205
C. Cancelación de un evento . . . . . . . . . . . . 206
D. Secuencias de tipos de eventos . . . . . . . . . . 207
E. Los eventos de actualización . . . . . . . . . . . 208
Capítulo 7: Depuración y gestión
de errores
A. Los distintos tipos de error . . . . . . . . . . . . 211
1. Los errores de sintaxis . . . . . . . . . . . . . . . . . . . 211
2. Los errores de compilación . . . . . . . . . . . . . . . . . 212
3. Los errores de ejecución. . . . . . . . . . . . . . . . . . . 213
4. Los errores de lógica . . . . . . . . . . . . . . . . . . . . 214
B. Depuración con VBA. . . . . . . . . . . . . . . 214
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 214
2. La barra de herramientas Depuración . . . . . . . . . . . . . 214
3. El objeto Debug . . . . . . . . . . . . . . . . . . . . . . 216
C. Gestión de errores con VBA. . . . . . . . . . . . 216
1. Principios. . . . . . . . . . . . . . . . . . . . . . . . . 216
2. El procedimiento de evento Error . . . . . . . . . . . . . . . 217
3. La instrucción On Error . . . . . . . . . . . . . . . . . . . 217
4. El objeto Err. . . . . . . . . . . . . . . . . . . . . . . . 219
Capítulo 8: Personalización
de los formularios y de los informes
A. Presentación . . . . . . . . . . . . . . . . . . 223
B. Personalización de los formularios . . . . . . . . . 223
1. Sintaxis. . . . . . . . . . . . . . . . . . . . . . . . . . 224
2. Propiedades disponibles en vista Diseño . . . . . . . . . . . . 225
a. Propiedades de la ficha Formato. . . . . . . . . . . . . . 226
b. Propiedades de la ficha Datos. . . . . . . . . . . . . . . 229
c. Propiedades de la ficha Eventos . . . . . . . . . . . . . . 230
d. Propiedades de la ficha Otras . . . . . . . . . . . . . . . 233
3. Propiedades no disponibles en modo Diseño . . . . . . . . . . 234
a. Propiedades relativas al modo de ver el formulario . . . . . . 234
b. Propiedades relativas a los registros y a su actualización. . . . 234
c. Propiedades relativas a la presentación del formulario. . . . . 235
d. Propiedades que devuelven un objeto. . . . . . . . . . . . 237
e. Propiedades relativas a la impresión del formulario . . . . . . 237
4. Métodos del objeto Form . . . . . . . . . . . . . . . . . . 238
C. Personalización de los informes . . . . . . . . . . 239
1. Sintaxis. . . . . . . . . . . . . . . . . . . . . . . . . . 239
2. Propiedades disponibles en vista Diseño . . . . . . . . . . . . 240
a. Propiedades de la ficha Formato. . . . . . . . . . . . . . 240
b. Propiedades de la ficha Datos. . . . . . . . . . . . . . . 243
c. Propiedades de la ficha Eventos . . . . . . . . . . . . . . 244
d. Propiedades de la ficha Otras . . . . . . . . . . . . . . . 245
3. Propiedades no disponibles en modo Diseño . . . . . . . . . . 246
a. Propiedades relativas al modo de ver el informe . . . . . . . 246
b. Propiedades relativas a los registros y a su actualización. . . . 246
c. Propiedades relativas a la presentación del informe . . . . . . 247
d. Propiedades que devuelven un objeto. . . . . . . . . . . . 248
e. Propiedades relativas a la impresión del informe . . . . . . . 249
f. Otras propiedades. . . . . . . . . . . . . . . . . . . . 250
4. Métodos . . . . . . . . . . . . . . . . . . . . . . . . . 250
D. Los objetos Control . . . . . . . . . . . . . . . 251
1. Sintaxis. . . . . . . . . . . . . . . . . . . . . . . . . . 251
2. Propiedades comunes a la mayoría de los controles . . . . . . . 251
3. Métodos comunes a la mayoría de los controles. . . . . . . . . 252
4. El método Move . . . . . . . . . . . . . . . . . . . . . . 252
E. Los controles de Access . . . . . . . . . . . . . 253
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 253
2. Lista de los controles Access 2007 . . . . . . . . . . . . . . 254
Capítulo 8
222 VBA Access 2007
Capítulo 9: Mejoras de la interfaz
de usuario
A. Las opciones de inicio . . . . . . . . . . . . . . 259
B. Personalización de la cinta de opciones. . . . . . . 261
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 261
2. Configuración de Access para la personalización
de la cinta de opciones . . . . . . . . . . . . . . . . . . . 262
a. Mostrar las tablas del sistema en el panel de exploración . . . 262
b. Mostrar mensajes de error contenidos en el código XML . . . . 262
3. Creación de una tabla del sistema USysRibbons. . . . . . . . . 263
4. Adición de código XML de personalización a la tabla USysRibbons
5. Asociación de la cinta de opciones a la aplicación activa . . . . . 265
6. Asociación de la cinta de opciones a un formulario o a un informe . 265
C. Presentación del lenguaje XML . . . . . . . . . . 266
1. El lenguaje XML . . . . . . . . . . . . . . . . . . . . . . 266
2. Elementos XML utilizados para personalizar la cinta de opciones . . 266
a. Principales marcas activas XML utilizadas en el código XML
de una cinta de opciones. . . . . . . . . . . . . . . . . 266
b. Propiedades asociadas a los objetos de una cinta de opciones . 267
D. Ejemplo de cinta de opciones personalizada . . . . . 268
1. Código XML de la cinta de opciones personalizada. . . . . . . . 269
2. Código VBA llamado por los comandos de la cinta
de opciones personalizada. . . . . . . . . . . . . . . . . . 273
E. Imágenes de la galería de iconos de Microsoft Office . 274
Capítulo 10: Comunicación
con las aplicaciones Office 2007
A. La tecnología Automatización . . . . . . . . . . . 279
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 279
2. Utilización de la tecnología Automatización. . . . . . . . . . . 280
B. Controlar Word desde Access . . . . . . . . . . . 282
1. El modelo Objeto Word . . . . . . . . . . . . . . . . . . . 282
2. Objetos y colecciones Word . . . . . . . . . . . . . . . . . 283
3. La colección Documents. . . . . . . . . . . . . . . . . . . 284
4. Los objetos Document . . . . . . . . . . . . . . . . . . . 284
C. Controlar Excel desde Access . . . . . . . . . . . 287
1. El modelo Objeto Excel . . . . . . . . . . . . . . . . . . . 287
2. Objetos y colecciones Excel . . . . . . . . . . . . . . . . . 288
3. La colección Workbooks. . . . . . . . . . . . . . . . . . . 288
4. Los objetos Workbook . . . . . . . . . . . . . . . . . . . 289
5. Escritura de datos en celdas Excel . . . . . . . . . . . . . . 290
D. Controlar Outlook desde Access . . . . . . . . . . 292
1. El modelo Objeto Outlook . . . . . . . . . . . . . . . . . . 292
2. Ejemplo: mostrar los contactos de Oulook . . . . . . . . . . . 293
E. El protocolo DDE . . . . . . . . . . . . . . . . 294
1. El inicio . . . . . . . . . . . . . . . . . . . . . . . . . 294
2. El vínculo. . . . . . . . . . . . . . . . . . . . . . . . . 295
3. El cierre . . . . . . . . . . . . . . . . . . . . . . . . . 297
Capítulo 11: Programación en Internet
A. Importación y exportación de datos en formato XML . 301
1. El método ExportXML. . . . . . . . . . . . . . . . . . . . 301
2. El método ImportXML. . . . . . . . . . . . . . . . . . . . 303
3. Ejemplo de importación/exportación XML. . . . . . . . . . . . 303
B. Ejemplo de creación de un archivo HTML. . . . . . 307
Capítulo 12: Programación en Windows
A. Presentación de las API . . . . . . . . . . . . . 311
B. Llamada a una función de la API Windows . . . . . 312
1. Sintaxis de la instrucción Declare . . . . . . . . . . . . . . . 312
2. Paso de argumentos . . . . . . . . . . . . . . . . . . . . 313
C. Lista de funciones de la API Windows . . . . . . . 315
D. Ejemplos de utilización de funciones
de la API Windows . . . . . . . . . . . . . . . 316
1. Recuperación del directorio de Windows . . . . . . . . . . . . 316
2. Inicio de la aplicación Excel si no está activa . . . . . . . . . . 317
3. Recuperación de un valor en un archivo .Ini . . . . . . . . . . 318
E. El objeto FileSystemObject . . . . . . . . . . . . 320
1. Métodos . . . . . . . . . . . . . . . . . . . . . . . . . 320
2. Propiedades. . . . . . . . . . . . . . . . . . . . . . . . 321
3. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . 321
Capítulo 13: Código de
una mini-aplicación
A. Presentación . . . . . . . . . . . . . . . . . . 325
1. Enunciado del problema. . . . . . . . . . . . . . . . . . . 325
2. Base de datos Cursos. . . . . . . . . . . . . . . . . . . . 325
3. Modelo relacional de la base. . . . . . . . . . . . . . . . . 326
B. Formulario \'Cursos\' . . . . . . . . . . . . . . . 326
1. Lista de controles . . . . . . . . . . . . . . . . . . . . . 327
2. Código VBA . . . . . . . . . . . . . . . . . . . . . . . . 328
3. Subformulario \'SF Participantes\' . . . . . . . . . . . . . . . 333
4. Código VBA . . . . . . . . . . . . . . . . . . . . . . . . 333
C. Formulario \'Buscar\' . . . . . . . . . . . . . . . 334
1. Lista de controles . . . . . . . . . . . . . . . . . . . . . 335
2. Código VBA . . . . . . . . . . . . . . . . . . . . . . . . 336
3. Subformulario \'SF Cursos\' . . . . . . . . . . . . . . . . . . 339
4. Informe \'Cursos\' . . . . . . . . . . . . . . . . . . . . . . 340
- '
0
%
'
' ( 33 1008 33
* linux
#
linux
% - ''
+ 26724
%
&
## '(
' -
,.
' *
,.
' ,
) +
,
'
'/ ' ,)
% ' ,)
- ./
0 &
& ,
,
- '
'/ ! % % - + + ,
'/ ! % % ,,
-
- ! '#-
0
-
-
-
-
-
!
-
-
!
'
'
% & 0 '- % (
0 '-
# -
2 %
& -
# -
2 %
'
(
# -
2 %
% )
*
#
*
+,
! # -
-
)
- * +
-
-#
-
!
,-- ./& 0
. -
/
+,
! 0 0
/
) -
! 0 0
/
1 +,
1 +
//
2 3 &- 4
/
+,
/'
-
! '# 0
%
-
-
!
- '
' ' ' () *
- #0
%&
'
( ) %
- ! '
#
0
% & ' ( )#
#
0
- ! !
)
* % &
)
#
'
0 '
#
%
+
,-
#
0
0
&
Ediciones ENI
VBA Access 2007 Programar en Access
Colección
Recursos Informáticos
Contenido
Capítulo 1: Generalidades
A. Revisión de conceptos . . . . . . . . . . . . . . 11
B. Principios fundamentales de VBA . . . . . . . . . 12
C. Las novedades de Access 2007 . . . . . . . . . . 13
D. Conversión de macros a VBA . . . . . . . . . . . 14
1. Conversión de las macros en un formulario o en un informe. . . . 14
2. Conversión de macros globales . . . . . . . . . . . . . . . . 15
3. Las macros y la seguridad. . . . . . . . . . . . . . . . . . 15
a. Modificación de la configuración de seguridad . . . . . . . . 15
b. Descripción de las diferentes opciones de seguridad. . . . . . 16
c. Editores de confianza . . . . . . . . . . . . . . . . . . 17
d. Ubicaciones de confianza. . . . . . . . . . . . . . . . . 18
E. El entorno de desarrollo IDE . . . . . . . . . . . 19
F. Configuración del editor VBA . . . . . . . . . . . 23
1. Configuración de los colores del editor. . . . . . . . . . . . . 23
2. Configuración de la presentación del código . . . . . . . . . . 23
G. Referencia a los objetos . . . . . . . . . . . . . 24
H. Creación de un procedimiento en VBA . . . . . . . 25
I. Consejos. . . . . . . . . . . . . . . . . . . . 29
Capítulo 2: El lenguaje Visual Basic
A. Los módulos . . . . . . . . . . . . . . . . . . 33
B. Los procedimientos . . . . . . . . . . . . . . . 34
1. Los procedimientos Sub. . . . . . . . . . . . . . . . . . . 35
2. Los procedimientos Function. . . . . . . . . . . . . . . . . 36
3. Declaración de los procedimientos . . . . . . . . . . . . . . 37
4. Alcance de los procedimientos . . . . . . . . . . . . . . . . 37
5. Argumentos de los procedimientos . . . . . . . . . . . . . . 38
6. Los argumentos con nombre . . . . . . . . . . . . . . . . . 39
7. Llamada a un procedimiento. . . . . . . . . . . . . . . . . 40
8. Ejemplos de procedimientos . . . . . . . . . . . . . . . . . 40
9. La función MsgBox. . . . . . . . . . . . . . . . . . . . . 41
C. Las variables . . . . . . . . . . . . . . . . . . 45
1. Los tipos de variables. . . . . . . . . . . . . . . . . . . . 45
2. Las declaraciones de variables . . . . . . . . . . . . . . . . 48
3. El alcance de las variables. . . . . . . . . . . . . . . . . . 49
4. Las matrices . . . . . . . . . . . . . . . . . . . . . . . 50
5. Las constantes. . . . . . . . . . . . . . . . . . . . . . . 52
D. Las estructuras de decisión . . . . . . . . . . . . 55
1. La instrucción IF. . . . . . . . . . . . . . . . . . . . . . 55
2. La instrucción Select Case. . . . . . . . . . . . . . . . . . 57
3. La función IIf . . . . . . . . . . . . . . . . . . . . . . . 58
E. Las estructuras en bucle . . . . . . . . . . . . . 59
1. La instrucción Do...Loop . . . . . . . . . . . . . . . . . . 59
2. La instrucción While...Wend . . . . . . . . . . . . . . . . . 60
3. La instrucción For...Next . . . . . . . . . . . . . . . . . . 61
4. La instrucción For Each...Next . . . . . . . . . . . . . . . . 62
F. Los operadores . . . . . . . . . . . . . . . . . 63
1. Los operadores aritméticos. . . . . . . . . . . . . . . . . . 64
2. Los operadores de comparación . . . . . . . . . . . . . . . 64
3. Los operadores lógicos . . . . . . . . . . . . . . . . . . . 65
4. El operador de concatenación . . . . . . . . . . . . . . . . 66
5. Prioridad de los operadores . . . . . . . . . . . . . . . . . 66
G. Las reglas de escritura del código . . . . . . . . . 67
1. Los comentarios . . . . . . . . . . . . . . . . . . . . . . 67
2. El carácter de continuación . . . . . . . . . . . . . . . . . 68
3. La indentación. . . . . . . . . . . . . . . . . . . . . . . 68
4. Los nombres de procedimientos, variables y constantes. . . . . . 68
H. Las convenciones de llamada . . . . . . . . . . . 69
1. Convención de llamada de las variables . . . . . . . . . . . . 69
2. Convención de llamada de los controles . . . . . . . . . . . . 70
3. Convención de llamada de los objetos . . . . . . . . . . . . . 71
Capítulo 2
32 VBA Access 2007
Capítulo 3: Objetos y colecciones
A. Presentación . . . . . . . . . . . . . . . . . . 75
B. El modelo de objetos de Access . . . . . . . . . . 76
1. Principales colecciones . . . . . . . . . . . . . . . . . . . 77
2. Otras colecciones . . . . . . . . . . . . . . . . . . . . . 78
3. Objetos del Modelo. . . . . . . . . . . . . . . . . . . . . 79
C. Principios de utilización de los objetos
y de las colecciones . . . . . . . . . . . . . . . 80
1. Las propiedades . . . . . . . . . . . . . . . . . . . . . . 80
2. Propiedades que representan objetos . . . . . . . . . . . . . 81
3. Los métodos . . . . . . . . . . . . . . . . . . . . . . . 82
4. Los eventos . . . . . . . . . . . . . . . . . . . . . . . . 83
5. Las colecciones . . . . . . . . . . . . . . . . . . . . . . 84
6. Presentación automática de instrucciones . . . . . . . . . . . 86
D. Instrucciones utilizadas con los objetos . . . . . . . 89
1. La instrucción With. . . . . . . . . . . . . . . . . . . . . 89
2. La instrucción For each...Next . . . . . . . . . . . . . . . . 90
3. La instrucción If TypeOf. . . . . . . . . . . . . . . . . . . 91
4. La instrucción Set . . . . . . . . . . . . . . . . . . . . . 92
E. Las clases de objetos . . . . . . . . . . . . . . 96
1. Descripción . . . . . . . . . . . . . . . . . . . . . . . . 96
2. Los módulos de clase. . . . . . . . . . . . . . . . . . . . 97
3. Ejemplo de módulos de clase . . . . . . . . . . . . . . . . 97
F. El examinador de objetos. . . . . . . . . . . . . 102
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 102
2. Búsqueda en el examinador de objetos . . . . . . . . . . . . 103
G. Propiedades y métodos de objetos de Access . . . . 104
1. El objeto Application . . . . . . . . . . . . . . . . . . . . 104
2. El objeto DoCmd. . . . . . . . . . . . . . . . . . . . . . 110
3. El objeto Screen . . . . . . . . . . . . . . . . . . . . . . 116
4. La colección References. . . . . . . . . . . . . . . . . . . 117
5. La colección Printers . . . . . . . . . . . . . . . . . . . . 120
Capítulo 3
74 VBA Access 2007
Capitulo 4: Objetos de acceso a datos
A. Objetos de acceso a datos DAO y ADO . . . . . . . 125
B. El modelo de acceso a datos DAO . . . . . . . . . 126
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 126
2. Jerarquía de los objetos DAO. . . . . . . . . . . . . . . . . 127
3. Descripción de las colecciones . . . . . . . . . . . . . . . . 128
4. El objeto DBEngine. . . . . . . . . . . . . . . . . . . . . 130
5. Los objetos Workspace . . . . . . . . . . . . . . . . . . . 131
6. Les objetos Database . . . . . . . . . . . . . . . . . . . . 132
7. Los objetos Recordset. . . . . . . . . . . . . . . . . . . . 134
8. Los objetos Tabledef . . . . . . . . . . . . . . . . . . . . 141
9. Los objetos Field e Index . . . . . . . . . . . . . . . . . . 143
10. Los objetos QueryDef y Parameter . . . . . . . . . . . . . . 146
11. Los objetos Relation . . . . . . . . . . . . . . . . . . . . 148
12. Los objetos Container y Document . . . . . . . . . . . . . . 150
13. Los objetos Group y User . . . . . . . . . . . . . . . . . . 153
14. El objeto Error. . . . . . . . . . . . . . . . . . . . . . . 154
15. Los objetos Property . . . . . . . . . . . . . . . . . . . . 156
C. El modelo de acceso a datos ADO . . . . . . . . . 157
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 157
2. ADO y OLE DB . . . . . . . . . . . . . . . . . . . . . . 158
3. Jerarquía de los objetos ADO. . . . . . . . . . . . . . . . . 159
4. Modelo de base de programación ADO. . . . . . . . . . . . . 160
5. Descripción de los objetos ADO. . . . . . . . . . . . . . . . 161
6. Las colecciones ADO . . . . . . . . . . . . . . . . . . . . 162
7. Los objetos Connection . . . . . . . . . . . . . . . . . . . 162
8. Los objetos Command . . . . . . . . . . . . . . . . . . . 165
9. Los objetos Recordset. . . . . . . . . . . . . . . . . . . . 166
10. La colección Fields . . . . . . . . . . . . . . . . . . . . . 172
11. Los objetos Field. . . . . . . . . . . . . . . . . . . . . . 173
12. La colección Parameters. . . . . . . . . . . . . . . . . . . 174
13. Los objetos Parameter . . . . . . . . . . . . . . . . . . . 174
14. La colección Properties . . . . . . . . . . . . . . . . . . . 175
15. Los objetos Property . . . . . . . . . . . . . . . . . . . . 175
16. La colección Errors . . . . . . . . . . . . . . . . . . . . . 176
17. Los objetos Error. . . . . . . . . . . . . . . . . . . . . . 176
Capítulo 4
124 VBA Access 2007
Capítulo 5: El lenguaje SQL
A. Presentación . . . . . . . . . . . . . . . . . . 179
B. Lenguaje SQL y VBA . . . . . . . . . . . . . . 181
C. Descripción del lenguaje SQL . . . . . . . . . . . 182
1. La instrucción SELECT . . . . . . . . . . . . . . . . . . . 182
2. La cláusula FROM . . . . . . . . . . . . . . . . . . . . . 183
3. La cláusula WHERE . . . . . . . . . . . . . . . . . . . . 184
4. La cláusula GROUP BY . . . . . . . . . . . . . . . . . . . 185
5. La cláusula HAVING . . . . . . . . . . . . . . . . . . . . 185
6. La cláusula ORDER BY . . . . . . . . . . . . . . . . . . . 186
7. La instrucción UPDATE . . . . . . . . . . . . . . . . . . . 186
8. La instrucción DELETE . . . . . . . . . . . . . . . . . . . 187
9. La instrucción INSERT INTO . . . . . . . . . . . . . . . . . 188
10. Otras instrucciones . . . . . . . . . . . . . . . . . . . . . 189
D. Ejemplos de utilización de consultas SQL . . . . . . 190
1. Actualización de registros . . . . . . . . . . . . . . . . . . 190
2. Carga de una lista desplegable . . . . . . . . . . . . . . . . 191
Capítulo 6: Gestión de los eventos
A. Presentación . . . . . . . . . . . . . . . . . . 197
1. Definición. . . . . . . . . . . . . . . . . . . . . . . . . 197
2. Asociación de código VBA a un evento. . . . . . . . . . . . . 198
B. Categorías de eventos . . . . . . . . . . . . . . 199
1. Eventos de tipo Ventana. . . . . . . . . . . . . . . . . . . 199
2. Eventos de tipo Enfoque. . . . . . . . . . . . . . . . . . . 200
3. Eventos de tipo Datos. . . . . . . . . . . . . . . . . . . . 201
4. Eventos de tipo Ratón . . . . . . . . . . . . . . . . . . . 202
5. Eventos de tipo Teclado. . . . . . . . . . . . . . . . . . . 203
6. Eventos de tipo Impresión . . . . . . . . . . . . . . . . . . 204
7. Eventos de tipo Filtro . . . . . . . . . . . . . . . . . . . . 205
8. Eventos de tipo Error y Cronómetro . . . . . . . . . . . . . . 205
C. Cancelación de un evento . . . . . . . . . . . . 206
D. Secuencias de tipos de eventos . . . . . . . . . . 207
E. Los eventos de actualización . . . . . . . . . . . 208
Capítulo 7: Depuración y gestión
de errores
A. Los distintos tipos de error . . . . . . . . . . . . 211
1. Los errores de sintaxis . . . . . . . . . . . . . . . . . . . 211
2. Los errores de compilación . . . . . . . . . . . . . . . . . 212
3. Los errores de ejecución. . . . . . . . . . . . . . . . . . . 213
4. Los errores de lógica . . . . . . . . . . . . . . . . . . . . 214
B. Depuración con VBA. . . . . . . . . . . . . . . 214
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 214
2. La barra de herramientas Depuración . . . . . . . . . . . . . 214
3. El objeto Debug . . . . . . . . . . . . . . . . . . . . . . 216
C. Gestión de errores con VBA. . . . . . . . . . . . 216
1. Principios. . . . . . . . . . . . . . . . . . . . . . . . . 216
2. El procedimiento de evento Error . . . . . . . . . . . . . . . 217
3. La instrucción On Error . . . . . . . . . . . . . . . . . . . 217
4. El objeto Err. . . . . . . . . . . . . . . . . . . . . . . . 219
Capítulo 8: Personalización
de los formularios y de los informes
A. Presentación . . . . . . . . . . . . . . . . . . 223
B. Personalización de los formularios . . . . . . . . . 223
1. Sintaxis. . . . . . . . . . . . . . . . . . . . . . . . . . 224
2. Propiedades disponibles en vista Diseño . . . . . . . . . . . . 225
a. Propiedades de la ficha Formato. . . . . . . . . . . . . . 226
b. Propiedades de la ficha Datos. . . . . . . . . . . . . . . 229
c. Propiedades de la ficha Eventos . . . . . . . . . . . . . . 230
d. Propiedades de la ficha Otras . . . . . . . . . . . . . . . 233
3. Propiedades no disponibles en modo Diseño . . . . . . . . . . 234
a. Propiedades relativas al modo de ver el formulario . . . . . . 234
b. Propiedades relativas a los registros y a su actualización. . . . 234
c. Propiedades relativas a la presentación del formulario. . . . . 235
d. Propiedades que devuelven un objeto. . . . . . . . . . . . 237
e. Propiedades relativas a la impresión del formulario . . . . . . 237
4. Métodos del objeto Form . . . . . . . . . . . . . . . . . . 238
C. Personalización de los informes . . . . . . . . . . 239
1. Sintaxis. . . . . . . . . . . . . . . . . . . . . . . . . . 239
2. Propiedades disponibles en vista Diseño . . . . . . . . . . . . 240
a. Propiedades de la ficha Formato. . . . . . . . . . . . . . 240
b. Propiedades de la ficha Datos. . . . . . . . . . . . . . . 243
c. Propiedades de la ficha Eventos . . . . . . . . . . . . . . 244
d. Propiedades de la ficha Otras . . . . . . . . . . . . . . . 245
3. Propiedades no disponibles en modo Diseño . . . . . . . . . . 246
a. Propiedades relativas al modo de ver el informe . . . . . . . 246
b. Propiedades relativas a los registros y a su actualización. . . . 246
c. Propiedades relativas a la presentación del informe . . . . . . 247
d. Propiedades que devuelven un objeto. . . . . . . . . . . . 248
e. Propiedades relativas a la impresión del informe . . . . . . . 249
f. Otras propiedades. . . . . . . . . . . . . . . . . . . . 250
4. Métodos . . . . . . . . . . . . . . . . . . . . . . . . . 250
D. Los objetos Control . . . . . . . . . . . . . . . 251
1. Sintaxis. . . . . . . . . . . . . . . . . . . . . . . . . . 251
2. Propiedades comunes a la mayoría de los controles . . . . . . . 251
3. Métodos comunes a la mayoría de los controles. . . . . . . . . 252
4. El método Move . . . . . . . . . . . . . . . . . . . . . . 252
E. Los controles de Access . . . . . . . . . . . . . 253
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 253
2. Lista de los controles Access 2007 . . . . . . . . . . . . . . 254
Capítulo 8
222 VBA Access 2007
Capítulo 9: Mejoras de la interfaz
de usuario
A. Las opciones de inicio . . . . . . . . . . . . . . 259
B. Personalización de la cinta de opciones. . . . . . . 261
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 261
2. Configuración de Access para la personalización
de la cinta de opciones . . . . . . . . . . . . . . . . . . . 262
a. Mostrar las tablas del sistema en el panel de exploración . . . 262
b. Mostrar mensajes de error contenidos en el código XML . . . . 262
3. Creación de una tabla del sistema USysRibbons. . . . . . . . . 263
4. Adición de código XML de personalización a la tabla USysRibbons
5. Asociación de la cinta de opciones a la aplicación activa . . . . . 265
6. Asociación de la cinta de opciones a un formulario o a un informe . 265
C. Presentación del lenguaje XML . . . . . . . . . . 266
1. El lenguaje XML . . . . . . . . . . . . . . . . . . . . . . 266
2. Elementos XML utilizados para personalizar la cinta de opciones . . 266
a. Principales marcas activas XML utilizadas en el código XML
de una cinta de opciones. . . . . . . . . . . . . . . . . 266
b. Propiedades asociadas a los objetos de una cinta de opciones . 267
D. Ejemplo de cinta de opciones personalizada . . . . . 268
1. Código XML de la cinta de opciones personalizada. . . . . . . . 269
2. Código VBA llamado por los comandos de la cinta
de opciones personalizada. . . . . . . . . . . . . . . . . . 273
E. Imágenes de la galería de iconos de Microsoft Office . 274
Capítulo 10: Comunicación
con las aplicaciones Office 2007
A. La tecnología Automatización . . . . . . . . . . . 279
1. Presentación . . . . . . . . . . . . . . . . . . . . . . . 279
2. Utilización de la tecnología Automatización. . . . . . . . . . . 280
B. Controlar Word desde Access . . . . . . . . . . . 282
1. El modelo Objeto Word . . . . . . . . . . . . . . . . . . . 282
2. Objetos y colecciones Word . . . . . . . . . . . . . . . . . 283
3. La colección Documents. . . . . . . . . . . . . . . . . . . 284
4. Los objetos Document . . . . . . . . . . . . . . . . . . . 284
C. Controlar Excel desde Access . . . . . . . . . . . 287
1. El modelo Objeto Excel . . . . . . . . . . . . . . . . . . . 287
2. Objetos y colecciones Excel . . . . . . . . . . . . . . . . . 288
3. La colección Workbooks. . . . . . . . . . . . . . . . . . . 288
4. Los objetos Workbook . . . . . . . . . . . . . . . . . . . 289
5. Escritura de datos en celdas Excel . . . . . . . . . . . . . . 290
D. Controlar Outlook desde Access . . . . . . . . . . 292
1. El modelo Objeto Outlook . . . . . . . . . . . . . . . . . . 292
2. Ejemplo: mostrar los contactos de Oulook . . . . . . . . . . . 293
E. El protocolo DDE . . . . . . . . . . . . . . . . 294
1. El inicio . . . . . . . . . . . . . . . . . . . . . . . . . 294
2. El vínculo. . . . . . . . . . . . . . . . . . . . . . . . . 295
3. El cierre . . . . . . . . . . . . . . . . . . . . . . . . . 297
Capítulo 11: Programación en Internet
A. Importación y exportación de datos en formato XML . 301
1. El método ExportXML. . . . . . . . . . . . . . . . . . . . 301
2. El método ImportXML. . . . . . . . . . . . . . . . . . . . 303
3. Ejemplo de importación/exportación XML. . . . . . . . . . . . 303
B. Ejemplo de creación de un archivo HTML. . . . . . 307
Capítulo 12: Programación en Windows
A. Presentación de las API . . . . . . . . . . . . . 311
B. Llamada a una función de la API Windows . . . . . 312
1. Sintaxis de la instrucción Declare . . . . . . . . . . . . . . . 312
2. Paso de argumentos . . . . . . . . . . . . . . . . . . . . 313
C. Lista de funciones de la API Windows . . . . . . . 315
D. Ejemplos de utilización de funciones
de la API Windows . . . . . . . . . . . . . . . 316
1. Recuperación del directorio de Windows . . . . . . . . . . . . 316
2. Inicio de la aplicación Excel si no está activa . . . . . . . . . . 317
3. Recuperación de un valor en un archivo .Ini . . . . . . . . . . 318
E. El objeto FileSystemObject . . . . . . . . . . . . 320
1. Métodos . . . . . . . . . . . . . . . . . . . . . . . . . 320
2. Propiedades. . . . . . . . . . . . . . . . . . . . . . . . 321
3. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . 321
Capítulo 13: Código de
una mini-aplicación
A. Presentación . . . . . . . . . . . . . . . . . . 325
1. Enunciado del problema. . . . . . . . . . . . . . . . . . . 325
2. Base de datos Cursos. . . . . . . . . . . . . . . . . . . . 325
3. Modelo relacional de la base. . . . . . . . . . . . . . . . . 326
B. Formulario 'Cursos' . . . . . . . . . . . . . . . 326
1. Lista de controles . . . . . . . . . . . . . . . . . . . . . 327
2. Código VBA . . . . . . . . . . . . . . . . . . . . . . . . 328
3. Subformulario 'SF Participantes' . . . . . . . . . . . . . . . 333
4. Código VBA . . . . . . . . . . . . . . . . . . . . . . . . 333
C. Formulario 'Buscar' . . . . . . . . . . . . . . . 334
1. Lista de controles . . . . . . . . . . . . . . . . . . . . . 335
2. Código VBA . . . . . . . . . . . . . . . . . . . . . . . . 336
3. Subformulario 'SF Cursos' . . . . . . . . . . . . . . . . . . 339
4. Informe 'Cursos' . . . . . . . . . . . . . . . . . . . . . . 340
Otros clientes que compraron Pack de libros VBA - Pack 2 libros: Domine VBA Excel y Access 2007, también compraron:
Otros libros de Visual Basic.NET: