Compartir a través de


Método Application.SysCmd (Access)

Use el método SysCmd para mostrar un medidor de progreso u texto especificado opcionalmente en la barra de estado, devolver información sobre Microsoft Access y sus archivos asociados o devolver el estado de un objeto de base de datos especificado (para indicar si el objeto está abierto, es un objeto nuevo o se ha cambiado pero no guardado). Variant.

Sintaxis

expression.SysCmd (Action, Argument2, Argument3)

expresión Variable que representa un objeto Application.

Parámetros

Nombre Obligatorio/opcional Tipo de datos Descripción
Action Obligatorio AcSysCmdAction Constante AcSysCmdAction que identifica el tipo de acción que se va a realizar. Este conjunto de constantes se aplica a un indicador de progreso. El método SysCmd devuelve un valor Null si estas acciones se realizan correctamente. De lo contrario, Access genera un error en tiempo de ejecución.
Argument2 Opcional Variant El texto que aparecerá alineado a la izquierda en la barra de estado. Este argumento es necesario cuando el argumento Action es acSysCmdInitMeter, acSysCmdUpdateMeter o acSysCmdSetStatus; este argumento no es válido para otros valores de argumento Action .

NOTA: Al especificar el valor acSysCmdGetObjectState para el parámetro Action , debe especificar la constante AcObjectType adecuada.
Argument3 Opcional Variant Una expresión numérica que controla la presentación del indicador de progreso. Este argumento es necesario cuando el argumento Action es acSysCmdInitMeter; este argumento no es válido para otros valores de argumento Action .

NOTA: Al especificar el valor acSysCmdGetObjectState para el parámetro Action , debe especificar el nombre del objeto de base de datos.

Valor devuelto

Variant

Observaciones

Por ejemplo, si está compilando un asistente personalizado que crea un nuevo formulario, puede usar el método SysCmd para mostrar un indicador de progreso que indique el progreso del asistente al generar el formulario.

Llamando al método SysCmd con las distintas acciones de indicador de progreso puede mostrar un indicador de progreso en la barra de estado para una operación que tiene un número de pasos o una duración determinados y actualizarlo para mostrar el progreso de la operación.

Para mostrar un medidor de progreso en la barra de estado, primero debe llamar al método SysCmd con el argumento acSysCmdInitMeterAction y los argumentos Text y Value . Cuando el argumento Action es acSysCmdInitMeter, el argumento Value es el valor máximo del medidor, o 100 por ciento.

Para actualizar el medidor para mostrar el progreso de la operación, llame al método SysCmd con el argumento acSysCmdUpdateMeterAction y el argumento Value . Cuando el argumento Action es acSysCmdUpdateMeter, el método SysCmd usa el argumento Value para calcular el porcentaje mostrado por el medidor. Por ejemplo, si establece el valor máximo como 200 y actualiza el indicador con un valor de 100, el indicador de progreso estará lleno hasta la mitad.

También puede cambiar el texto que se muestra en la barra de estado llamando al método SysCmd con el argumento acSysCmdSetStatusAction y el argumento Text . Por ejemplo, durante un proceso de ordenación podría cambiar el texto a "Ordenando...". Una vez finalizada la ordenación, restablecería la barra de estado eliminando el texto. El argumento Text puede contener aproximadamente 80 caracteres. Dado que el texto de la barra de estado se muestra mediante una fuente proporcional, el número real de caracteres que puede mostrar viene determinado por el ancho total de todos los caracteres especificados por el argumento Text .

A medida que aumente el ancho del texto de la barra de estado, disminuirá la longitud del indicador. Si el texto es más largo que la barra de estado y el argumento Action es acSysCmdInitMeter, el método SysCmd omite el texto y no muestra nada en la barra de estado. Si el texto es más largo que la barra de estado y el argumento Action es acSysCmdSetStatus, el método SysCmd trunca el texto para que se ajuste a la barra de estado.

No se puede establecer el texto de la barra de estado como una cadena de longitud cero (" "). Si desea quitar el texto existente de la barra de estado, establezca el argumento Text en un solo espacio. En los ejemplos siguientes se indican formas de eliminar el texto de la barra de estado:

varReturn = SysCmd(acSysCmdInitMeter, " ", 100) 
varReturn = SysCmd(acSysCmdSetStatus, " ")

Si el medidor de progreso ya se muestra al establecer el texto llamando al método SysCmd con el argumento acSysCmdSetStatusAction , el método SysCmd quita automáticamente el medidor.

Llame al método SysCmd con otras acciones para determinar la información del sistema sobre Access, incluido el número de versión de Access que se está ejecutando, si es una versión en tiempo de ejecución, la ubicación del archivo ejecutable de Access, la configuración del argumento /profile especificado en la línea de comandos y el nombre de un archivo .ini asociado a Access.

Nota:

La configuración general y personalizada de Access ahora se almacenan en el Registro de Windows, por lo que probablemente no necesitarás un archivo .ini con tu aplicación Access. El argumento acSysCmdIniFileAction existe para la compatibilidad con versiones anteriores de Access.

Llame al método SysCmd con el argumento acSysCmdGetObjectStateAction y los argumentos ObjectType y ObjectName para devolver el estado de un objeto de base de datos especificado. Un objeto puede estar en uno de cuatro estados posibles: no abierto o no existente, abierto, nuevo o modificado pero no guardado.

Por ejemplo, si está diseñando un asistente que inserta un nuevo campo en una tabla, debe determinar si la estructura de la tabla se ha modificado pero aún no se ha guardado para poder guardarla antes de modificar su estructura. Puede comprobar el valor que devuelve el método SysCmd para determinar el estado de la tabla.

El método SysCmd con el argumento acSysCmdGetObjectStateAction puede devolver cualquier combinación de las constantes siguientes.

Constante Estado del objeto de base de datos Valor
acObjStateOpen Abierto 1
acObjStateDirty Diseño modificado y no guardado 2
acObjStateNew Nuevo 4

Nota:

Si el objeto al que hace referencia el argumento ObjectName no está abierto o no existe, el método SysCmd devuelve un valor de cero.

El código siguiente se puede usar para habilitar el uso del control ActiveX en expresiones cuando el control ActiveX se ha agregado a un formulario.

SysCmd 14, "<ActiveX Control GUID>" 

Nota:

  • Sustituya <ActiveX Control GUID> por el identificador único global (GUID) que identifica el control ActiveX que desea habilitar en expresiones.
  • No se puede quitar un control ActiveX después de que se haya agregado a la lista de controles permitidos.

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.