Sie sind auf Seite 1von 52

Mtodo AccessError

El mtodo AccessError se puede utilizar para devolver la cadena descriptiva asociada a un


error de Microsoft Access o DAO. Variant.
expresin.AccessError(ErrorNumber)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
ErrorNumber Variant requerida. El nmero de error para el que desea devolver una
cadena descriptiva.

Comentarios
El mtodo AccessError se puede utilizar para devolver la cadena descriptiva asociada a un
error de Microsoft Access o DAO cuando el error no se produjo en realidad, pero no se
puede utilizar para errores de ADO.
El mtodo Raise de Visual Basic se utiliza para eliminar un error de Visual Basic. Una vez
haya eliminado el error, puede determinar su cadena descriptiva asociada leyendo la
propiedad Descripcin del objeto Err.
El mtodo Raise no se puede usar para quitar un error de Microsoft Access o DAO. Sin
embargo, puede usar el mtodo AccessError para devolver la cadena descriptiva asociada
con estos errores, sin tener que generar el error.
Puede usar el mtodo AccessError para devolver una cadena descriptiva desde dentro de
un evento Error de un formulario.
Si se ha producido el error de Microsoft Access, puede devolver la cadena descriptiva
usando el mtodo AccessError o la propiedad Descripcin del objeto Err de Visual Basic.

Ejemplo
La siguiente funcin devuelve una cadena de errores de cualquier nmero de error vlido:
Nota Las opciones para interceptar errores deben estar establecidas en Modo de
interrupcin en errores no tratados para que el cdigo se ejecute en VBA IDE. Esta opcin
se puede establecer en la ficha General del cuadro de dilogo Opciones del men
Herramientas de VBA.
Function ErrorString(ByVal lngError As Long) As String
Const conAppError = "Application-defined or " & _
"object-defined error"
Pgina

238

On Error Resume Next


Err.Raise lngError
If Err.Description = conAppError Then
ErrorString = AccessError(lngError)
ElseIf Err.Description = vbNullString Then
MsgBox "No error string associated with this number."
Else
ErrorString = Err.Description
End If
End Function

Mtodo Add
Mtodo Add segn se aplica al objeto de coleccin AccessObjectProperties.
Puede utilizar el mtodo Add para agregar una nueva propiedad como un objeto
AccessObjectProperty a la coleccin AccessObjectProperties de un objeto
AccessObject.
expresin.Add(NombrePropiedad, Valor)
expresin
Requerida.
AccessObjectProperties.

Expresin

que

devuelve

un

objeto

de

coleccin

NombrePropiedad String requerida. Expresin de cadena que es el nombre de la nueva


propiedad.
Valor Variant requerida. Un valor Variant correspondiente al valor de la opcin. El valor
del argumento depender de los posibles valores de la opcin particular. Puede ser una
constante o un valor de cadena.

Comentarios
Puede usar el mtodo Remove de la coleccin AccessObjectProperties para eliminar una
propiedad existente.
Mtodo Add segn se aplica al objeto de coleccin FormatConditions.
Puede utilizar el mtodo Add para agregar un formato condicional como un objeto
FormatCondition a la coleccin FormatConditions de un control de cuadro combinado o
de cuadro de texto.

Pgina

239

expresin.Add(Tipo, Operador, Expresin1, Expresin2)


expresin Requerida. Expresin que devuelve un objeto de coleccin FormatConditions.
Tipo AcFormatConditionType requerido. El tipo de condicin de formato que se va a
agregar.
AcFormatConditionType puede ser una de estas constantes AcFormatConditionType.
acExpression
acFieldHasFocus
acFieldValue
Operador AcFormatConditionOperator opcional Si el argumento Tipo es acExpression,
se omite el argumento Operador. Si deja en blanco este argumento, se asume la constante
predeterminada (acBetween).
AcFormatConditionOperator
AcFormatConditionOperator.
acBetween predeterminado
acEqual
acGreaterThan
acGreaterThanOrEqual
acLessThan
acLessThanOrEqual
acNotBetween
acNotEqual

puede

ser

una

de

estas

constantes

Expresin1 Variant opcional. Un valor o expresin Variant asociado con la primera parte
del formato condicional. Puede ser una constante o un valor de cadena.
Expresin2 Variant opcional. Un valor o expresin Variant asociado con la segunda
parte del formato condicional cuando el argumento Operador es acBetween o
acNotBetween (si no, se omite el argumento). Puede ser una constante o un valor de
cadena.

Comentarios
Puede utilizar el mtodo Delete de la coleccin FormatConditions para eliminar una
coleccin FormatConditions existente del control de un cuadro combinado o de un cuadro
de texto.
Mtodo Add segn se aplica al objeto de coleccin Pages.
Pgina

240

El mtodo Add agrega un objeto Page nuevo a la coleccin Pages de un control ficha.
expresin.Add(Antes)
expresin Requerida. Expresin que devuelve un objeto de coleccin Pages.
Antes Variant opcional. Un entero que especifica el ndice del objeto Page antes del cual
debe agregarse el nuevo objeto Page. El ndice del objeto Pgina (Page) corresponde al
valor de la propiedad ndiceDePginas (PageIndex) de ese objeto Pgina (Page). Si omite
este argumento, el nuevo objeto Pgina (Page) se agrega al final de la coleccin.

Comentarios
El primer objeto Pgina (Page) de la coleccin Pginas (Pages) corresponde a la pgina
situada ms a la izquierda del control ficha y tiene un ndice de 0. El segundo objeto
Pgina (Page) est situado inmediatamente a la derecha de la primera pgina y tiene un
ndice de 1, y as sucesivamente para todos los objetos Pgina (Page) del control ficha.
Si especifica 0 para el argumento Antes, el nuevo objeto Page se agrega antes del primer
objeto Page de la coleccin Pages. El nuevo objeto Pgina (Page) se convierte entonces en
el primer objeto Pgina (Page) de la coleccin, con un ndice de 0.
Puede agregar un objeto Page a la coleccin Pages de un control ficha slo cuando el
formulario se encuentra en la vista Diseo.

Ejemplo
Segn se aplica al objeto Pages.
El ejemplo siguiente agrega una pgina a un control ficha de un formulario que se
encuentra en la vista Diseo. Para probar este ejemplo, cree un nuevo formulario
denominado Formulario1 con un control ficha denominado ControlFicha0. Pegue el cdigo
siguiente en un mdulo estndar y ejectelo:
Function AddPage() As Boolean
Dim frm As Form
Dim tbc As TabControl, pge As Page
On Error GoTo Error_AddPage
Set frm = Forms!Form1
Set tbc = frm!TabCtl0
tbc.Pages.Add
AddPage = True
Exit_AddPage:
Pgina

241

Exit Function
Error_AddPage:
MsgBox Err & ": " & Err.Description
AddPage = False
Resume Exit_AddPage
End Function

Mtodo AddFromFile
Vea tambin Se aplica a Ejemplo Especficos
Mtodo AddFromFile aplicable al objeto References.
El mtodo AddFromFile crea una referencia a una biblioteca de tipos de un archivo
especificado. Objeto Reference.
expresin.AddFromFile(FileName)
expresin Requerida. Expresin que devuelve uno de los objetos arriba mencionados.
FileName String requerida. Una expresin de cadena que da como resultado la ruta de
acceso completa y el nombre de archivo del archivo que contiene la biblioteca de tipos a la
cual desea establecer una referencia.
Mtodo AddFromFile aplicable al objeto Module.
El mtodo AddFromFile agrega el contenido de un archivo de texto a un objeto Module.
El objeto Module puede ser un mdulo estndar o un mdulo de clase.
expresin.AddFromFile(FileName)
expresin Requerida. Expresin que devuelve uno de los objetos arriba mencionados.
FileName String requerida. El nombre y la ruta de acceso completa de un archivo de texto
(.txt) u otro archivo que contenga texto en formato ANSI.

Comentarios
Segn se aplica al objeto References.
La tabla siguiente enumera los tipos de archivo que contienen normalmente bibliotecas de
tipos.
Pgina

242

Extensin de archivo

Tipo de archivo

.olb, .tlb

Archivo de biblioteca de tipos

.MDB, .MDA, .MDE

Base de datos

.exe, .dll

Archivo ejecutable

.ocx

Control ActiveX

Segn se aplica al objeto Module.


El mtodo AddFromFile sita el contenido del archivo de texto especificado
inmediatamente despus de la seccin Declaraciones y antes del primer procedimiento del
mdulo si contiene otros procedimientos.
El mtodo AddFromFile permite importar cdigo o comentarios almacenados en un
archivo de texto.
Para agregar el contenido de un archivo a un mdulo de un formulario o un informe, el
formulario o el informe debe estar abierto en la vista Diseo del formulario o en la vista
Diseo del informe. Para agregar el contenido de un archivo a un mdulo estndar o un
mdulo de clase, el mdulo debe estar abierto.

Ejemplo
Segn se aplica al objeto References.
El ejemplo siguiente agrega una referencia a la biblioteca Microsoft Scripting Runtime.
References.AddFromFile "C:\WINNT\system32\scrrun.dll"
Segn se aplica al objeto Module.
En el ejemplo siguiente se coloca el contenido del archivo "ShippingRoutines.bas" en el
mdulo "CalculateShipping", inmediatamente despus de la seccin Declarations y antes
del primer procedimiento del mdulo.
Modules("CalculateShipping").AddFromFile "C:\Shipping\ShippingRoutines.bas"

Mtodo AddFromGuid
Vea tambin Se aplica a Ejemplo Especficos
Pgina

243

El mtodo AddFromGUID crea un objeto Reference basado en el GUID que identifica a


una biblioteca de tipos. Objeto Reference.
expresin.AddFromGuid(Guid, Major, Minor)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
Guid String requerida. Un GUID que identifica a una biblioteca de tipos.
Major Long requerido.
Minor Long requerido.

Comentarios
La propiedad GUID devuelve el GUID de un objeto Reference especificado. Si ha
almacenado el valor de la propiedad GUID, puede utilizarlo para volver a crear una
referencia que se haya roto.

Ejemplo
El ejemplo siguiente vuelve a crear una referencia a Microsoft Scripting Runtime versin
1.0, basndose en su GUID en el sistema del usuario.
References.AddFromGuid "{420B2830-E718-11CF-893D-00A0C9054228}", 1, 0

Mtodo AddFromString
El mtodo AddFromString agrega una cadena a un objeto Module. El objeto Module
puede ser un mdulo estndar o un mdulo de clase.
expresin.AddFromString(String)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
String String requerida.

Comentarios
El mtodo AddFromString sita el contenido de una cadena despus de la seccin
Declaraciones y antes del primer procedimiento existente en el mdulo si el mdulo
contiene otros procedimientos.

Pgina

244

Para agregar una cadena a un mdulo de formulario o de informe, el formulario o el


informe debe estar abierto en la vista Diseo del formulario o la vista Diseo del informe
respectivamente. Para agregar una cadena a un mdulo estndar o un mdulo de clase, el
mdulo debe estar abierto.

Ejemplo
Este ejemplo crea un nuevo formulario y agrega una cadena y el contenido del archivo
Funciones.txt a su mdulo. Ejecute el procedimiento siguiente desde un mdulo estndar:
Sub AddTextToFormModule()
Dim frm As Form, mdl As Module
Set frm = CreateForm
Set mdl = frm.Module
mdl.AddFromString "Public intY As Integer"
mdl.AddFromFile "C:\My Documents\Functions.txt"
End Sub

Mtodo AddItem
Agrega un nuevo elemento a la lista de valores mostrada en el control de cuadro de lista o
de cuadro combinado especificado.
expresin.AddItem(Elemento, ndice)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
Item String requerida. El texto mostrado para el nuevo elemento.
ndice Variant opcional. La posicin del elemento en la lista. Si se omite este argumento,
el elemento se agrega al final de la lista.

Comentarios
La propiedad TipoDeOrigenDeLaFila (RowSourceType) del control especificado debe
establecerse en "Lista de valores".
Este mtodo slo es vlido para los controles de cuadro de lista o cuadro combinado de los
formularios.
Los nmeros de los elementos de lista comienzan a partir de cero. Si el valor del argumento
ndice no corresponde a un nmero de elemento existente, se produce un error.

Pgina

245

Para listas con varias columnas, utilice punto y coma para delimitar las cadenas de cada
columna (por ejemplo, "1010;rojo;ancho" para una lista de tres columnas). Si el argumento
Elemento contiene menos cadenas que columnas haya en el control, los elementos se
agregarn a partir de la columna situada ms a la izquierda. Si el argumento Elemento
contiene ms cadenas que columnas haya en el control, se omitirn las cadenas que sobran.
Utilice el mtodo RemoveItem para eliminar elementos de la lista de valores.

Ejemplo
Este ejemplo agrega un elemento al final de la lista en un control de cuadro de lista. Para
que funcione, debe pasar a esta funcin un objeto ListBox que representa un control de
cuadro de lista de un formulario y un valor String que representa el texto del elemento que
se va a agregar.
Function AddItemToEnd(ctrlListBox As ListBox, _
ByVal strItem As String)
ctrlListBox.AddItem Item:=strItem
End Function
Este ejemplo agrega un elemento al principio de la lista en un control de cuadro combinado.
Para que funcione, debe pasar a esta funcin un objeto ComboBox que representa un
control de cuadro combinado de un formulario y un valor String que representa el texto del
elemento que se va a agregar.
Function AddItemToBeginning(ctrlComboBox As ComboBox, _
ByVal strItem As String)
ctrlComboBox.AddItem Item:=strItem, Index:=0
End Function

Mtodo AddMenu
El mtodo AddMenu lleva a cabo la accin AgregarMen en Visual Basic.
expresin.AddMenu(MenuName, MenuMacroName, StatusBarText)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
MenuName Variant requerida. Una expresin de cadena que es el nombre vlido de un
men desplegable que se va a agregar a la barra de men personalizada o a la barra de
men global. Para crear una tecla de acceso de forma que pueda usar el teclado para elegir
Pgina

246

el men, escriba un signo "&" delante de la letra que desea que sea la tecla de acceso. Esta
letra aparecer subrayada en el nombre del men, en la barra de mens.
MenuMacroName Variant requerida. Una expresin de cadena que es el nombre vlido
del grupo de macros que contiene las macros para los comandos del men. Este argumento
es obligatorio.
StatusBarText Variant requerida. Una expresin de cadena que es el texto mostrado en la
barra de estado cuando se selecciona el men.

Comentarios
Debe incluir los argumentos nombremen y nombremacromen en el mtodo AddMenu
para las barras de men personalizadas y barras de men globales. El argumento
nombremen no es necesario y se omitir para mens contextuales personalizados y mens
contextuales globales.
El argumento textobarraestado es opcional y se omitir para mens contextuales
personalizados y mens contextuales globales.

Mtodo AddToFavorites
Vea tambin Se aplica a Ejemplo Especficos
El mtodo AddToFavorites agrega a la carpeta Favoritos una direccin de hipervnculo.
expresin.AddToFavorites
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.

Comentarios
Cuando se aplica a un objeto Application, el mtodo AddToFavorites agrega el nombre
de la base de datos actual a la carpeta Favoritos. Por ejemplo, si est trabajando con la base
de datos de ejemplo Neptuno, al aplicar el mtodo AddToFavorites al objeto Application
se agrega la direccin de hipervnculo de la base de datos Neptuno a la carpeta Favoritos.
Cuando se aplica a un objeto Control,el mtodo AddToFavorites agrega a la carpeta
Favoritos la direccin de hipervnculo contenida en un control. La carpeta Favoritos est
instalada de forma predeterminada en la carpeta de Windows.
El mtodo AddToFavorites tiene el mismo efecto que hacer clic en AgregarAFavoritos
en el men Favoritos de la barra de herramientas Web cuando el documento cuya
direccin desea agregar est abierto.
Pgina

247

Ejemplo
El
ejemplo
siguiente
establece
la
propiedad
DireccinDeHipervnculo
(HyperlinkAddress) de un botn de comando. Cuando el usuario hace clic en el botn de
comando, la direccin se agrega a la carpeta Favoritos mediante el mtodo
AddToFavorites.
Para probar este ejemplo, cree un nuevo formulario y agregue un botn de comando
denominado Comando0. Pegue el cdigo siguiente en el mdulo del formulario. Cambie a
la vista Formulario y haga clic en el botn de comando.
Private Sub Form_Load()
Me!Command0.HyperlinkAddress = "http://www.microsoft.com/"
End Sub
Private Sub Command0_Click()
Me!Command0.Hyperlink.AddToFavorites
End Sub

Mtodo ApplyFilter
El mtodo ApplyFilter ejecuta la accin AplicarFiltro en Visual Basic.
expresin.ApplyFilter (NombreFiltro, CondicinWhere)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
FilterName Variant opcional. Una expresin de cadena que es el nombre vlido de un
filtro o consulta en la base de datos activa. Cuando utilice este mtodo para aplicar un filtro
de servidor, el argumento NombreFiltro debe estar vaco.
WhereCondition Variant opcional. Expresin de cadena que es una clusula WHERE de
SQL vlida sin la palabra WHERE.

Comentarios
Para obtener ms informacin sobre cmo funcionan la accin y sus argumentos, consulte
el tema de la accin.
El filtro y la condicin WHERE aplicados se convertirn en los valores de la propiedad
Filtro (Filter) del formulario o de la propiedad FiltroDeServidor (ServerFilter) del
informe.
Pgina

248

Es necesario incluir al menos uno de los dos argumentos del mtodo ApplyFilter. Si
introduce un valor para ambos argumentos, el argumento CondicinWhere se aplica al
filtro.
La longitud mxima del argumento CondicinWhere es 32.768 caracteres (al contrario que
el argumento de la accin Condicin WHERE en la ventana Macro, cuya longitud mxima
es de 256 caracteres).
Si especifica el argumento CondicinWhere y deja en blanco el argumento NombreFiltro,
debe incluir la coma del argumento NombreFiltro.

Ejemplo
El siguiente ejemplo utiliza el mtodo ApplyFilter para mostrar slo los registros que
contengan el nombre Rey en el campo Apellido:
DoCmd.ApplyFilter , "LastName = 'King'"

Mtodo ApplyTheme
Puede utilizar el mtodo ApplyTheme para especificar el tema de Microsoft Office para
una pgina de acceso a datos especificada.
expresin.ApplyTheme(ThemeName)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
ThemeName String requerida. El nombre del tema de Office.

Comentarios
El mtodo ApplyTheme proporciona una forma de cambiar opciones del entorno desde el
cdigo de Visual Basic.

Ejemplo
En el ejemplo siguiente se aplica el tema Mundo artstico a la pgina de acceso a datos
denominada "Panel de control".
DataAccessPages("Switchboard").ApplyTheme "Artsy"

Mtodo Beep
Pgina

249

El mtodo Beep ejecuta la accin Bip en Visual Basic.


expresin.Beep
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.

Comentarios
Este mtodo no tiene argumentos y se puede llamar directamente mediante la sintaxis
DoCmd.Beep.

Tambin se obtiene el mismo resultado con el comando de VBA Interaction.Beep.


Tambin puede usar la instruccin Beep en Visual Basic para hacer que su mquina haga
sonar un tono a travs del altavoz.

Mtodo BuildCriteria
El mtodo BuildCriteria devuelve una cadena de criterios de sintaxis analizados como
aparecera en la cuadrcula de diseo de la consulta, Filtro por formulario o Filtro de
servidor por formulario. Por ejemplo, puede que desee establecer la propiedad Filtro
(Filter) o FiltroDeServidor (ServerFilter) de un formulario basndose en criterios
variables del usuario. Puede utilizar el mtodo BuildCriteria para construir el argumento
de expresin de la cadena para la propiedad Filtro (Filter) o FiltroDeServidor
(ServerFilter). String.
expresin.BuildCriteria(Field, FieldType, Expression)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
Field String requerida. Una expresin de cadena que identifica el campo para el que desea
definir los criterios.
FieldType Integer requerido. Constante intrnseca que indica el tipo de datos del campo.
Para obtener una lista de los tipos de datos, posibles de campos, consulte la propiedad ADO
Type.
Expresin String requerida. Cadena de expresin que identifica los criterios que deben ser
analizados.

Comentarios
El mtodo BuildCriteria devuelve una cadena de caracteres.

Pgina

250

El mtodo BuildCriteria permite construir fcilmente criterios para un filtro que se base en
las entradas del usuario. Analiza el argumento expresin de la misma forma que si la
expresin hubiera sido analizada si hubiera sido introducida en el modo Cuadrcula de
diseo de la consulta, Filtro por formulario o Filtro de servidor por formulario.
Por ejemplo, un usuario que crea una consulta en una tabla Pedidos puede restringir la hoja
de respuestas dinmica a los pedidos que se hayan hecho despus del 1 de Enero, 1995,
estableciendo los criterios en un campo FechaPedido. El usuario podra introducir una
expresin como la siguiente en la fila Criterios bajo el campo FechaPedido:
>1-1-95
Microsoft Access analiza automticamente esta expresin y devuelve la siguiente
expresin:
>#1/1/95#
El mtodo BuildCriteria ofrece el mismo anlisis desde el cdigo Visual Basic. Por
ejemplo, para devolver la cadena anterior correctamente analizada, se pueden suministrar
los siguientes argumentos al mtodo BuildCriteria:
Dim strCriteria As String
strCriteria = BuildCriteria("OrderDate", dbDate, ">1-1-95")
Dado que es necesario suministrar criterios para la propiedad Filtro (Filter) en un
formulario con la sintaxis analizada correctamente, puede utilizar el mtodo BuildCriteria
para construir una cadena analizada correctamente:
Se puede utilizar el mtodo BuildCriteria para construir una cadena con criterios mltiples
si esos criterios se refieren al mismo campo. Por ejemplo, puede utilizar el mtodo
BuildCriteria con los siguientes argumentos para construir una cadena con criterios
mltiples que estn relacionados con el campo FechaPedido:
strCriteria = BuildCriteria("OrderDate", dbDate, ">1-1-95 and <5-1-95")
Este ejemplo devuelve la siguiente cadena de criterios:
FechaPedido>#1/1/95# y FechaPedido<#5/1/95#
Sin embargo, si desea construir una cadena de criterios que haga referencia a campos
mltiples, debe crear las cadenas y concatenarlas. Por ejemplo, si desea construir un criterio
para un filtro para mostrar los registros de los pedidos hechos despus del 1-1-95 y para los
que el importe sea menor de $50, deber utilizar el mtodo BuildCriteria dos veces y
concatenar las cadenas resultantes:

Ejemplo
Pgina

251

El siguiente ejemplo indica al usuario que introduzca las primeras letras del nombre de un
producto y luego usa el mtodo BuildCriteria para construir una cadena de criterios basada
en la entrada del usuario. A continuacin, el procedimiento suministra esta cadena como
argumento de la propiedad Filtro (Filter) de un formulario Productos. Finalmente, se
establece la propiedad ActivarFiltro (FilterOn) para que aplique el filtro.
Sub SetFilter()
Dim frm As Form, strMsg As String
Dim strInput As String, strFilter As String
' Open Products form in Form view.
DoCmd.OpenForm "Products"
' Return Form object variable pointing to Products form.
Set frm = Forms!Products
strMsg = "Enter one or more letters of product name " _
& "followed by an asterisk."
' Prompt user for input.
strInput = InputBox(strMsg)
' Build criteria string.
strFilter = BuildCriteria("ProductName", dbText, strInput)
' Set Filter property to apply filter.
frm.Filter = strFilter
' Set FilterOn property; form now shows filtered records.
frm.FilterOn = True
End Sub

Mtodo CancelEvent
El mtodo CancelEvent ejecuta la accin CancelarEvento en Visual Basic.
expresin.CancelEvent
expresin Requerida. Expresin que devuelve un objeto DoCmd.

Comentarios
Este mtodo no tiene argumentos y se puede llamar directamente mediante la sintaxis
DoCmd.CancelEvent.
El mtodo CancelEvent slo tiene efecto cuando se ejecuta como resultado de un evento.
Este mtodo cancela el evento.

Pgina

252

Todos los eventos que pueden ser cancelados en Visual Basic tienen un argumento
Cancelar. Puede usar este argumento en lugar del mtodo CancelEvent para cancelar el
evento. El evento KeyPress y el evento MouseDown (slo para el botn secundario) slo
pueden ser cancelados en macros, no en procedimientos de evento, con lo que debe usar la
accin CancelarEvento en una macro para cancelar estos eventos.

Mtodo Circle
El mtodo Circle dibuja un crculo, una elipse o un arco en un objeto Informe (Report)
cuando se produce el evento Print.
expresin.Circle(flags, X, Y, radius, color, start, end, aspect)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
flags Integer requerido.
X Requerido. Valor Single que indica la coordenada X del centro del crculo, la elipse o el
arco. Las propiedades de escala (ScaleMode, ScaleLeft, ScaleTop, ScaleHeight y
ScaleWidth) del objeto Report especificadas por el argumento objeto determinan la
unidad de medida utilizada.
Y Requerido. Valor Single que indica la coordenada Y del centro del crculo, la elipse o el
arco. Las propiedades de escala (ScaleMode, ScaleLeft, ScaleTop, ScaleHeight y
ScaleWidth) del objeto Report especificadas por el argumento objeto determinan la
unidad de medida utilizada.
radius Requerido. Valor de tipo Single que indica el radio del crculo, elipse o arco. Las
propiedades de escala (ScaleMode, ScaleLeft, ScaleTop, ScaleHeight y ScaleWidth) del
objeto Report especificadas por el argumento objeto determinan la unidad de medida
utilizada. De forma predeterminada, las distancias se miden en twips.
color Long requerido.Valor de tipo Long que indica el color RGB del contorno del
crculo. Si se omite este argumento, se utilizar el valor de la propiedad ColorDelTexto
(ForeColor). Puede usar la funcin RGB o la funcin QBColor para especificar el color.
start Single requerido. Cuando se dibuja un crculo o una elipse parcial, el argumento start
especifica (en radianes) la posicin inicial del arco. El valor predeterminado del argumento
start es 0 radianes. El intervalo es de -2 Pi radianes a 2 Pi radianes.
end Single requerido. Cuando se dibuja un crculo o una elipse parcial, el argumento end
especifica (en radianes) la posicin final del arco. El valor predeterminado del argumento
end es 2 pi radianes. El intervalo es de -2 Pi radianes a 2 Pi radianes.

Pgina

253

aspect Requerido. Un valor de tipo Single que indica la relacin entre las dimensiones del
crculo. El valor predeterminado es 1.0, que produce un crculo perfecto (no ovalado) en
cualquier pantalla.

Comentarios
Slo puede usar este mtodo en un procedimiento de evento o una macro especificada por
las propiedades de evento en una seccin de informe, o la propiedad de evento AlPaginar
(OnPage) en un informe.
Si al dibujar un crculo o elipse parcial el argumento comienzo es negativo, Circle dibuja
un radio hasta la posicin especificada por el argumento comienzo y considera el ngulo
como positivo. Si el argumento fin es negativo, Circle dibuja un radio hasta la posicin
especificada por el argumento fin y considera el ngulo como positivo. El mtodo Circle
siempre dibuja en el sentido contrario de las manecillas del reloj (direccin positiva).
Si desea rellenar un crculo, establezca las propiedades ColorDeRelleno (FillColor) y
EstiloDeRelleno (FillStyle) en el informe. Slo las figuras cerradas se pueden rellenar. Las
figuras cerradas incluyen los crculos, elipses y sectores (arcos con lneas de radio
dibujadas en ambos extremos).
Si al dibujar sectores necesita dibujar un radio hasta el ngulo 0 para formar un segmento
de lnea horizontal a la derecha, especifique un valor negativo muy pequeo para el
argumento start en lugar de especificar 0. Por ejemplo, podra especificar -,00000001 para
el argumento start.
Puede omitir un argumento en medio de la sintaxis, pero tiene que incluir la coma del
argumento antes de incluir el siguiente argumento. Si omite un argumento a la izquierda, no
use ninguna coma despus del ltimo argumento que especifique.
El ancho de la lnea utilizada para dibujar el crculo, elipse o arco depende del valor de la
propiedad AnchoDeDibujo (DrawWidth). La manera en que un crculo se dibuja en el
fondo depende de las configuraciones de las propiedades ModoDeDibujo (DrawMode) y
EstiloDeDibujo (DrawStyle).
Al aplicar el mtodo Circle, las propiedades CurrentX y CurrentY se establecen como el
centro especificado por los argumentos x e y.

Ejemplo
Este ejemplo usa el mtodo Circle para dibujar un crculo y crear un sector circular de
color rojo dentro del crculo.

Pgina

254

Para probar este ejemplo en Microsoft Access, cree un nuevo informe. Establezca la
propiedad AlImprimir (OnPrint) de la seccin Detalles a [Procedimiento de evento].
Introduzca este cdigo en el mdulo del informe y cambie a Vista preliminar.
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Const conPI = 3.14159265359
Dim sngHCtr As Single, sngVCtr As Single
Dim sngRadius As Single
Dim sngStart As Single, sngEnd As Single
sngHCtr = Me.ScaleWidth / 2 ' Horizontal center.
sngVCtr = Me.ScaleHeight / 2 ' Vertical center.
sngRadius = Me.ScaleHeight / 3 ' Circle radius.
' Draw circle.
Me.Circle(sngHCtr, sngVCtr), sngRadius
sngStart = -0.00000001
' Start of pie slice.
sngEnd = -2 * conPI / 3
' End of pie slice.
Me.FillColor = RGB(255,0,0) ' Color pie slice red.
Me.FillStyle = 0
' Fill pie slice.
' Draw pie slice within circle.
Me.Circle(sngHCtr, sngVCtr), sngRadius, , sngStart, sngEnd
End Sub

Mtodo Close
El mtodo Close lleva a cabo la accin Cerrar en Visual Basic.
expresin.Close(ObjectType, ObjectName, Save)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
ObjectType AcObjectType opcional.
AcObjectType puede ser una de estas constantes AcObjectType.
acDataAccessPage
Valor predeterminado acDefault
acDiagram
acForm
acFunction
acMacro
acModule
acQuery
acReport
Pgina

255

acServerView
acStoredProcedure
acTable
Nota Si se cierra un mdulo en el Editor de Visual Basic (VBE), deber utilizar
acModule en el argumento objecttype.
ObjectName Variant opcional. Una expresin de cadena que es el nombre vlido de un
objeto del tipo seleccionado por el argumento tipoobjeto.
Save AcCloseSave opcional.
AcCloseSave puede ser una de estas constantes AcCloseSave.
acSaveNo
acSavePrompt valor predeterminado
acSaveYes
Si deja en blanco este argumento, se asume la constante predeterminada (acSavePrompt).

Comentarios
Para obtener ms informacin sobre cmo funcionan la accin y sus argumentos, consulte
el tema de la accin.
Si deja en blanco los argumentos tipoobjeto y nombreobjeto (se asume la constante
predeterminada, acDefault, para tipoobjeto), Microsoft Access cierra la ventana activa. Si
especifica el argumento guardar y deja en blanco los argumentos tipoobjeto y
nombreobjeto, debe incluir las comas de los argumentos tipoobjeto y nombreobjeto.
Nota Si un formulario tiene un control dependiente de un campo que tiene la propiedad
Requerido (Required) establecida en "S" y el formulario se cierra mediante el mtodo
Close sin incluir ningn dato para dicho campo, no aparecer un mensaje de error.
Cualquier cambio que se realice en el registro se cancelar. Cuando los formularios se
cierran mediante el botn Cerrar de Windows, la accin Close de una macro, o
seleccionando Cerrar en el men Archivo, Microsoft Access mostrar una alerta. El
siguiente cdigo mostrar un mensaje de error al intentar cerrar un formulario con un
campo Null, mediante el mtodo Close.
If IsNull(Me![Field1]) Then
If MsgBox("'Field1' must contain a value." _
& Chr(13) & Chr(10) _
& "Press 'OK' to return and enter a value." _
& Chr(13) & Chr(10) _
& "Press 'Cancel' to abort the record.", _
Pgina

256

vbOKCancel, "A Required field is Null") = _


vbCancel Then
DoCmd.Close
End If
End If

Ejemplo
El siguiente ejemplo utiliza el mtodo Close para cerrar el formulario Revisin de pedidos,
guardando los cambios al formulario sin preguntar al usuario:
DoCmd.Close acForm, "Order Review", acSaveYes

Mtodo CloseConnection
Puede utilizar el mtodo CloseConnection para cerrar la conexin actual entre el objeto
CurrentProject o CodeProject en un proyecto de Microsoft Access (.adp) o base de datos
de Access (.mdb) y la base de datos especificada en la cadena de conexin base del
proyecto.
expresin.CloseConnection
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.

Comentarios
El mtodo CloseConnection cierra la conexin actual del proyecto, base de datos o control
de origen de datos de Access, libera el objeto ADO Connection y establece la propiedad
Connection en Nulo. La propiedad BaseConnectionString no se modifica. Los usuarios
no pueden utilizar controldeorigendedatos.Connection.Close y deben utilizar este mtodo
en vez de aqul.
El mtodo CloseConnection es til cuando se ha abierto una base de datos Microsoft
Access desde otra aplicacin mediante automatizacin.

Mtodo CloseConnection
Puede utilizar el mtodo CloseConnection para cerrar la conexin actual entre el objeto
CurrentProject o CodeProject en un proyecto de Microsoft Access (.adp) o base de datos
de Access (.mdb) y la base de datos especificada en la cadena de conexin base del
proyecto.
expresin.CloseConnection
Pgina

257

expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.

Comentarios
El mtodo CloseConnection cierra la conexin actual del proyecto, base de datos o control
de origen de datos de Access, libera el objeto ADO Connection y establece la propiedad
Connection en Nulo. La propiedad BaseConnectionString no se modifica. Los usuarios
no pueden utilizar controldeorigendedatos.Connection.Close y deben utilizar este mtodo
en vez de aqul.
El mtodo CloseConnection es til cuando se ha abierto una base de datos Microsoft
Access desde otra aplicacin mediante automatizacin.

Mtodo CloseCurrentDatabase
Se puede utilizar el mtodo CloseCurrentDatabase para cerrar la base de datos activa (una
base de datos de Microsoft Access (.MDB) o un proyecto de Access (.ADP) desde otra
aplicacin que haya abierto una base de datos mediante automatizacin.
expresin.CloseCurrentDatabase
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.

Comentarios
Por ejemplo, podra utilizar este mtodo desde Microsoft Excel para cerrar la base de datos
actualmente abierta en la ventana Microsoft Access antes de abrir otra base de datos.
El mtodo CloseCurrentDatabase es til cuando se ha abierto una base de datos Microsoft
Access desde otra aplicacin mediante automatizacin. Una vez que haya creado una
instancia de Microsoft Access desde otra aplicacin, debe tambin crear una nueva base de
datos o especificar una base de datos existente para que sea abierta. Esta base de datos se
abre en la ventana Microsoft Access.
Si utiliza el mtodo CloseCurrentDatabase para cerrar la base de datos que est abierta en
la instancia activa de Microsoft Access, puede abrir una base de datos diferente sin tener
que crear otra instancia de Microsoft Access.

Ejemplo
El siguiente ejemplo abre una base de datos de Microsoft Access desde otra aplicacin
mediante automatizacin, crea un nuevo formulario, lo guarda y luego cierra la base de
datos.

Pgina

258

Se puede escribir este cdigo en un mdulo Visual Basic en cualquier aplicacin que pueda
actuar como un componente COM. Por ejemplo, podra ejecutar el siguiente cdigo desde
Microsoft Excel o Microsoft Visual Basic.
Cuando la variable que apunta al objeto Application se sale de alcance, se cierra tambin la
instancia de Microsoft Access que representa. Por tanto, esta variable se debera declarar al
nivel del mdulo.
' Enter following in Declarations section of module.
Dim appAccess As Access.Application
Sub CreateForm()
Const
strConPathToSamples
Office\Office\Samples\"

"C:\Program

Files\Microsoft

Dim frm As Form, strDB As String


' Initialize string to database path.
strDB = strConPathToSamples & "Northwind.mdb"
' Create new instance of Microsoft Access.
Set appAccess = CreateObject("Access.Application.9")
' Open database in Microsoft Access window.
appAccess.OpenCurrentDatabase strDB
' Create new form.
Set frm = appAccess.CreateForm
' Save new form.
appAccess.DoCmd.Save , "NewForm1"
' Close currently open database.
appAccess.CloseCurrentDatabase
Set AppAccess = Nothing
End Sub

Mtodo CodeDb
Puede utilizar el mtodo CodeDb en un mdulo de cdigo para determinar el nombre del
objeto Database que se refiere a la base de datos en la cual se est ejecutando actualmente
el cdigo. Use el mtodo CodeDb para tener acceso a los objetos de acceso a datos (DAO)
que forman parte de una base de datos de biblioteca.
expresin.CodeDb
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.

Comentarios
Pgina

259

Por ejemplo, puede usar el mtodo CodeDb en un mdulo de una base de datos de
biblioteca para crear un objeto Database que se refiera a la base de datos de biblioteca.
Entonces puede abrir un conjunto de registros basado en una tabla de la base de datos de
biblioteca.
Set baseDeDatos = CodeDb
El mtodo CodeDb devuelve un objeto Database cuya propiedad Nombre (Name) es la
ruta de acceso completa y el nombre de la base de datos desde la cual se la llama. Este
mtodo puede ser til cuando sea necesario manipular objetos de acceso a datos de la base
de datos de biblioteca.
Al llamar a un mtodo de una base de datos de biblioteca, la base de datos desde la que se
hace la llamada sigue siendo la base de datos actual, incluso cuando el cdigo se est
ejecutando en un mdulo de la base de datos de biblioteca. Para poder referirse a los
objetos de acceso a datos de la base de datos de biblioteca es necesario conocer el nombre
del objeto Database que representa la base de datos de biblioteca.
Por ejemplo, suponga que tiene en una base de datos de biblioteca una tabla que contiene
mensajes de error. Para manipular los datos de la tabla desde el cdigo, podra usar el
mtodo CodeDb para determinar el nombre del objeto Database que se refiere a la base de
datos de biblioteca que contiene la tabla.
Si el mtodo CodeDb se ejecuta desde la base de datos actual, devolver el nombre de la
misma, que coincidir con el devuelto por el mtodo CurrentDb.

Ejemplo
En el ejemplo siguiente se utiliza el mtodo CodeDb para devolver un objeto Database que
hace referencia a una base de datos de biblioteca. La base de datos de biblioteca contiene
una tabla denominada Errors y el cdigo que se est ejecutando actualmente. Una vez que
el mtodo CodeDb determina esta informacin, la funcin GetErrorString abre un
conjunto de registros de tipo tabla basado en la tabla Errors. Despus extrae un mensaje de
error de un campo denominado DatosError basndose en el valor Integer pasado a la
funcin.
Function GetErrorString(ByVal intError As Integer) As String
Dim dbs As Database, rst As RecordSet
' Variable refers to database where code is running.
Set dbs = CodeDb
' Create table-type Recordset object.
Set rst = dbs.OpenRecordSet("Errors", dbOpenTable)
' Set index to primary key (ErrorID field).
rst.Index = "PrimaryKey"
' Find error number passed to GetErrorString function.
Pgina

260

rst.Seek "=", intError


' Return associated error message.
GetErrorString = rst.Fields!ErrorData.Value
rst.Close
End Function

Mtodo CompactRepair
Compacta y repara la base de datos especificada (.mdb) o el archivo de proyecto de
Microsoft Access (.adp). Devuelve un Boolean; Verdadero si el proceso se ha realizado
correctamente.
expresin.CompactRepair(ArchivoOrigen, ArchivoDestino, ArchivoRegistro)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
ArchivoOrigen String requerida. La ruta de acceso completa y el nombre de archivo de la
base de datos o archivo de proyecto que se va a compactar y reparar.
ArchivoDestino String requerida. La ruta de acceso completa y el nombre de archivo
donde se guardar el archivo recuperado.
ArchivoRegistro Boolean opcional. Verdadero si se crea un archivo de registro en el
directorio de destino para registrar cualquier corrupcin detectada en el archivo de origen.
Se crea un archivo de registro slo si se detecta una corrupcin en el archivo de origen. Si
ArchivoRegistro es Falso o se omite, no se crea ningn archivo de registro, incluso si se
detecta una corrupcin en el archivo de origen.

Comentarios
El archivo de origen no debe ser la base de datos actual o no debe abrirlo ningn otro
usuario, ya que al llamar a este mtodo, se abrir el archivo en modo exclusivo.

Ejemplo
El ejemplo siguiente compacta y repara una base de datos, crea un registro si hay alguna
corrupcin en el archivo de origen y devuelve un valor Boolean si la ejecucin de la
recuperacin ha sido correcta. Para que el ejemplo funcione, debe indicarle las rutas de
acceso y los nombres de los archivos de origen y de destino.
Function RepairDatabase(strSource As String, _
strDestination As String) As Boolean
' Input values: the paths and file names of
' the source and destination files.
Pgina

261

' Trap for errors.


On Error GoTo error_handler
' Compact and repair the database. Use the return value of
' the CompactRepair method to determine if the file was
' successfully compacted.
RepairDatabase = _
Application.CompactRepair( _
LogFile:=True, _
SourceFile:=strSource, _
DestinationFile:=strDestination)
' Reset the error trap and exit the function.
On Error GoTo 0
Exit Function
' Return False if an error occurs.
error_handler:
RepairDatabase = False
End Function

Mtodo ConvertAccessProject
Convierte el archivo de Microsoft Access especificado de una versin a otra.
expresin.ConvertAccessProject(nombreArchivoOrigen,
formatoArchivoDestino)

nombreArchivoDestino,

expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
nombreArchivoOrigen String requerida. El nombre del archivo de Access que se va a
convertir. Si no se especifica una ruta, Access busca el archivo en el directorio actual.
nombreArchivoDestino String requerida. El nombre del archivo con el que Access guarda
el archivo convertido. Si no se especifica una ruta, Access guarda el archivo en el directorio
actual.
formatoArchivoDestino AcFileFormat requerido. La versin de Access del archivo
convertido.
AcFileFormat puede ser una de estas constantes AcFileFormat.
acFileFormatAccess2
acFileFormatAccess2000
Pgina

262

acFileFormatAccess2002
acFileFormatAccess95
acFileFormatAccess97

Comentarios
El archivo especificado por nombreArchivoDestino no debe existir ya o se producir un
error.

Ejemplo
El ejemplo siguiente convierte el archivo de Access 97 en un archivo de Access 2000 en el
mismo directorio.
Application.ConvertAccessProject _
SourceFilename:="C:\My Documents\Sales-Access97.mdb", _
DestinationFilename:="C:\My Documents\Sales-Access2000.mdb", _
DestinationFileFormat:=acFileFormatAccess2000

Mtodo CopyDatabaseFile
Copia la base de datos conectada al proyecto actual en un archivo de base de datos de
Microsoft SQL Server para la exportacin.
expresin.CopyDatabaseFile(nombreArchivoBaseDeDatos,
sobrescribirArchivoExistente, desconectarTodosLosUsuarios)
expresin Requerida. Una expresin que devuelve un objeto DoCmd.
nombreArchivoBaseDeDatos Variant requerida. El nombre (y la ruta de acceso) del
archivo en el que se copia la base de datos activa. Si no se especifica la ruta de acceso, se
utiliza el directorio actual.
sobrescribirArchivoExistente Variant opcional. Determina si Microsoft Access
sobrescribe el archivo especificado por nombreArchivoBaseDeDatos. True sobrescribe el
archivo existente. Si el archivo no existe, se omite el argumento.
desconectarTodosLosUsuarios Variant opcional. Determina si Access desconecta a todos
los usuarios conectados a la base de datos activa para realizar la copia. Verdadero
desconecta a todos los usuarios antes de copiar el archivo de base de datos.

Comentarios
Pgina

263

El nombre del archivo de la copia debe tener una extensin .mdf para que se reconozca
como archivo de base de datos SQL Server.
El mtodo falla y se produce un error si ocurre algo de lo siguiente:

desconectarTodosLosUsuarios es Verdadero pero Access no puede desconectar a


todos los usuarios.
El mtodo cancela una operacin de almacenamiento en cualquier sesin de diseo
abierta.
El archivo de destino existe pero sobrescribirArchivoExistente no est establecido
en Verdadero.
El archivo de destino existe pero lo est utilizando otra aplicacin.
Access no ha podido volver a conectar el archivo .mdf original.
El usuario activo del proyecto de Access no tiene privilegios de administrador del
sistema para el servidor de base de datos.

Ejemplo
Este ejemplo copia la base de datos conectada al proyecto activo en un archivo de base de
datos SQL Server. Si el archivo ya existe, Access lo sobrescribe, y se desconectan todos los
dems usuarios que estn conectados a la base de datos antes de realizar la copia.
DoCmd.CopySQLDatabaseFile _
DatabaseFileName:="C:\Export\Sales.mdf", _
OverwriteExistingFile:=True, _
DisconnectAllUsers:=True

Mtodo CopyObject
El mtodo CopyObject lleva a cabo la accin CopiarObjeto en Visual Basic.
expresin.CopyObject(DestinationDatabase,
SourceObjectName)

NewName,

SourceObjectType,

expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
DestinationDatabase Variant opcional. Una expresin de cadena que es la ruta de acceso
y el nombre de archivo vlidos de la base de datos en la que desea copiar el objeto. Para
seleccionar la base de datos activa, deje en blanco este argumento. Nota: En un proyecto de
Microsoft Access (.ADP) debe dejar en blanco el argumento destinationdatabase. Si
ejecuta cdigo de Visual Basic que contenga el mtodo CopyObject en una base de datos

Pgina

264

de biblioteca y deja en blanco este argumento, Microsoft Access copia el objeto en la base
de datos de biblioteca.
NewName Variant opcional. Una expresin de cadena que es el nuevo nombre del objeto
que desea copia. Para usar el mismo nombre si est copindolo a otra base de datos, deje en
blanco este argumento.
SourceObjectType AcObjectType opcional.
AcObjectType puede ser una de estas constantes AcObjectType.
acDataAccessPage
Valor predeterminado acDefault
acDiagram
acForm
acFunction
acMacro
acModule
acQuery
acReport
acServerView
acStoredProcedure
acTable
Nota Cuando utilice el mtodo CopyObject con una pgina de acceso a datos, se crear
una copia del archivo HTML para la pgina de acceso a datos en la carpeta de base de datos
predeterminada y se crear a su vez un vnculo a dicha carpeta en la base de datos de
destino.
SourceObjectName Variant opcional. Una expresin de cadena que es el nombre vlido
de un objeto del tipo seleccionado por el argumento tipoobjetoorigen. Si ejecuta cdigo
Visual Basic que contenga el mtodo CopyObject en una base de datos de biblioteca,
Microsoft Access busca el objeto con este nombre primero en la base de datos de biblioteca
y luego en la base de datos activa.

Comentarios
Para obtener ms informacin sobre cmo funcionan la accin y sus argumentos, consulte
el tema de la accin.
Es necesario incluir el argumento basededatosdedestino o el argumento nuevonombre o
ambos con este mtodo.

Pgina

265

Si deja en blanco los argumentos tipoobjetoorigen y nombreobjetoorigen (se asume la


constante predeterminada, acDefault, para tipoobjetoorigen), Microsoft Access copia el
objeto seleccionado en la ventana Base de datos. Para seleccionar un objeto en la ventana
Base de datos, puede usar la accin SeleccionarObjeto o el mtodo SelectObject con el
argumento En la ventana Base de datos establecido a S (Verdadero).
Si especifica los argumentos tipoobjetoorigen y nombreobjetoorigen, pero deja en blanco el
argumento nuevonombre o el argumento basededatosdedestino, entonces es necesario
incluir la coma del argumento nuevonombre o de basededatosdedestino. Si deja en blanco
un argumento de la cola, no use una coma a continuacin del ltimo argumento que
especifique.

Ejemplo
El siguiente ejemplo utiliza el mtodo CopyObject para copiar la tabla Empleados y darle
un nuevo nombre en la base de datos activa:
DoCmd.CopyObject, "Employees Copy", acTable, "Employees"

Mtodo CreateAccessProject
Puede utilizar el mtodo CreateAccessProject para crear un nuevo proyecto de Microsoft
Access (.adp) en el disco.
expresin.CreateAccessProject(filepath, Connect)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
filepath String requerida. Una expresin de cadena que sea el nombre del nuevo proyecto
de Access, incluyendo el nombre de la ruta de acceso y la extensin del nombre de archivo.
Si la red lo permite, puede especificar una ruta de acceso a la red de la siguiente forma:
\\Servidor\Compartir\Carpeta\Nombre de archivo.adp
Connect Variant opcional. Una expresin de cadena que es la cadena de conexin vlida
para el proyecto de Access. Consulte la propiedad ADO ConnectionString para obtener
detalles sobre esta cadena.

Comentarios
El mtodo CreateAccessProject le permite crear un nuevo proyecto de Access desde
Microsoft Access o desde otra aplicacin mediante automatizacin, anteriormente
denominada Automatizacin OLE. Por ejemplo, se puede utilizar el mtodo
CreateAccessProject desde Microsoft Excel para crear un nuevo proyecto de Access en el

Pgina

266

disco. Una vez que haya creado una instancia de Microsoft Access desde otra aplicacin,
debe crear tambin un nuevo proyecto de Access.
Si el proyecto de Access identificado por nombreproyecto ya existe, se producir un error.
Para crear y abrir un nuevo proyecto de Access como el proyecto de Access actual en la
ventana de Access, utilice el mtodo NewAccessProject del objeto Application.
Para abrir un proyecto de Access existente como el proyecto de Access actual en la ventana
de Access, utilice el mtodo OpenAccessProject del objeto Application.

Ejemplo
El ejemplo siguiente crea un proyecto de Microsoft Access denominado "Order Entry.adp"
en la unidad C.
Application.CreateAccessProject "C:\Order Entry.adp"

Mtodo CreateControl
Vea tambin Se aplica a Ejemplo Especficos
El mtodo CreateControl crea un control en un formulario abierto especificado. Por
ejemplo, suponga que va a crear un asistente personalizado que permite a los usuarios
generar de manera sencilla un determinado formulario. Puede utilizar el mtodo
CreateControl en el asistente para agregar los controles adecuados al formulario.
CreateControl(nombreformulario, tipodecontrol[, seccin[, principal[, nombrecolumna[,
izquierda[, superior[, ancho[, alto]]]]]]])
El mtodo CreateControl tiene los argumentos siguientes.
Argumento

Descripcin (Description)

nombreformulario Una expresin de cadena que identifica el nombre del formulario o


informe abierto en que desea crear el control.
TipoDeControl

Una de las constantes intrnsecas siguientes, que identifican el tipo de


control que desea crear. Para ver estas constantes y pegarlas en el
cdigo desde el Examinador de objetos, haga clic en Examinador de
objetos en la barra de herramientas de Visual Basic, haga clic en
Access en el cuadro Proyecto/Biblioteca y, finalmente, haga clic en
AcControlType en el cuadro Clases.
Constante

Control

acBoundObjectFrame

Marco de objeto dependiente


Pgina

267

seccin

acCheckBox

Casilla de verificacin

acComboBox

Cuadro combinado

acCommandButton

Botn de comando

acCustomControl

Control ActiveX

acImage

Imagen

acLabel

Etiqueta

acLine

Lnea

acListBox

Cuadro de lista

acObjectFrame

Marco de objeto independiente

acOptionButton

Botn de opcin

acOptionGroup

Grupo de opciones

acPage

Pgina (Page)

acPageBreak

Salto de pgina

acRectangle

Rectngulo

acSubform

Subformulario

acTabCtl

Control ficha

acTextBox

Cuadro de texto

acToggleButton

Botn de alternar

Una de las constantes intrnsecas siguientes, que identifican la seccin


que va a contener el nuevo control. Para ver estas constantes y pegarlas
en el cdigo desde el Examinador de objetos, haga clic en
Examinador de objetos en la barra de herramientas de Visual Basic,
haga clic en Access en el cuadro Proyecto/Biblioteca y, finalmente,
haga clic en AcSection en el cuadro Clases.
Constante

Seccin

acDetail

(Predeterminada) Seccin Detalle

acHeader

Encabezado del formulario o informe

acFooter

Pie del formulario o informe

acPageHeader

Encabezado de pgina

acPageFooter

Pie de pgina
Pgina

268

acGroupLevel1Header

Encabezado de nivel de grupo 1 (slo


informes)

acGroupLevel1Footer

Pie de nivel de grupo 1 (slo informes)

acGroupLevel2Header

Encabezado de nivel de grupo 2 (slo


informes)

acGroupLevel2Footer

Pie de nivel de grupo 2 (slo informes)

Si un informe tiene niveles de grupo adicionales, los pares de pies y


encabezados se numeran consecutivamente a partir del 9.
principal

Una expresin de cadena que identifica el nombre del control principal


de un control adjunto. Para controles que no tienen control principal,
utilice una cadena de longitud cero para este argumento u omtalo.

nombrecolumna

El nombre del campo del que depender el control, si va a ser un


control dependiente de datos.
Si va a crear un control que no sea dependiente de un campo, utilice
una cadena de longitud cero para este argumento.

izquierda,
superior

Expresiones numricas que indican las coordenadas para la esquina


superior izquierda del control en twips.

ancho, alto

Expresiones numricas que indican el ancho y el alto del control en


twips.

Comentarios
Puede utilizar los mtodos CreateControl y CreateReportControl en un asistente
personalizado para crear controles en un formulario o informe. Ambos mtodos devuelven
un objeto Control.
Puede utilizar los mtodos CreateControl y CreateReportControl slo en la vista Diseo
del formulario o en la vista Diseo del informe, respectivamente.
El argumento parent se utiliza para identificar la relacin entre un control principal y un
control subordinado. Por ejemplo, si un cuadro de edicin tiene una etiqueta adjunta, el
cuadro de edicin es el control principal y la etiqueta es el control subordinado. Cuando
cree el control de la etiqueta, establezca el argumento parent en una cadena que identifique
el nombre del control principal. Cuando cree el cuadro de edicin, establezca el argumento
parent en una cadena de longitud cero.
Tambin se establece el argumento principal cuando se crean casillas de verificacin,
botones de opcin o botones de alternar. Un grupo de opciones es el control principal de las
Pgina

269

casillas de verificacin, botones de opcin o botones de alternar que contiene. Los nicos
controles que pueden tener un control principal son una etiqueta, casilla de verificacin,
botn de opcin o botn de alternar. Todos estos controles pueden tambin crearse
independientemente, sin un control principal.
Establezca el argumento nombrecolumna de acuerdo con el tipo de control que va a crear y
de si ser o no dependiente de un campo de una tabla. Los controles que pueden depender
de un campo incluyen el cuadro de texto, cuadro de lista, cuadro combinado, grupo de
opciones y marco de objeto dependiente. Igualmente, los controles de botn de alternar, de
botn de opcin y de casilla de verificacin pueden depender de un campo si no estn
contenidos en un grupo de opciones.
Si especifica el nombre de un campo para el argumento nombrecolumna, se crea un control
dependiente de ese campo. Todas las propiedades del control se establecen entonces
automticamente en los valores de las propiedades de campo correspondientes. Por
ejemplo, el valor de la propiedad ReglaDeValidacin (Validation Rule) del control ser el
mismo que el valor de la propiedad para el campo.
Nota Si el asistente crea controles en un formulario o informe nuevo o existente, debe
abrir primero el formulario o informe en la vista Diseo.
Para eliminar un control de un formulario o informe, utilice las instrucciones
DeleteControl y DeleteReportControl.

Ejemplo
En el ejemplo siguiente se crea primero un nuevo formulario basado en una tabla Pedidos.
Despus utiliza el mtodo CreateControl para crear un control de cuadro de texto y un
control de etiqueta adjunta en el formulario.
Sub NewControls()
Dim frm As Form
Dim ctlLabel As Control, ctlText As Control
Dim intDataX As Integer, intDataY As Integer
Dim intLabelX As Integer, intLabelY As Integer
' Create new form with Orders table as its record source.
Set frm = CreateForm
frm.RecordSource = "Orders"
' Set positioning values for new controls.
intLabelX = 100
intLabelY = 100
intDataX = 1000
intDataY = 100
' Create unbound default-size text box in detail section.
Set ctlText = CreateControl(frm.Name, acTextBox, , "", "", _
Pgina

270

intDataX, intDataY)
' Create child label control for text box.
Set ctlLabel = CreateControl(frm.Name, acLabel, , _
ctlText.Name, "NewLabel", intLabelX, intLabelY)
' Restore form.
DoCmd.Restore
End Sub

Mtodo CreateEventProc
El mtodo CreateEventProc crea un procedimiento de evento en un mdulo de clase. Este
mtodo devuelve un valor Long que indica el nmero de lnea de la primera lnea del
procedimiento de evento. Long.
expresin.CreateEventProc(EventName, ObjectName)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
EventName String requerida. Expresin de cadena que da como resultado el nombre de un
evento.
ObjectName String requerida. Un objeto que tiene el evento especificado por el
argumento nombreevento. Puede ser un objeto Formulario (Form), Informe (Report) o
Control, o bien una seccin de un formulario,un informe, o un mdulo de clase.

Comentarios
El mtodo CreateEventProc crea un cdigo stub para un procedimiento de evento para el
objeto especificado. Por ejemplo, puede utilizar este mtodo para crear un procedimiento de
evento Click para un botn de comando de un formulario. Microsoft Access crea el
procedimiento de evento Click en el mdulo asociado al formulario que contiene el botn
de comando.
Una vez creado el cdigo stub de procedimiento de evento mediante el mtodo
CreateEventProc, puede agregar lneas de cdigo al procedimiento a travs de otros
mtodos del objeto Module. Por ejemplo, puede utilizar el mtodo InsertLines para
insertar una lnea de cdigo.

Ejemplo
El ejemplo siguiente crea un formulario nuevo, agrega un botn de comando y crea un
procedimiento de evento Click para el botn de comando:

Pgina

271

Function ClickEventProc() As Boolean


Dim frm As Form, ctl As Control, mdl As Module
Dim lngReturn As Long
On Error GoTo Error_ClickEventProc
' Create new form.
Set frm = CreateForm
' Create command button on form.
Set ctl = CreateControl(frm.Name, acCommandButton, , , , _
1000, 1000)
ctl.Caption = "Click here"
' Return reference to form module.
Set mdl = frm.Module
' Add event procedure.
lngReturn = mdl.CreateEventProc("Click", ctl.Name)
' Insert text into body of procedure.
mdl.InsertLines lngReturn + 1, vbTab & "MsgBox ""Way cool!"""
ClickEventProc = True
Exit_ClickEventProc:
Exit Function
Error_ClickEventProc:
MsgBox Err & " :" & Err.Description
ClickEventProc = False
Resume Exit_ClickEventProc
End Function

Mtodo CreateForm
Vea tambin Se aplica a Ejemplo Especficos
El mtodo CreateForm crea un formulario y devuelve un objeto Formulario (Form).
CreateForm([baseDeDatos[, plantillaformulario]])
El mtodo CreateForm tiene los siguientes argumentos.
Argumento

Descripcin

baseDeDatos

Una expresin de cadena que identifica el nombre de la base de


datos que contiene la plantilla de formulario que se desea usar para
crear un formulario. Si desea la base de datos activa, omita este
argumento. Si desea utilizar una base de datos de biblioteca
abierta, especifique la biblioteca de base de datos mediante este
argumento.
Pgina

272

plantillaformulario

Expresin de cadena que identifica el nombre del formulario que


se desea usar como plantilla para crear un nuevo formulario. Si se
omite este argumento, Microsoft Access basa el nuevo formulario
en la plantilla especificada en la ficha Formularios/Informes del
cuadro de dilogo Opciones, que aparece al hacer clic en el
comando Opciones del men Herramientas.

Comentarios
Puede utilizar el mtodo CreateForm al designar un asistente que cree un nuevo
formulario.
El mtodo CreateForm abre un nuevo formulario minimizado en la vista Diseo del
formulario.
Si el nombre utilizado para el argumento plantillaformulario no es vlido, Visual Basic
utiliza la plantilla de formulario especificada en Plantilla para formulario, en la ficha
Formularios/Informes del cuadro de dilogo Opciones.
El mtodo CreateForm crea formularios e informes minimizados.

Ejemplo
En este ejemplo se crea un nuevo formulario en la base de datos de ejemplo Neptuno,
basado en el formulario Clientes, y se establece el valor de su propiedad
OrigenDelRegistro (RecordSource) en la tabla Clientes. Ejecute este cdigo desde la
base de datos de ejemplo Neptuno.
Sub NewForm()
Dim frm As Form
' Create form based on Customers form.
Set frm = CreateForm( , "Customers")
DoCmd.Restore
' Set RecordSource property to Customers table.
frm.RecordSource = "Customers"
End Sub

Mtodo CreateGroupLevel
Pgina

273

Puede utilizar el mtodo CreateGroupLevel para especificar un campo o una expresin


con la que agrupar u ordenar los datos de un informe. Long.
expresin.CreateGroupLevel(ReportName, Expression, Header, Footer)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
ReportName String requerida. Expresin de cadena que identifica el nombre del informe
que contiene el nuevo nivel de agrupamiento.
Expresin String requerida. Expresin de cadena que identifica el campo o expresin
segn la cual se ordena o se agrupa.
Header Integer requerido. Valor Integer que indica que un campo o una expresin tendr
asociado un encabezado de grupo. Si el argumento header es True (-1), el campo o la
expresin tendr un encabezado de grupo. Si el argumento header es False (0), el campo o
la expresin no lo tendr. Para crear un encabezado, puede establecer el argumento en
Verdadero.
Footer Integer requerido. Valor Integer que indica que un campo o una expresin tendr
asociado un pie de grupo. Si el argumento footer es True (-1), el campo o la expresin
tendr un pie de grupo. Si el argumento footer es False (0), el campo o la expresin no lo
tendr. Para crear un pie, puede establecer el argumento en Verdadero.

Comentarios
Por ejemplo, suponga que est creando un asistente personalizado que ofrece al usuario
distintos campos por los que agrupar los datos al disear un informe. Puede llamar al
mtodo CreateGroupLevel desde el asistente para crear los grupos correspondientes de
acuerdo con la eleccin del usuario.
Puede utilizar el mtodo CreateGroupLevel al disear un asistente para crear un informe
con grupos o totales. El mtodo CreateGroupLevel agrupa u ordena los datos segn el
campo o expresin especificada, y crea un encabezado y/o un pie para el nivel de
agrupamiento.
El mtodo CreateGroupLevel slo est disponible en la vista Diseo del informe.
Microsoft Access utiliza una matriz, la matriz de la propiedad GroupLevel, para hacer el
seguimiento de los niveles de grupo creados para un informe. El mtodo
CreateGroupLevel agrega un nuevo nivel de grupo a la matriz, basndose en el argumento
expression. El mtodo CreateGroupLevel devuelve un valor de ndice que representa la
posicin del nuevo nivel de grupo en la matriz. El primer campo o expresin por el que se
ordene o agrupe es del nivel 0, el segundo es del nivel 1, y as sucesivamente. Es posible
tener hasta 10 niveles de grupo en un informe (del 0 al 9).

Pgina

274

Al especificar Verdadero (True) en el argumento encabezado, en el argumento pie, o en


ambos, en las propiedades Encabezado del grupo y Pie del grupo del informe se establece
el valor S, y se crea un encabezado o un pie para el nivel de agrupamiento.
Una vez creado un encabezado o un pie, puede establecer otras propiedades de nivel de
grupo:
AgruparEn
(GroupOn),
IntervaloDelGrupo
(GroupInterval)
y
MantenerJuntos (KeepTogether). Puede establecer estas propiedades en Visual Basic o
en el cuadro Ordenar y agrupar del informe, que aparece al hacer clic en Ordenar y
agrupar

en la barra de herramientas Diseo del informe.

Nota Si el asistente crea niveles de grupo en un informe nuevo o existente, ste deber
abrirse en la vista Diseo.

Ejemplo
En el ejemplo siguiente se crea un nivel de grupo en un campo FechaDePedido de un
informe llamado InformePedidos. El informe en que se va a crear el nivel de grupo debe
abrirse en vista Diseo. Puesto que los argumentos header y footer estn establecidos en
True (-1), el mtodo crea el encabezado y el pie para el nivel de grupo. A continuacin, se
establece el tamao del encabezado y del pie.
Sub CreateGL()
Dim varGroupLevel As Variant
' Create new group level on OrderDate field.
varGroupLevel = CreateGroupLevel("OrderReport", "OrderDate", _
True, True)
' Set height of header/footer sections.
Reports!OrderReport.Section(acGroupLevel1Header).Height = 400
Reports!OrderReport.Section(acGroupLevel1Footer).Height = 400
End Sub

Mtodo CreateNewDocument
Puede utilizarse el mtodo CreateNewDocument para crear un nuevo documento asociado
con un hipervnculo especificado.
expresin.CreateNewDocument(FileName, EditNow, Overwrite)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
FileName String requerida. Una expresin de cadena que identifica el nombre y ruta de
acceso del documento. El tipo de formato de documento que desea utilizar puede
determinarse mediante la extensin utilizada con el nombre de archivo para dar salida a los
datos. Puede crear HTML (*.htm), pginas Active Server de Microsoft (*.asp), archivos de
Pgina

275

Microsoft Excel (*.xls), archivos de Microsoft Internet Internet Information Server (*.htx,
*.idc), texto MS-DOS (*.txt), Rich Text Format (*.rtf) o pginas de acceso a datos de
Microsoft (*.html). Los mdulos slo se se pueden crear con formato de texto MS-DOS.
Las pginas de acceso a datos slo se pueden crear en formato HTML. Los formatos
Microsoft Internet Information Server y Microsoft Active Server slo estn disponibles
para las tablas, consultas y formularios. Nota: Si no se proporciona una extensin, se
asume el formato de pgina de acceso a datos (.HTML). Si no se especifica un directorio,
se utiliza el directorio de base de datos predeterminado. Este directorio viene determinado
por el valor del cuadro de dilogo Opciones.
EditNow Boolean requerido. Valor Boolean en el que Verdadero abre el documento en
vista Diseo y Falso almacena el nuevo documento en el directorio de base de datos
especificado. El valor predeterminado es Verdadero.
Overwrite Boolean requerido. Valor Boolean en el que Verdadero sobrescribe un
documento existente si el argumento filename identifica un documento existente y Falso
requiere que el argumento filename especifique un nuevo nombre de archivo. El valor
predeterminado es Falso.

Comentarios
El mtodo CreateNewDocument permite crear mediante programacin un documento
asociado a un hipervnculo dentro de un control.

Ejemplo
El ejemplo siguiente utiliza el evento Click de un control de hipervnculo. Este evento crea
un nuevo archivo denominado "Report.txt" cuando el usuario hace clic en el control de
hipervnculo denominado "GenerateReport" en un formulario. El nuevo archivo se abre
para su edicin. Si ya existe un archivo denominado "Report.txt" en la unidad C, este nuevo
archivo lo sustituye.
Private Sub GenerateReport_Click()
ActiveControl.Hyperlink.CreateNewDocument _
"C:\Report.txt", EditNow:=True, Overwrite:=True
End Sub

Mtodo CreateNewWorkgroupFile
Crea un nuevo archivo de grupo de trabajo para que el usuario pueda obtener acceso a una
base de datos de manera segura.

Pgina

276

expresin.CreateNewWorkgroupFile(Ruta,
Reemplazar)

Nombre,

Compaa,

IDGrupoTrabajo,

expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
Ruta String opcional. La ruta de acceso del nuevo archivo de grupo de trabajo. Si la ruta
de acceso no es vlida, se produce un error. El valor predeterminado es una cadena vaca
("").
Nombre String opcional. El nombre del usuario que crea el archivo. El valor
predeterminado es una cadena vaca ("").
Compaa String opcional. La compaa del usuario que crea el archivo. El valor
predeterminado es una cadena vaca ("").
IDGrupoTrabajo String opcional. El nombre del grupo de trabajo. El valor
predeterminado es una cadena vaca ("").
Reemplazar Boolean opcional. Especifica si se reemplaza el archivo de grupo de trabajo
en el directorio especificado por Ruta si ya existe. El valor predeterminado es Falso.

Comentarios
Si ya existe un archivo de grupo de trabajo en el directorio especificado por Ruta y
Reemplazar no es Verdadero, se produce un error.

Ejemplo
Este ejemplo crea un nuevo archivo de trabajo en el directorio especificado con la
informacin de usuario indicada. Si ya existe un archivo de grupo de trabajo para este
usuario en el directorio especificado, Microsoft Access lo reemplaza.
Application.CreateNewWorkgroupFile _
Path:="C:\Documents and Settings\Wendy Vasse" _
& "\Application Data\Microsoft\Access", _
Name:="Wendy Vasse", _
Company:="Microsoft", _
Replace:=True

Mtodo CreateReport
Pgina

277

El mtodo CreateReport crea un informe y devuelve un objeto Informe (Report). Por


ejemplo, suponga que est creando un asistente personalizado para crear un informe de
ventas. Puede utilizar el mtodo CreateReport en el asistente para crear un nuevo informe
basndose en la plantilla de informe especificada.
expresin.CreateReport(Database, ReportTemplate)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
Database Variant opcional. Una expresin de cadena que identifica el nombre de la base
de datos que contiene la plantilla de informe que se desea usar para crear un informe. Si
desea la base de datos actual, omita este argumento. Si desea utilizar una base de datos de
biblioteca abierta, especifique la biblioteca de base de datos mediante este argumento.
ReportTemplate Variant opcional. Expresin de cadena que identifica el nombre del
informe que se desea usar como plantilla para crear un nuevo informe. Si se omite este
argumento, Microsoft Access basa el nuevo informe en la plantilla especificada en la ficha
Formularios/Informes del cuadro de dilogo Opciones, que aparece al hacer clic en el
comando Opciones del men Herramientas.

Comentarios
Puede utilizar el mtodo CreateReport al designar un asistente que cree un nuevo informe.
El mtodo CreateReport abre un nuevo informe minimizado en la vista Diseo del
informe.
Si el nombre utilizado para el argumento reporttemplate no es vlido, Visual Basic utiliza
la plantilla de informe especificada en Plantilla para informe, en la ficha
Formularios/Informes del cuadro de dilogo Opciones.
El mtodo CreateReport crea formularios e informes minimizados.

Ejemplo
En el ejemplo siguiente se crea un informe en la base de datos actual utilizando la plantilla
especificada mediante la opcin Plantilla para informe, en la ficha
Formularios/Informes del cuadro de dilogo Opciones.
Sub NormalReport()
Dim rpt As Report
Set rpt = CreateReport
DoCmd.Restore
End Sub

' Create minimized report.


' Restore report.

Pgina

278

Mtodo CreateReportControl
El mtodo CreateReportControl crea un control en un informe abierto especificado. Para
obtener ms informacin, consulte el mtodo CreateControl.
expresin.CreateReportControl(ReportName,
ColumnName, Left, Top, Width, Height)

ControlType,

Section,

Parent,

expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
ReportName String requerida. Una expresin de cadena que identifica el nombre del
informe abierto en el que desea crear el control.
ControlType AcControlType requerido. El tipo de control que desea crear.
AcControlType puede ser una de estas constantes AcControlType.
acBoundObjectFrame
acCheckBox
acComboBox
acCommandButton
acCustomControl
acImage
acLabel
acLine
acListBox
acObjectFrame
acOptionButton
acOptionGroup
acPage
acPageBreak
acRectangle
acSubform
acTabCtl
acTextBox
acToggleButton
Section AcSection opcional. La seccin que incluir el nuevo control.
AcSection puede ser una de estas constantes AcSection.
acDetail valor predeterminado
Pgina

279

acFooter
acGroupLevel1Footer
acGroupLevel1Header
acGroupLevel2Footer
acGroupLevel2Header
acHeader
acPageFooter
acPageHeader
Parent Variant opcional. Una expresin de cadena que identifica el nombre del control
principal de un control adjunto. Para controles que no tienen control principal, utilice una
cadena de longitud cero para este argumento u omtalo.
ColumnName Variant opcional. El nombre del campo del que depender el control, si va
a ser un control dependiente de datos.
Left, Top Variant opcional. Expresiones numricas que indican las coordenadas para la
esquina superior izquierda del control en twips.
Width, Height Variant opcional. Expresiones numricas que indican el ancho y el alto del
control en twips.

Mtodo CurrentDb
El mtodo CurrentDb devuelve una variable de objeto del tipo Database que representa la
base de datos abierta actualmente en la ventana Microsoft Access.
expresin.CurrentDb
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.

Comentarios
Nota En Microsoft Access, el mtodo CurrentDb establece una referencia oculta a
Microsoft DAO 3.6 Object Library en una base de datos de Microsoft Access (.MDB). Si
desea utilizar el mtodo CurrentDb en un proyecto de Access (.ADP) deber establecer
una referencia permanente a Microsoft DAO 3.6 Object Library en el Editor de Microsoft
Visual Basic.
Con el objeto de manipular desde Visual Basic la estructura y los datos de su base de datos,
debe utilizar Objetos de acceso a datos (DAO). El mtodo CurrentDb ofrece una forma de
Pgina

280

tener acceso a la base de datos activa desde el cdigo Visual Basic sin que sea necesario
conocer el nombre de la base de datos. Una vez que tenga una variable que apunta a la base
de datos activa, puede tambin tener acceso y manipular otros objetos y colecciones en la
jerarqua DAO.
Se puede utilizar el mtodo CurrentDb para crear variables de objetos mltiples que hacen
referencia a la base de datos activa. En el siguiente ejemplo, las variables dbsA y dbsB se
refieren a la base de datos activa:
Dim dbsA As Database, dbsB As Database
Set dbsA = CurrentDb
Set dbsB = CurrentDb
Nota En las versiones anteriores de Microsoft Access, puede que haya utilizado la sintaxis
DBEngine.Workspaces(0).Databases(0) o DBEngine(0)(0) para devolver un puntero a
la base de datos actual. En Microsoft Access 2000 debe utilizar, por el contrario, el mtodo
CurrentDb. El mtodo CurrentDb crea otra instancia de la base de datos activa, mientras
que la sintaxis DBEngine(0)(0) hace referencia a la copia abierta de la base de datos
activa. La utilizacin del mtodo CurrentDb permite crear ms de una variable del tipo
Database que haga referencia a la base de datos activa. Microsoft Access permite todava
la sintaxis DBEngine(0)(0), pero debe considerar realizar modificaciones en su cdigo en
orden a evitar posibles conflictos en una base de datos multiusuario.
Si desea trabajar con otra base de datos al mismo tiempo que la base de datos activa est
abierta en la ventana Microsoft Access, utilice el mtodo OpenDatabase de un objeto
Workspace. El mtodo OpenDatabase, en realidad, no abre la segunda base de datos en la
ventana Microsoft Access; simplemente devuelve una variable Database que representa a
la segunda base de datos. El siguiente ejemplo devuelve un puntero a la base de datos
activa y a la base de datos llamada Contactos.mdb:
Dim dbsCurrent As Database, dbsContacts As Database
Set dbsCurrent = CurrentDb
Set dbsContacts = DBEngine.Workspaces(0).OpenDatabase("Contacts.mdb")

Mtodo CurrentUser
Puede usar el mtodo UsuarioActual (CurrentUser) para devolver el nombre del usuario
actual de la base de datos. String.
expresin.CurrentUser
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
Pgina

281

Comentarios
Por ejemplo, use el mtodo UsuarioActual (CurrentUser) en un procedimiento que
realiza un seguimiento de los usuarios que modifiquen la base de datos.
El mtodo UsuarioActual (CurrentUser) devuelve una cadena que contiene el nombre de
la cuenta de usuario actual.
Si no ha establecido un grupo de trabajo asegurado, el mtodo UsuarioActual
(CurrentUser) devuelve el nombre de la cuenta de usuario predeterminada, Administrador.
La cuenta de usuario Administrador proporciona al usuario permiso total para todos los
objetos de la base de datos.
Si ha activado la seguridad de grupo de trabajo, el mtodo UsuarioActual (CurrentUser)
devuelve el nombre de la cuenta de usuario actual. Para las cuentas de usuario que no sean
la del Administrador puede especificar permisos que restringen el acceso del usuario a los
objetos de la base de datos.

Ejemplo
El siguiente ejemplo muestra cmo obtener el nombre del usuario actual y lo presenta en un
cuadro de dilogo.
MsgBox("The current user is: " & CurrentUser)

Mtodo DAvg
Puede usar la funcin DProm (DAvg) para calcular el promedio de un conjunto de valores
de un grupo de registros especificado (un dominio). Utilice la funcin DProm (DAvg) en
cdigo Visual Basic o en una macro, una expresin de consulta o un control calculado.
Variant.
expresin.DAvg(Expr, Domain, Criteria)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
Expr String requerida. Una expresin que identifica el campo que contiene los datos
numricos que desea promediar. Puede ser una expresin de cadena que identifica un
campo de una tabla o consulta, o bien una expresin que realiza un clculo usando los datos
de ese campo. En expresin, puede incluir el nombre de un campo en una tabla, un control
de un formulario, una constante o una funcin. Si expresin incluye una funcin, puede ser
integrada o definida por el usuario, pero no puede ser ninguna otra funcin agregada de
dominio ni agregada de SQL.

Pgina

282

Domain String requerida. Una expresin de cadena que identifica el conjunto de registros
que constituyen el dominio. Puede ser un nombre de tabla o un nombre de consulta.
Criteria Variant opcional. Una expresin de cadena opcional que se utiliza para restringir
el intervalo de datos sobre el que se ejecuta la funcin Dprom (DAvg). Por ejemplo,
criterios suele ser equivalente a la clusula WHERE en una expresin SQL, sin la palabra
WHERE. Si se omite criterios, la funcin Dprom (DAvg) evala expresin para todo el
dominio. Cualquier campo que se incluya en criterios debe ser tambin un campo de
dominio; de lo contrario la funcin DAvg devuelve un valor Nulo.

Comentarios
Los registros que contienen valores Nulo no se incluyen en el clculo del promedio.
Ind

Mtodo DAvg
Puede usar la funcin DProm (DAvg) para calcular el promedio de un conjunto de valores
de un grupo de registros especificado (un dominio). Utilice la funcin DProm (DAvg) en
cdigo Visual Basic o en una macro, una expresin de consulta o un control calculado.
Variant.
expresin.DAvg(Expr, Domain, Criteria)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
Expr String requerida. Una expresin que identifica el campo que contiene los datos
numricos que desea promediar. Puede ser una expresin de cadena que identifica un
campo de una tabla o consulta, o bien una expresin que realiza un clculo usando los datos
de ese campo. En expresin, puede incluir el nombre de un campo en una tabla, un control
de un formulario, una constante o una funcin. Si expresin incluye una funcin, puede ser
integrada o definida por el usuario, pero no puede ser ninguna otra funcin agregada de
dominio ni agregada de SQL.
Domain String requerida. Una expresin de cadena que identifica el conjunto de registros
que constituyen el dominio. Puede ser un nombre de tabla o un nombre de consulta.
Criteria Variant opcional. Una expresin de cadena opcional que se utiliza para restringir
el intervalo de datos sobre el que se ejecuta la funcin Dprom (DAvg). Por ejemplo,
criterios suele ser equivalente a la clusula WHERE en una expresin SQL, sin la palabra
WHERE. Si se omite criterios, la funcin Dprom (DAvg) evala expresin para todo el
dominio. Cualquier campo que se incluya en criterios debe ser tambin un campo de
dominio; de lo contrario la funcin DAvg devuelve un valor Nulo.

Pgina

283

Comentarios
Los registros que contienen valores Nulo no se incluyen en el clculo del promedio.
Independientemente de si usa
ependientemente de si usa

Mtodo DCount
Puede usar la funcin DCont (DCount) para determinar el nmero de registros incluidos
en un conjunto de registros especificado (un dominio). Utilice la funcin DCont (DCount)
en Visual Basic, en una macro, en una expresin de consulta o en un control calculado.
Variant.
expresin.DCount(Expr, Domain, Criteria)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
Expr String requerida. Una expresin que identifica el campo del cual desea contar
registros. Puede ser una expresin de cadena que identifica un campo de una tabla o
consulta, o bien una expresin que realiza un clculo usando los datos de ese campo. En
expresin, puede incluir el nombre de un campo en una tabla, un control de un formulario,
una constante o una funcin. Si expresin incluye una funcin, puede ser integrada o
definida por el usuario, pero no puede ser ninguna otra funcin agregada de dominio ni
agregada de SQL.
Domain String requerida. Una expresin de cadena que identifica el conjunto de registros
que constituyen el dominio. Puede ser un nombre de tabla o un nombre de consulta.
Criteria Variant opcional. Una expresin de cadena opcional que se utiliza para restringir
el intervalo de datos sobre el que se ejecuta la funcin DCont (DCount). Por ejemplo,
criterios suele ser equivalente a la clusula WHERE en una expresin SQL, sin la palabra
WHERE. Si se omite criterios, la funcin DCont (DCount) evala expresin para todo el
dominio. Cualquier campo que se incluya en criterios debe ser tambin un campo de
dominio; de lo contrario la funcin DCont (DCount) devuelve el valorNulo.

Comentarios
Utilice la funcin DCont (DCount) para contar el nmero de registros en un dominio
cuando no necesita saber sus valores particulares. Aunque el argumento expresin puede
realizar un clculo en un campo, la funcin DCont (DCount) sencillamente cuenta el
nmero de registros. Ninguno de los valores de los clculos realizados por expresin est
disponible.
Pgina

284

Independientemente de si usa la funcin DCont (DCount) en una macro, mdulo,


expresin de consulta o control calculado, debe crear el argumento criterios con cuidado
para garantizar que se evaluar correctamente.
Use la funcin DCont (DCount) en un control calculado cuando necesite especificar
criterios para restringir el intervalo de datos sobre el que se ejecuta la funcin. Por ejemplo,
para presentar el nmero de pedidos que se van a enviar a California, establezca la
propiedad OrigenDelControl (ControlSource) de un cuadro de texto en la siguiente
expresin:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Si slo desea contar todos los registros del dominio sin especificar ninguna restriccin,
utilice la funcin Cuenta (Count).
Sugerencia La funcin Cuenta (Count) se ha optimizado para acelerar el recuento de
registros en las consultas. Utilice la funcin Cuenta (Count) en una expresin de consulta
en vez de la funcin DCont (DCount), y establezca criterios opcionales para aplicar
restricciones a los resultados. Utilice la funcin DCont (DCount) cuando deba contar
registros en un dominio desde dentro de un mdulo o macro de cdigo, o en un control
calculado.
Puede utilizar la funcin DCont (DCount) para contar el nmero de registros que
contienen un campo particular que no est en el origen de registros en que se basa el
formulario o informe. Por ejemplo, puede mostrar el nmero de pedidos en la tabla Pedidos
en un control calculado de un formulario basndose en la tabla Productos.
La funcin DCont (DCount) no cuenta registros que contienen valores Nulo en el campo a
que hace referencia expresin, a menos que expresin sea el asterisco (*), es decir, el
carcter comodn. Si utiliza un asterisco, la funcin DCont (DCount) calcula el nmero
total de registros, incluyendo los que contienen campos Null. En el ejemplo siguiente se
calcula el nmero de registros en una tabla Pedidos.
intX = DCount("*", "Orders")
Si dominio es una tabla con una clave principal, tambin puede contar el nmero total de
registros estableciendo como expresin el campo de clave principal, puesto que nunca va a
haber un valor Nulo en el campo de clave principal.
Si expr identifica varios campos, separe los nombres de los campos con un operador de
concatenacin, ya sea & o el signo ms (+). Si utiliza la y comercial "&" para separar los
campos, la funcin DCont (DCount) devuelve el nmero de registros que contienen datos
en uno cualquiera de los campos enumerados. Si utiliza el signo ms (+), la funcin DCont
(DCount) devuelve slo el nmero de registros que contienen datos en todos los campos
enumerados. En el ejemplo siguiente se demuestran los efectos de cada operador cuando se

Pgina

285

utilizan en un campo que contiene datos en todos los registros (NombreEnvo) y con un
campo que no contiene datos (ReginDestinatario).
intW = DCount("[ShipName]", "Orders")
' Returns 831.
intX = DCount("[ShipRegion]", "Orders")
' Returns 323.
intY = DCount("[ShipName] + [ShipRegion]", _
"Orders")
' Returns 323.
intZ = DCount("[ShipName] & [ShipRegion]", _
"Orders")
' Returns 831.
Nota El signo & es el operador preferido para concatenar cadenas. Debe evitar la
utilizacin del signo ms (+) para cualquier cosa diferente de la suma de nmeros, a menos
que desee propagar especficamente valores Nulo en una expresin.
Los cambios no guardados realizados en los registros del dominio no se incluyen al usar
esta funcin. Si desea que la funcin DCont (DCount) se base en los valores modificados,
debe guardar primero los cambios haciendo clic en Guardar registro en

Mtodo DDEExecute
Puede usar la instruccin DDEExecute para enviar un comando desde una aplicacin
cliente a una aplicacin servidor a travs de un canal de intercambio dinmico de datos
(DDE).
expresin.DDEExecute(ChanNum, Command)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
ChanNum Variant requerida. Un nmero de canal, el entero largo devuelto por la funcin
DDEIniciar (DDEInitiate).
Command String requerida. Una expresin de cadena que contiene un comando
reconocido por la aplicacin servidor. Consulte la documentacin de la aplicacin servidor
para obtener una lista de estos comandos.

Comentarios
Por ejemplo, supongamos que ha abierto un canal DDE en Microsoft Access para transferir
datos de texto desde una hoja de clculo de Microsoft Excel hasta una base de datos de
Microsoft Access. Use la instruccin DDEExecute para enviar el comando Nuevo a
Microsoft Excel con el fin de indicar que desea abrir una nueva hoja de clculo. En este
ejemplo, Microsoft Access acta como la aplicacin cliente y Microsoft Excel acta como
la aplicacin servidor.

Pgina

286

El valor de comando depende de la aplicacin y tema especificados cuando se abre el canal


nmCanal. Si nmCanal no es un dato de tipo entero que corresponde a un canal abierto o
si la otra aplicacin no puede ejecutar el comando especificado, entonces se produce un
error.
Desde Visual Basic, puede usar la instruccin DDEExecute slo para enviar comandos a
otra aplicacin. Si desea informacin adicional acerca del envo de comandos a Microsoft
Access desde otra aplicacin, consulte Uso de Microsoft Access como servidor DDE.
Sugerencia Si necesita manipular objetos de otra aplicacin desde Microsoft Access,

Mtodo DDEInitiate
Puede usar la funcin DDEIniciar (DDEInitiate) para iniciar una conversacin de
intercambio dinmico de datos (DDE) con otra aplicacin. La funcin DDEInitiate abre un
canal DDE para transferir datos entre una aplicacin servidor y cliente DDE. Variant.
expresin.DDEInitiate(Application, Topic)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
Application String requerida. Expresin de cadena que identifica a una aplicacin que
puede tomar parte en una conversacin DDE. Por lo general, el argumento application es el
nombre de un archivo .EXE (sin la extensin .EXE) de una aplicacin basada en Microsoft
Windows, por ejemplo, Microsoft Excel.
Topic String requerida. Expresin de cadena que contiene el nombre de un tema
reconocido por la aplicacin. Consulte la documentacin de la aplicacin para obtener una
lista de temas.

Comentarios
Por ejemplo, si desea transferir datos desde una hoja de clculo de Microsoft Excel a una
base de datos de Microsoft Access, puede usar la funcin DDEIniciar (DDEInitiate) para
abrir un canal entre las dos aplicaciones. En este ejemplo, Microsoft Access acta como la
aplicacin cliente y Microsoft Excel acta como la aplicacin servidor.
Si la funcin DDEIniciar (DDEInitiate) tiene xito iniciando una conversacin DDE con
la aplicacin y tema especificados por los argumentos aplicacin y tema, entonces
devuelve un dato de tipo entero Long. Este valor entero representa un nmero de canal
exclusivo que identifica un canal por el cual puede realizarse la transferencia de datos. Este
nmero de canal se puede usar despus con otras funciones e instrucciones DDE.

Pgina

287

Si la aplicacin no se ha ejecutado, o si se ha ejecutado pero no reconoce tema o si no


admite DDE, la funcin DDEIniciar (DDEInitiate) devuelve un error en tiempo de
ejecucin.
El valor de tema depende de la aplicacin especificada por el argumento aplicacin.
Cuando se trata de aplicaciones que usan archivos de documentos o de datos, los nombres
de temas vlidos a menudo incluyen el nombre de esos archivos.
Nota El nmero mximo de canales que pueden estar abiertos simultneamente lo
determina Microsoft Windows, y la memoria y los recursos del sistema. Si no est usando
algn canal, debera conservar los recursos finalizndolo mediante una instruccin
DDETerminate o DDETerminateAll.
Sugerencia Si necesita manipular objetos de otra aplicacin desde Microsoft Access,
considere la posibilidad de usar Automatizacin.

Mtodo DDEPoke
Puede usar la instruccin DDEPoke para proporcionar datos de texto desde una aplicacin
cliente a una aplicacin servidor a travs de un canal de intercambio dinmico de datos
(DDE).
expresin.DDEPoke(ChanNum, Item, Data)
expresin Requerida. Expresin que devuelve uno de los objetos de la lista Aplicar a.
ChanNum Variant requerida. Un nmero de canal, un valor entero devuelto por la
funcin DDEIniciar (DDEInitiate).
Item String requerida. Una expresin de cadena que es el nombre de un elemento de datos
reconocido por la aplicacin especificada por la funcin DDEIniciar (DDEInitiate).
Consulte la documentacin de la aplicacin para obtener una lista de posibles elementos.
Data String requerida. Una cadena que contiene los datos suministrados a la otra
aplicacin.

Comentarios
Por ejemplo, si tiene un canal DDE abierto entre Microsoft Access y Microsoft Excel,
puede usar la instruccin DDEPoke para transferir texto de una base de datos de Microsoft
Access a una hoja de clculo de Microsoft Excel. En este ejemplo, Microsoft Access acta
como la aplicacin cliente y Microsoft Excel acta como la aplicacin servidor.

Pgina

288

El valor de elemento depende de la aplicacin y tema especificados cuando se abre el canal


nmCanal. Por ejemplo, el elemento el elemento puede ser un intervalo de celdas de una
hoja de clculo de Microsoft Excel.
La cadena que contiene data debe ser una cadena de texto alfanumrica. No se admite
ningn otro tipo de formato. Por ejemplo, datos puede ser un nmero para llenar una celda
de un intervalo especificado en una hoja de clculo de Excel.
Si nmCanal no es un dato de tipo entero que corresponde a un canal abierto o si la otra
aplicacin no reconoce o acepta los datos especificados, entonces se produce un error en
tiempo de ejecucin.
Sugerencia Si necesita manipular objetos de otra aplicacin desde Microsoft Access,
considere la posibilidad de usar Automatizacin.

Pgina

289

Das könnte Ihnen auch gefallen