MS Access - Funções Integradas

Neste capítulo, trabalharemos com funções integradas. No Access, existem cerca de uma centena de funções integradas e é quase impossível abranger todas elas. Neste capítulo, cobriremos a estrutura básica, a sintaxe e usaremos algumas das funções mais populares, e também as armadilhas, para que você possa explorar algumas das outras funções por conta própria.

Funções

Uma função é um procedimento VBA que executa uma tarefa ou cálculo e retorna um resultado. As funções geralmente podem ser usadas em consultas, mas existem outros lugares onde você pode usar as funções.

  • Você pode usar funções nas propriedades da tabela, por exemplo, se quiser especificar um valor padrão para um campo de data / hora, você pode usar a data ou o Now para chamar as informações de data / hora atuais do seu sistema e inserir esse valor automaticamente.

  • Você também pode usar funções em uma expressão ao criar um campo calculado ou usar as funções dentro de controles de formulário ou relatório. Você pode usar funções mesmo em argumentos de macro.

  • As funções podem ser bastante simples, não exigindo que nenhuma outra informação seja chamada, ou simplesmente fazer referência a um campo de uma tabela ou consulta.

  • Por outro lado, eles também podem ser bastante complicados, com vários argumentos, referências de campo e até mesmo outras funções aninhadas dentro de outra função.

Vejamos agora alguns exemplos de uso de funções integradas.

Funções de data e hora

Vamos agora entender as funções de data e hora -

  • A função Date () foi projetada para retornar a data atual do sistema. Esta função não requer argumentos de função ou informações adicionais. Tudo que você precisa fazer é escrever o nome da função e os parênteses de abrir e fechar.

  • Existem duas funções internas muito semelhantes, Time () e Now ().

  • A função Time () retorna apenas a hora atual do sistema e a função Now () retorna a data e a hora atuais do sistema.

  • Dependendo dos dados que deseja rastrear, armazenar ou consultar, você tem três funções integradas e fáceis de usar para ajudar nessa tarefa.

Vamos agora abrir seu banco de dados e criar uma nova consulta usando design de consulta e adicionar tblProjects e tblTasks.

Adicione ProjectName de tblProjects e TaskTitle, StartDate e DueDate de tblTasks e execute sua consulta.

Agora você pode ver todas as diferentes tarefas de todos os projetos. Se você quiser visualizar as tarefas do projeto que estão em andamento na data de hoje, temos que especificar um critério usando umDate() Função para ver os projetos que começam na data de hoje ou depois dela.

Vamos agora especificar os critérios abaixo da StartDate.

Os critérios começam com um operador greater than symbol, seguido por um equal to symbol e depois Date Function.

Quando executamos esta consulta, todas as tarefas ocorrerão na data de hoje ou no futuro, como na imagem a seguir.

Este foi um exemplo de como você pode usar a função Date () como critério de consulta.

  • Digamos agora que essa consulta precisa ser mais flexível em termos de datas que está puxando a partir desta semana.

  • Temos algumas tarefas diferentes que começaram esta semana, que não estão aparecendo nesta lista atual, devido aos nossos critérios. Ele está olhando para datas de início iguais a hoje ou superiores.

Se quisermos ver as tarefas que começaram esta semana, que ainda não foram concluídas ou devem ser concluídas hoje, vamos voltar para a Visualização do Design.

Aqui, adicionaremos algumas informações adicionais a esses critérios. Na verdade, queremos que seja maior ou igual à data de hoje menos sete dias.

Se digitarmos menos sete e executarmos a consulta, você também poderá ver as tarefas que começaram esta semana.

Função DateDiff ()

A função DateDiff () é outra função de data / hora muito popular. A função DateDiff retorna um Variant (longo), especificando o número de intervalos de tempo entre duas datas especificadas. Em outras palavras, ele calcula a diferença entre duas datas, e você escolhe o intervalo pelo qual a função calcula essa diferença.

Digamos agora que desejamos calcular a idade de nossos autores. Para isso, primeiro precisamos criar uma nova consulta e adicionar nossa tabela de autores e, em seguida, adicionar os campos FirstName, LastName e BirthDay.

Podemos calcular a idade das pessoas calculando a diferença entre a data de nascimento ou aniversário e qualquer que seja a data de hoje.

Vamos tentar usar a função DateDiff em um novo campo.

Vamos chamá-lo de Age seguido por dois pontos e, em seguida, escrever Função DateDiff.

  • O primeiro argumento de função para a função DateDiff é o intervalo, então digite “aaaa”.
  • O próximo argumento da função é a primeira data que desejamos calcular, que, neste caso, será o campo Aniversário.
  • O terceiro argumento da função é a data de hoje.

Agora, execute sua consulta e você verá o novo campo que mostra a idade de cada autor.

Função Format ()

A função Format () retorna uma string, contendo uma expressão formatada de acordo com as instruções contidas em uma expressão de formato. Aqui está a lista de formatos definidos pelo usuário que podem ser usados ​​na função Format ().

Configuração Descrição
aaaa Ano
q Trimestre
m Mês
y Dia do ano
d Dia
W Dia da semana
ww Semana
h Hora
n Minuto
s Segundo

Vamos agora voltar à sua consulta e adicionar mais campos na mesma usando a função Format ().

Digite a função de formato. O primeiro argumento da função será uma expressão, que pode ser quase qualquer coisa. Vamos agora ter o campo de aniversário como o primeiro e o próximo passo é escrever nosso formato. Nesse caso, precisamos de mês, mês, dia, dia. Escreva “mmdd” entre aspas e execute sua consulta.

Agora está tirando a data do campo de aniversário, 4 é o mês e 17 é o dia.

Vamos adicionar “mmm” e “mmmm” ao invés de “mmdd” nos próximos campos como na imagem a seguir.

Execute sua consulta e você verá os resultados como na imagem a seguir.

No próximo campo, ele está retornando os primeiros 3 caracteres do nome do mês para aquele aniversário e no último campo você obterá o nome completo do mês.

Para ver o mês seguido pelo ano a partir do aniversário, vamos adicionar o “aaaa”, assim como mostrado na imagem a seguir.

Deixe-nos executar sua consulta novamente.

Agora você verá o mês seguido por uma vírgula e o ano.

Função IIf ()

A função IIf () é uma abreviatura para “Immediate If” e esta função avalia uma expressão como verdadeira ou falsa e retorna um valor para cada uma. Ele tem até três argumentos de função, todos obrigatórios.

  • O primeiro argumento é qualquer expressão que você deseja avaliar.
  • O próximo argumento representa a parte verdadeira, que pode ser um valor ou uma expressão retornada se sua primeira expressão for verdadeira.
  • O último argumento é o que você deseja que seja retornado se sua expressão for falsa.

Exemplo

Tomemos um exemplo simples. Vamos criar uma nova consulta usando design de consulta e adicionar a tabela tblAuthors e, em seguida, adicionar os campos a seguir.

Agora você pode ver que temos três campos - FirstName, MiddleInitial, LastName e este campo concatenado, que está reunindo todos os três campos. Deixe-nos executar sua consulta para ver o resultado desta consulta.

Agora, você pode ver o resultado da consulta, mas também notará que alguns registros não têm uma inicial do meio. Por exemplo, o registro de Joyce Dyer não tem uma inicial do meio, mas no campo FullName você verá o ponto que realmente não precisa estar lá. Portanto, volte para a Visualização de design. Aqui, vamos concatenar o nome de uma maneira diferente usando a função IIf.

Vamos escrever o nome em outro campo e chamá-lo FullName1 e, em seguida, digitar a função IIf.

  • O primeiro argumento de função para a função Immediate If vai ser sua expressão. Na expressão, veremos se o campo inicial do meio está em branco ou nulo.

  • O próximo argumento é a parte verdadeira. Portanto, se a inicial do meio for nula, gostaríamos de exibir o FirstName e o LastName.

  • Agora, para nossa parte falsa - se MiddleInitial não for nulo, gostaríamos de exibir FirstName, MiddleInitial e LastName.

Vamos agora executar sua consulta e você verá os resultados como na imagem a seguir.