Método Application.SysCmd (Access)
Utilize o método SysCmd para apresentar um medidor de progresso ou texto especificado opcional na barra de status, devolver informações sobre o Microsoft Access e os respetivos ficheiros associados ou devolver o estado de um objeto de base de dados especificado (para indicar se o objeto está aberto, se é um novo objeto ou se foi alterado, mas não guardado). Variant.
Sintaxe
expressão. SysCmd (Ação, Argumento2, Argumento3)
expressão Uma variável que representa um Aplicativo objeto.
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
Action | Obrigatório | AcSysCmdAction | Uma constante AcSysCmdAction que identifica o tipo de ação a tomar. Este conjunto de constantes se aplica a um medidor de progresso. O método SysCmd devolve um Valor Nulo se estas ações forem bem-sucedidas. Caso contrário, o Access gera um erro de tempo de execução. |
Argumento2 | Opcional | Variant | O texto a ser exibido alinhado à esquerda na barra de status. Este argumento é necessário quando o argumento Ação é acSysCmdInitMeter, acSysCmdUpdateMeter ou acSysCmdSetStatus; este argumento não é válido para outros valores do argumento Ação . NOTA: quando especificar o valor acSysCmdGetObjectState para o parâmetro Ação , tem de especificar a constante AcObjectType adequada. |
Argumento3 | Opcional | Variant | Uma expressão numérica que controla a exibição do medidor de progresso. Este argumento é necessário quando o argumento Ação é acSysCmdInitMeter; este argumento não é válido para outros valores do argumento Ação . NOTA: quando especificar o valor acSysCmdGetObjectState para o parâmetro Ação , tem de especificar o nome do objeto de base de dados. |
Valor de retorno
Variant
Comentários
Por exemplo, se você estiver criando um assistente personalizado que cria um novo formulário, você pode usar o método SysCmd para exibir um medidor de progresso indicando o andamento do seu assistente conforme ele cria o formulário.
Chamando o método SysCmd com o progresso de várias ações de monitoração, você pode exibir um medidor de progresso na barra de status para uma operação que tenha uma duração conhecida ou o número de etapas e atualizá-lo para indicar o progresso da operação.
Para apresentar um medidor de progresso na barra de status, primeiro tem de chamar o método SysCmd com o argumento acSysCmdInitMeterAction e os argumentos Texto e Valor. Quando o argumento Ação é acSysCmdInitMeter, o argumento Valor é o valor máximo do medidor ou 100 por cento.
Para atualizar o medidor para mostrar o progresso da operação, chame o método SysCmd com o argumento acSysCmdUpdateMeterAction e o argumento Valor . Quando o argumento Ação é acSysCmdUpdateMeter, o método SysCmd utiliza o argumento Valor para calcular a percentagem apresentada pelo medidor. Por exemplo, se você definir o valor máximo para 200 e atualizar o medidor com um valor de 100, o medidor de progresso será preenchido pela metade.
Também pode alterar o texto apresentado na barra de status ao chamar o método SysCmd com o argumento acSysCmdSetStatusAction e o argumento Texto. Por exemplo, durante uma classificação, você pode alterar o texto para "Classificando...". Quando a classificação for concluída, redefina a barra de status removendo o texto. O argumento Texto pode conter aproximadamente 80 carateres. Uma vez que o texto da barra de status é apresentado com um tipo de letra proporcional, o número real de carateres que pode apresentar é determinado pela largura total de todos os carateres especificados pelo argumento Texto.
Conforme você aumentar a largura do texto da barra de status, o comprimento do medidor diminui. Se o texto for maior do que a barra de status e o argumento Ação for acSysCmdInitMeter, o método SysCmd ignora o texto e não apresenta nada na barra de status. Se o texto for maior do que a barra de status e o argumento Ação for acSysCmdSetStatus, o método SysCmd trunca o texto para se ajustar à barra de status.
Não é possível definir o texto da barra de status como uma cadeia de caracteres de comprimento zero (" "). Se quiser remover o texto existente da barra de status, defina o argumento Texto para um único espaço. Os exemplos a seguir ilustram maneiras de remover o texto da barra de status:
varReturn = SysCmd(acSysCmdInitMeter, " ", 100)
varReturn = SysCmd(acSysCmdSetStatus, " ")
Se o medidor de progresso já for apresentado quando definir o texto ao chamar o método SysCmd com o argumento acSysCmdSetStatusAction , o método SysCmd remove automaticamente o medidor.
Chame o método SysCmd com outras ações para determinar as informações do sistema sobre o Access, incluindo o número da versão do Access em execução, se é uma versão de tempo de execução, a localização do ficheiro executável do Access, a definição do argumento /profile especificado na linha de comandos e o nome de um ficheiro de .ini associado ao Access.
Observação
As definições gerais e personalizadas do Access estão agora armazenadas no Registo do Windows, pelo que provavelmente não precisará de um ficheiro .ini com a sua aplicação do Access. O argumento açãoacSysCmdIniFile existe para compatibilidade com versões anteriores do Access.
Chame o método SysCmd com o argumento acSysCmdGetObjectStateAction e os argumentos ObjectType e ObjectName para devolver o estado de um objeto de base de dados especificado. Um objeto pode estar em um dos quatro estados possíveis: não está aberto ou inexistente, aberto, novo ou alterado mas não salvo.
Por exemplo, se estiver criando um assistente que insere um novo campo em uma tabela, você precisa determinar se a estrutura da tabela foi alterada mas ainda não foi salva, para que você possa salvá-lo antes de modificar sua estrutura. Você pode verificar o valor retornado pelo método SysCmd para determinar o estado da tabela.
O método SysCmd com o argumento acSysCmdGetObjectStateAction pode devolver qualquer combinação das seguintes constantes.
Constant | Estado do objeto de banco de dados | Valor |
---|---|---|
acObjStateOpen | Abrir | 1 |
acObjStateDirty | Design alterado, mas não salvo | 2 |
acObjStateNew | New | 4 |
Observação
Se o objeto referido pelo argumento ObjectName não estiver aberto ou não existir, o método SysCmd devolve um valor de zero.
O código seguinte pode ser utilizado para ativar a utilização do seu controlo ActiveX em expressões quando o controlo ActiveX tiver sido adicionado a um formulário.
SysCmd 14, "<ActiveX Control GUID>"
Observação
- Substitua pelo
<ActiveX Control GUID>
identificador exclusivo global (GUID) que identifica o controlo ActiveX que pretende ativar em expressões. - Não pode remover um controlo ActiveX depois de este ter sido adicionado à lista de controlos permitidos.
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.