Archive for the 'Access' Category

VBA - Emitindo mensagens personalizadas com MsgBox

outubro 7th, 2008 by Tomás Vásquez

O que é?

A função MsgBox exibe uma caixa de mensagem ao usuário e aguarda com que o
usuário clique em um de seus botões para que esta seja fechada.

A estrutura de chamada à função MsgBox se faz da seguinte forma:

MsgBox([prompt][, buttons] [, title] [, helpfile, context]) As VbMsgBoxResult

Prompt

Obrigatória. Expressão de seqüência de
caracteres
exibida como mensagem na caixa de
diálogo. O comprimento máximo de prompt é de aproximadamente 1.024
caracteres, dependendo da largura dos caracteres utilizados. Se prompt consistir em mais de uma linha, você poderá separar as linhas utilizando um
caractere de retorno de carro (Chr(13)), um caractere de
alimentação de linha (Chr(10)) ou uma combinação de caracteres
de retorno de carro e alimentação de linha (Chr(13) & Chr(10)) entre cada linha.

Buttons

Opcional. Expressão
numérica
que é a soma de valores que especifica o
número e o tipo de botões a exibir, o estilo de ícone a utilizar, a identidade
do botão padrão e a modalidade da caixa de mensagem. Se omitido, o valor
padrão para buttons é 0.

Title

Opcional. Expressão de seqüência de caracteres exibida
na barra de título da caixa de diálogo. Se você omitir title, o nome do
aplicativo será inserido na barra de título.

Helpfile

Opcional. Expressão de seqüência de caracteres que
identifica o arquivo de Ajuda a ser utilizado para fornecer ajuda
sensível ao contexto relativa à caixa de diálogo. Se helpfile for
fornecido, context também deverá ser fornecido.

Context

Opcional. Expressão numérica que é o número de
contexto da Ajuda atribuído ao tópico da Ajuda apropriado por
seu autor. Se context for fornecido, helpfile também deverá ser
fornecido.

Definições

As definições do argumento buttons são as seguintes:

Constante Valor Descrição
VbOKOnly 0 Exibe somente o botão OK.
VbOKCancel 1 Exibe os botões OK e Cancelar.
VbAbortRetryIgnore 2 Exibe os botões Abortar, Repetir e Ignorar.
VbYesNoCancel 3 Exibe os botões Sim, Não e Cancelar.
VbYesNo 4 Exibe os botões Sim e Não.
VbRetryCancel 5 Exibe os botões Repetir e Cancelar.
vbCritical 16 Exibe o ícone Mensagem crítica.
vbQuestion 32 Exibe o ícone Consulta de aviso.
vbExclamation 48 Exibe o ícone Mensagem de aviso.
vbInformation 64 Exibe o ícone Mensagem de informação.
vbDefaultButton1 0 O primeiro botão é o padrão.
vbDefaultButton2 256 O segundo botão é o padrão.
vbDefaultButton3 512 O terceiro botão é o padrão.
vbDefaultButton4 768 O quarto botão é o padrão.
vbApplicationModal 0 Janela restrita do aplicativo; o usuário deve responder à caixa de
mensagem antes de continuar o trabalho no aplicativo atual.
vbSystemModal 4096 Janela restrita de sistema; todos os aplicativos são suspensos até que o
usuário responda à caixa de mensagem.
vbMsgBoxHelpButton 16384 Adiciona o botão ‘Ajuda’ à caixa de mensagens
VbMsgBoxSetForeground 65536 Especifica a janela da caixa de mensagens como a janela de primeiro
plano
vbMsgBoxRight 524288 O texto é alinhado à direita
vbMsgBoxRtlReading 1048576 Especifica que o texto deve aparecer como leitura da direita para a
esquerda em sistemas hebraico e árabe

O primeiro grupo de valores (0 a 5) descreve o número e o tipo de botões
exibidos na caixa de diálogo; o segundo grupo (16, 32, 48, 64) descreve o
estilo de ícone; o terceiro grupo (0, 256, 512) determina qual botão é o
padrão e o quarto grupo (0, 4.096) determina a modalidade da caixa de
mensagem. Quando estiver somando números para criar um valor final para o
argumento buttons, utilize somente um número de cada grupo.

Observação   Essas constantes são especificadas pelo
Visual Basic for Applications. Como resultado, os nomes podem ser utilizados
em qualquer lugar do seu código em vez dos valores reais.

Como o MsgBox é uma Função (Function), é possível capturar o
valor retornado conforme a ação do usuário.

Valores retornados

Constante Valor Descrição
vbOK 1 OK
vbCancel 2 Cancelar
vbAbort 3 Abortar
vbRetry 4 Repetir
vbIgnore 5 Ignorar
vbYes 6 Sim
vbNo 7 Não

Exemplo

Apesar do grande número de opções e parâmetro oferecidos pelo MsgBox,
vamos nos concentrar em sua funcionalidade mais simples neste momento, que é
emitir mensagens ao usuários. Veja este exemplo de código abaixo:

1

2


3

Public Sub TesteMsgBox()

   MsgBox “Seja bem vindo ao
Microsoft Excel!”

End Sub

Execute a função e terá o seguinte resultado:

Na código de exemplo, apenas o primeiro parâmetro é informado, o suficiente
para fazer uso de mensagens simples. Porém é possível personalizar ainda mais
a caixa de mensagem conforme mostra o próximo código de exemplo:

1

2

3

Public Sub TesteMsgBox()

   MsgBox “Seja bem vindo ao
Microsoft Excel!”, vbInformation, “Testando o MsgBox”

End Sub

Note que mais dois parâmetros foram informados, o parâmetro Button e Title. Execute a função e terá o seguinte resultado:

O parâmetro Title permitiu alterar o título da MsgBox, enquanto
o parâmetro Button alterou o contexto da informação. Como foi informado
que o botão a ser mostrado seria do tipo vbInformation, um ícone de
informação foi adicionado ao caixa e mensagem. Outro tipos de Buttons podem
ser utilizadas, que geraram diferentes ícones, conjunto de botões, alterando
inclusive o som que é executado ao mostrar a caixa. Claro que o ideal é sempre
colocar uma mensagem que esteja de acordo com o contexto. Veja a diferença da
aparência se mudar o parâmetro para o seguinte:

1

2

3

Public Sub TesteMsgBox()

   MsgBox “Ocorreu algum
erro!”, vbCritical, “Testando o MsgBox”

End Sub

O resultado da execução do código será a seguinte:

Note a mudança do ícone e do som emitido pelo aplicativo. A mensagem também
foi alterada para refletir a contexto do ícone utilizado.

Comentários

Como o MsgBox é uma função (Function), sua execução retorna um
valor que é do tipo VbMsgBoxResult. Quando se utiliza alguns tipos
especiais de parâmetros Button, este retorna nos dá uma alternativa de
analisar a decisão do usuário com base no retorno do MsgBox.

Quando helpfile e context são fornecidos, o
usuário pode pressionar F1 (Windows) ou AJUDA (Macintosh) para visualizar o
tópico de Ajuda que corresponde ao context. Alguns
aplicativos host, por exemplo, o Microsoft Excel, também adicionam
automaticamente um botão Ajuda à caixa de diálogo. Se o usuário clicar
em OK ou pressionar , a função InputBox retornará o que estiver
na caixa de texto. Se o usuário clicar em Cancelar, a função retornará
uma seqüência de caracteres de comprimento zero (”").

Observação   Para especificar mais que o primeiro
argumento nomeado, você deve utilizar InputBox em uma expressão. Para
omitir alguns argumentos posicionais, você deve incluir o delimitador de
vírgula correspondente.

Pratique!

Caso não consiga abrir os arquivos, clique nos links com o botão direito do
mouse e escolha “salvar como”.

Baixe a planilha para praticar.

Tags: No Tags .

Como interagir seu site com um banco de dados Access

julho 9th, 2008 by Tomás Vásquez

Como interagir seu site com um banco de dados Access

Para programadores acostumados com plataformas cliente/servidor, ainda parece ser um desafio executar uma tarefa aparentemente simples que é publicar seus dados de forma dinâmica na Web.

Programadores VBA que trabalham frequêntemente com Access e Excel sofrem dessem “mau”. Por isso, proponho aqui uma alternativa para facilmente colocar seus dados de um banco de dados em uma página ASP.

Existem outras tecnologias que permitem a mesma proeza. Tentarei colocar aqui as alternativas mais utilzadas e consolidadas.

Este tutorial foi retirado no site da Locaweb, que apesar de parecer uma simples página de um provedor, possui bastante conteúdo interessante a ser explorado.

Introdução

Este tutorial mostra como manipular uma base de dados Access 2000 através do Asp (Active Server Pages), que é uma linguagem com a sintaxe do Visual Basic interpretada no servidor.

Você precisará de um servidor de Internet capaz de executar scripts Asp. O padrão do Windows é o Internet Information Services. Para ver um tutorial de instalação, veja este link.

Crie seu Banco de Dados

Em seu computador, crie um banco de dados chamado tutorial.mdb. Crie uma tabela chamada Agenda com os campos nome e telefone. Acrescente alguns registros à esta tabela que deverá ficar da seguinte forma:

Crie uma Página para Mostrar os Dados

Com seu editor html favorito, crie uma página que mostra em uma tabela, nome e telefone. Coloque algumas linhas nesta tabela com informações fictícias, totalmente desvinculadas das informações da base de dados. Não se preocupe com isto, que será “corrigido” depois. O resultado deverá ser algo do tipo:

__________________________

João 22-3344
José 5555-0000
__________________________

Na hora de salvar a página, use o nome agenda.asp (note que usamos a extensão “.asp” ao invés de “.htm”).

Corrija o Código para Mostrar os Dados reais

Use um editor de texto, ou o modo de visualização do seu programa favorito para editar o código HTML da página criada. Acrescente o seguinte código no início do arquivo (antes do tag “<HTML>”):

<%
ConnString=”Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\home\xyz\dados\tutorial.mdb;”
Set Conexao = Server.CreateObject(”ADODB.Connection”)
Conexao.Open ConnString
Set Registros = Server.CreateObject(”ADODB.Recordset”)
Registros.Open “Clientes”, Conexao
%>

Note que o banco de dados esta dentro do servidor, sob o diretório e:\home\xyz\dados , onde xyz é seu login de FTP.

Em seguida faça a seguinte modificação no código da tabela (note as modificações feitas):

Antes Depois
<table border=”1″ width=”250″>
<tr>
<td>João</td>
<td>22-3344</td>
</tr>
<tr>
<td>José</td>
<td>5555-0000</td>
</tr>
</table>
<table border=”1″ width=”250″>
<% While Not Registros.EOF %>
<tr>
<td><%= Registros(”nome”) %></td>
<td><%= Registros(”telefone”)%></td>
</tr>
<%
Registros.MoveNext
Wend
%>
</table>

Importante: Ao final do script é necessário fechar e destruir os objetos e liberar as variáveis, atribuindo o valor “Nothing”, na ordem inversa à que foram criadas. No exemplo acima, colocar ao final da página:

<%
Registros.Close
Conexao.Close
Set Registros = Nothing
Set Conexao = Nothing
%>

Atualize os Arquivos no Servidor e Teste

Uilize seu programa de FTP ou se for o caso o FrontPage, para publicar os arquivos agenda.asp para o diretório raiz do seu site (pasta “web”) e tutorial.mdb para o diretório de dados (pasta “dados”).

Para testar, entre na página http://seusite/agenda.asp e verifique os resultados.

Abraços

Tomás Vásquez
www.tomasvasquez.com.br

Tags: No Tags .

Access 2003 Add-in: Source Code Control

abril 29th, 2008 by Tomás Vásquez

É difícil até tentar enxergar esse nível de controle pelo fato do Access ser composto geralmente de um arquivo. Porém, a Microsoft disponibiliza um Add-In que possibilita a integração do Microsoft Access com o Visual Source Safe. O bacana é que, mesmo sem alterar a estrutura do aplicativo, o controlador de versão consegue separar os objetos do Access com todos os comandos de check-in, check-out e tudo mais, possibilitando até que mais de um desenvolvedor consiga trabalhar num mesmo projeto ou arquivo. O link para o Add-In seque abaixo:

Access 2003 Add-in: Source Code Control

Bom proveito em seus projetos!

Tomás Vásquez

Tags: No Tags .