Beruflich Dokumente
Kultur Dokumente
A1
Arquivo de exemplos do Microsoft Excel
Índice analítico
Funções de planilha
Fórmulas de exemplo para concluir tarefas comuns da planilha.
Formatação condicional
Demonstra como alterar a formatação (ou seja, fonte, cor da célula)
aplicada à célula, dependendo do seu valor atual.
Validação de dados
Mostra como definir restrições para valores que podem ser inseridos
em uma célula.
Rótulos de gráficos
Macro para automatizar o rótulo de um gráfico de dispersão (XY).
Repetindo tarefas
Exemplo de código de macro em loop e uma explicação sobre como
modificar código gravado para repetir tarefas em um intervalo de
células ou em um intervalo selecionado.
A Microsoft fornece exemplos de procedimentos do Visual Basic for Applications somente para ilustração, sem garantia expressa ou implícita, incluind
mas não limitado a, a garantia implícita de comercialidade e/ou adequação a fins específicos. Os procedimentos do Visual Basic dessa pasta de traba
são providos 'como estão' e a Microsoft não garante que possam ser usados em todas as situações. Ao mesmo tempo que os Engenheiros do Micros
AnswerPoint podem auxiliar na explicação da funcionalidade de uma determinada macro, eles não irão modificar estes exemplos para fornecerem
funcionalidades adicionais, nem mesmo auxiliá-lo na construção de macros para atender às suas necessidades específicas. Se você possui pouca
experiência em programação, deve consultar um dos Microsoft Solution Providers.
plos do Microsoft Excel
Índice analítico
Matrizes
Código de macro para demonstrar como transferir conteúdo da
matriz para uma planilha.
Exemplos API
Como implementar o uso de chamadas de API de dentro do
ambiente de programação do Microsoft Excel.
Eventos
Exemplos para demonstrar como alguns eventos podem disparar
código de macro a ser executado.
Automação
Exemplo de código de macro para demonstrar como o Microsoft
Excel pode automatizar outros aplicativos do Microsoft Office.
Uma outra maneira de suprimir a exibição de valores de erro é usando o novo recurso
Formatação condicional do Excel 2000. O recurso Formatação condicional permite
que você tenha células exibindo diferentes formatos dependendo do seu conteúdo. Para
valores de erro, você deverá seguir as seguintes etapas:
1. Selecione a célula a ser formatada (nesse caso, $E$41).
2. Clique em Formatação condicional no menu Formatar.
3. Na primeira caixa suspensa, selecione A fórmula é.
4. Na caixa de edição ao lado, digite: =ÉERRO($E$41).
5. Clique no botão de formatação e selecione um formato. Neste caso, foram usados um plano
de fundo azul e a mesma fonte azul.
6. Clique em OK.
O resultado é que para valores de erro, a cor da fonte é igual à cor do plano de fundo e nada será
exibido.
Para usar esse recurso, selecione uma célula no intervalo de dados que deseja utilizar e, em seguida,
selecione Ferramentas / Assistente / Pesquisa e siga as etapas do assistente.
Se os itens de menu não estiverem presentes e para obter informações adicionais sobre como usar ou
instalar o Assistente de pesquisa, use o Assistente do Office e efetue uma pesquisa usando
a expressão "Assistente de pesquisa".
Para usar esse recurso, selecione uma célula na lista que deseja resumir e, em seguida, selecione
Ferramentas / Assistente / Soma condicional e siga as etapas do assistente.
Se os itens de menu não estiverem presentes e para obter informações adicionais sobre como usar ou
instalar o Assistente de soma condicional, use o Assistente do Office e efetue uma pesquisa usando
a expressão "Assistente de soma condicional".
Formatação condicional
A formatação condicional permite que você altere a formatação aplicada à
célula, dependendo do valor atual da célula. Este procedimento pode agilizar
a auditoria em planilhas grandes realçando automaticamente exceções. A
formatação condicional permite que você aplique até três condições
separadas em uma célula.
4
7
As células H10:H14 contêm três regras de formatação condicional que
texto
alterarão a formatação das células dependendo dos valores inseridos nelas.
1
Para ver as condições aplicadas às células, selecione a célula H10 e clique 15
em Formatação condicional no menu Formatar.
Este exemplo ilustra como usar a formatação condicional para ocultar valores 2.5
de erros que são retornados pelas fórmulas. Neste exemplo, as células H21 e 4
H23 exibiriam normalmente o código de erro #DIV/0!. A formatação #DIV/0!
condicional aplicada define a cor da fonte das células que contêm um valor 5
de erro para que ela corresponda com o plano de fundo da planilha.
#DIV/0!
Para ver as condições aplicadas às células, selecione a célula H19 e clique
em Formatação condicional no menu Formatar.
10 4
20 5
30
40 8
50
Validação de dados
A validação de dados permite que você defina restrições para os valores
que podem ser inseridos em uma célula. Os exemplos a seguir
apresentam vários cenários comuns para usar a validação de dados.
Exemplo 4 de validação de dados - Restringindo a entrada de célula para uma lista de valores
Muitas vezes, é necessário realizar a mesma tarefa em um grupo de itens. Esses itens podem ser
células em um intervalo, planilhas em uma pasta de trabalho ou pastas de trabalho em um
aplicativo. Embora o gravador de macro não grave loops, pode ainda ser usado para gravar a
tarefa principal a ser repetida. Em seguida, com algumas pequenas modificações no código
gravado, vários tipos de loop podem ser criados, dependendo do que é necessário para um
determinado projeto.
Os exemplos abaixo têm foco em um cenário onde o programador possui um intervalo de células
em uma coluna A contendo números e, dependendo do valor da célula, deseja alterar a cor da
célula correspondente na coluna B.
Primeiramente, podemos gravar o processo de etapa única para alterar a cor de fundo de uma
célula:
Para gravar: no menu Ferramentas, clique em Macro e, em seguida, clique em Gravar nova
macro. Durante a gravação, no menu Formatar, clique em Células. Em seguida, clique na guia
Padrões e selecione uma cor.
Este exemplo usa o amarelo (.ColorIndex=6). Termine a gravação usando o botão Parar gravação
na barra de ferramentas Parar gravação. A cor da célula selecionada no momento será alterada e
a seguinte macro será gravada:
Ir
Ir para
para código
código exemplo
exemplo
Sub Recorded_Macro() Macro
Macro gravada
gravada
'
' Macro gravada em 18/11/98
'
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub
Observação: Se, durante a gravação, você selecionar uma célula, sua macro poderá conter algo
como Range("A3").Select. Você deve remover essa linha, pois, sempre que esta macro for
executada, essa linha forçará a seleção da célula especificada no objeto Range. Caso você queira
que aquela célula seja selecionada primeiramente, então remova a linha.
Agora, podemos modificar ligeiramente o código e acrescentar uma das várias estruturas de loop
ao código gravado.
Loop For…Next
Se você sabe quantas vezes deseja que o loop seja executado, pode usar um loop For..Next.
Usando nosso exemplo, se você deseja verificar somente 10 células abaixo, com início na célula
selecionada, então o código gravado modificado teria a seguinte aparência:
Ir
Ir para código exemplo
Sub For_Next_Sample() For_Next
For_Next
For Contador = 0 To 9
If Selection.Offset(Contador, 0).Value > 20 Then
With Selection.Offset(Contador, 1).Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End If
Next
End Sub
Neste caso, o objeto Selection está sendo usado para que o código não seja específico a um
dado intervalo, mas que sempre executará um loop em 10 (de 0 a 9 como um contador) células
abaixo da célula ativa. A variável Contador é incrementada a cada loop e pode ser usada dentro
da estrutura do loop. Aqui é usada como um argumento Offset para indicar quantas linhas serão
deslocadas na Selection (a célula atual). Então, se iniciarmos esta macro e a célula ativa é A1, no
primeiro loop a variável Contador será igual a 0. Sendo assim, serão deslocadas 0 linhas a partir
de A1, como apresentados na instrução Selection.Offset(Contador, 0).Value.
Do…Loop
Para determinar se um loop deve ser terminado, com base em uma certa condição, o uso de um
Do...Loop seria apropriado. Esta estrutura de loop permite que você verifique as condições da
variável ou das propriedades antes do loop ser executado. No exemplo abaixo, o loop é
executado até que o número de linha da célula referenciada, Selection.Offset(Contador,
0).Row, tenha excedido 100. Isto pode ser útil quando você deseja que um loop não seja
executado após a linha 100.
Ir
Ir para
para código
código exemplo
exemplo
Sub Do_Loop_Sample() Do_Loop
Do_Loop
Contador = 0
Do Until Selection.Offset(Contador, 0).Row > 100
If Selection.Offset(Contador, 0).Value > 20 Then
With Selection.Offset(Contador, 1).Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End If
Contador = Contador + 1
Loop
End Sub
Observação: Existem outros três tipos de loops Do… disponíveis. As formas variadas oferecem
maior flexibilidade, conforme necessário, em circunstâncias diversas.
Para obter mais informações sobre este loop e informações mais detalhadas sobre as outras
estruturas de loop, acesse a Ajuda a partir do ambiente do Visual Basic e use a palavra-chave
looping.
Trabalhando com matrizes
A maneira mais comum para transferir o conteúdo de uma matriz para uma planilha é através de
um loop, como, por exemplo, um loop For...Next. Um loop For...Next permite que você indexe a
matriz e transfira elementos da matriz um por vez para o seu endereço de destino. Você pode
conseguir este mesmo resultado, sem o uso de um loop, usando o Visual Basic, Applications
Edition, propriedade FormulaArray do objeto Range.
Em uma matriz bidimensional, você deve mudar a orientação da matriz. Para tal, você pode
declarar a matriz como uma matriz bidimensional com dimensões de várias linha por uma coluna.
Por exemplo:
A matriz bidimensional apresentada neste exemplo permite que o Visual Basic defina a orientação
da matriz como vertical. Sendo assim, a matriz pode ser transferida para uma pasta de trabalho
sem o uso de um loop.
Exemplos API
Uma API (Application Programming Interface, interface de programação de aplicativo) é uma função contida
em arquivo DLL. Normalmente, essas funções são usadas por janelas e outros aplicativos, mas elas também
podem ser usadas pelo usuário final.
Observação: Tenha cuidado ao efetuar chamadas de API. Salve seu trabalho com freqüência para evitar
quaisquer problemas.
Como foram projetadas para serem chamadas pelo sistema e por aplicativos, a maioria das interceptações
de erro não foi implementada. Isto significa que você pode causar danos ao sistema, paradas ou provocar
efeitos indesejáveis ao tentar chamadas de API. Os exemplos a seguir mostram como usar algumas
APIs básicas. Elas foram testadas no Windows98. Há várias maneiras de usar essas funções
e cabe ao programador determinar qual função melhor atenderá às suas necessidades.
O exemplo a seguir usa a função GetLogicalDriveStrings para efetuar loop em todas as unidades lógicas.
As unidades lógicas são compartilhamentos de rede mapeados e unidades de CD-ROM removíveis e fixas.
Option Explicit
Private Declare Function GetLogicalDriveStrings _
Lib "kernel32" Alias "GetLogicalDriveStringsA" _
(ByVal nBufferLength As Long, _
Sub Get_Logical_Drive_String()
Dim DrvString As String
Dim TotDrvs As Long Ir
Ir para código exemplo
Get_Logical_Drive_String
Get_Logical_Drive_String
Dim Contador As Integer
Sub Get_System_Metrics()
End Sub
Option Explicit
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Sub Get_User_Name()
Ir
Ir para código exemplo
Dim lpBuff As String * 25 Get_User_Name
Get_User_Name
Dim ret As Long, UserName As String
ret = GetUserName(lpBuff, 25)
UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
MsgBox UserName
End Sub
A função a seguir utiliza um nome extenso de arquivo e retorna o nome curto de arquivo,
exibindo os dois em uma caixa de mensagens.
O exemplo de código a seguir mostra como usar a função GetComputerName para retornar o
nome do computador.
Option Explicit
Private Declare Function GetComputerName Lib "kernel32" _
Alias "GetComputerNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
Sub Get_Computer_Name() Ir
Ir para código exemplo
Dim Comp_Name_B As String * 255 Get_Computer_Name
Get_Computer_Name
Dim Comp_Name As String
GetComputerName Comp_Name_B, Len(Comp_Name_B)
'mas a seqüência é sempre finalizada com uma seqüência de final nulo,
'possibilitando o uso da função Chr(0) para localizar esse final
Comp_Name = Left(Comp_Name_B, InStr(Comp_Name_B, Chr(0)))
'e retorna somente o nome do computador
MsgBox Comp_Name
End Sub
O exemplo de código a seguir mostra como localizar o espaço livre disponível, bem como o tamanho total
do disco rígido.
Option Explicit
Private Declare Function GetDiskFreeSpace Lib "KERNEL32.DLL" _
Alias "GetDiskFreeSpaceA" (ByVal lpRoot As String, _
dwSectors As Long, _
dwBytes As Long, _
dwFreeClusters As Long, _
dwTotalClusters As Long) As Long
Sub Get_Disk_Free_Space()
Dim f As Long, iSectors As Long
Ir
Ir para
para código
código exemplo
exemplo
Dim iTotal As Long, rTotal As Long
Get_Disk_Free_Space
Get_Disk_Free_Space
Dim iFree As Long, rFree As Long
Dim iBytes As Long
Dim sName As String, s As String
sName = "C:\"
f = GetDiskFreeSpace(sName, iSectors, iBytes, iFree, iTotal)
rFree = iSectors * iBytes * CDbl(iFree)
rTotal = iSectors * iBytes * CDbl(iTotal)
If f Then
s = sName
s = s & " tem " & Format(rFree, "#,###,###,##0")
s = s & " bytes livres de " & Format(rTotal, "#,###,##0") & " Total de "
_ "bytes"
End If
MsgBox s
End Sub
Option Explicit
Declare Function GetSystemDirectory Lib "kernel32" _
Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, _
ByVal nSize As Long) As Long
Sub Get_System_Directory()
Dim Sys_Dir As String, Res As Long
Res = GetSystemDirectory(Sys_Dir, 0&)
Sys_Dir = String(Res - 1, " ") Ir
Ir para
para código
código exemplo
exemplo
Res = GetSystemDirectory(Sys_Dir, Res) GetSystemDirectory
GetSystemDirectory
MsgBox Sys_Dir
End Sub
O exemplo de código a seguir chama seletivamente o sistema para ver se há dispositivos capazes
de executar arquivos WAV.
Option Explicit
Declare Function waveOutGetNumDevs Lib "winmm" () As Long
Sub Num_Devs()
Dim i As Long
Ir
Ir para código exemplo
i = waveOutGetNumDevs()
Num_Devs
Num_Devs
If i > 0 Then ' Há pelo menos um dispositivo.
MsgBox "Você pode executar dados Wave"
Else
MsgBox "Não é possível executar dados Wave"
End If
End Sub
O exemplo de código a seguir mostra como fazer para que o Microsoft Excel fique "Sempre visível". Este
procedimento impede que outros aplicativos sejam exibidos na frente do Microsoft Excel.
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal x As Long, _
Ir
Ir para
para código
código exemplo
exemplo
ByVal y As Long, _
SetOnTop
SetOnTop
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long
Global Const HWND_TOPMOST = -1
Global Const HWND_NOTOPMOST = -2
Sub SetOnTop()
Dim WinHnd As Long, SUCCESS As Long
WinHnd = FindWindow("xlmain", Application.Caption)
SUCCESS = SetWindowPos(WinHnd, HWND_TOPMOST, 0, 0, 0, 0, Flags)
'A linha a seguir existe somente para alternar o Excel para a operação normal
'após 20 segundos
Application.OnTime Now + TimeValue("00:00:20"), "NotOnTop"
End Sub
Sub NotOnTop()
Dim WinHnd As Long, SUCCESS As Long
WinHnd = FindWindow("xlmain", Application.Caption)
SUCCESS = SetWindowPos(WinHnd, HWND_NOTOPMOST, 0, 0, 0, 0, Flags)
End Sub
Programando com eventos
Muitas vezes, os programadores desejam que um certo evento dispare uma macro para executar uma tarefa.
O Microsoft Excel 2000 oferece esta capacidade. Os eventos sempre estão associados a um objeto. Como
exemplos temos uma planilha ou uma pasta de trabalho. Neste arquivo de exemplo, mostraremos somente
poucos dos eventos disponíveis e usaremos uma MsgBox como um filtro para demonstrar até onde um código
normal poderia chegar. Para obter mais informações sobre qualquer um desses ou outros eventos, clique no
assistente no VBE e use a palavra "evento" e o nome do objeto como sua palavra-chave (ex: eventos planilha).
BeforeDoubleClick
Um tipo bem conhecido de evento é o BeforeDoubleClick em uma planilha. Um exemplo bem simples teria a
seguinte aparência:
Este evento será iniciado sempre que o usuário clicar duas vezes em uma célula da planilha. O parâmetro
Target é passado para a macro para que o programador saiba que célula foi clicada duas vezes. O argumento
Cancel tem False como valor padrão mas pode ser alterado para True pelo código. Definindo Cancel como
True irá cancelar a ação padrão do evento. Neste caso, a ação padrão para o clique duplo em uma célula é
alternar para o modo de edição da célula. Já que Cancel foi definido como True, isso não ocorrerá. Se você
ainda desejar que a ação padrão seja executada, remova a linha Cancel=True.
Change
Outro evento útil é o Change em uma planilha. Sempre que o usuário informar um novo valor em uma célula,
este evento será iniciado.
Observação: Este evento não ocorre caso a planilha tenha acabado de ser recalculada. Existe um evento
chamado Calculate que será iniciado quando a planilha é recalculada.
BeforeClose
Um evento útil relacionado à pasta de trabalho é BeforeClose. Esse evento pode ser usado para executar
tarefas "de limpeza" antes que um arquivo seja salvo ou fechado.
Neste exemplo, o usuário é avisado que o arquivo será fechado, independentemente do arquivo ter sido salvo
ou não.
Usando eventos com objetos de Aplicativos
Antes que seja possível usar eventos com objeto Application, você deve criar um novo módulo classe e
declarar um objeto com tipo Application com a palavra-chave WithEvents. Por exemplo, assuma que um novo
módulo classe tenha sido criado e denominado EventClassModule. O novo módulo classe possui o seguinte
código.
Após o novo objeto ter sido declarado com seus eventos, ele é exibido na caixa de listagem drop-down no
módulo classe e você pode escrever procedimentos de evento para o novo objeto. Ao selecionar o novo objeto
na caixa Objeto, os eventos válidos para aquele objeto serão relacionados na caixa de listagem suspensa
Procedimentos.
Entretanto, antes que os novos procedimentos sejam executados, você deve conectar o objeto declarado no
módulo classe com o objeto Application. Para tal, você pode usar o seguinte código, em qualquer módulo.
Sub InitializeApp()
Set X.App = Application
End Sub
Após executar o InicializeApp, o objeto App no módulo classe aponta para o objeto do Aplicativo Microsoft
Excel e os procedimentos do evento no módulo classe serão executados quando ocorrer o evento.
Observação: Para obter mais informações sobre todos os eventos, consulte o arquivo de ajuda do VBA.
Automação
A Automação é um recurso do Component Object Model (COM, modelo de objeto componente), uma tecnologia que
os aplicativos utilizam para expor seus objetos a ferramentas de desenvolvimento, linguagens de macro e outros
aplicativos que suportem Automação. Por exemplo, um aplicativo de planilha eletrônica pode expor uma planilha,
gráfico, célula ou intervalo de células, cada um como um tipo diferente de objeto. Um processador de texto pode
expor objetos, como, por exemplo, um aplicativo, um documento, um parágrafo, uma frase, um marcador ou uma
seleção. Os exemplos a seguir demonstram como automatizar tarefas entre o Microsoft Excel e outros aplicativos
Microsoft.
Para obter mais informações sobre Automação, consulte Compreendendo a automação na ajuda do VBA.
MICROSOFT ACCESS
Este exemplo retorna a localização dos bancos de dados de exemplo do Microsoft Access.
Sub MS_Access()
Dim AccDir As String
Dim acc As Object Ir
Ir para
para código
'Automação OLE para o Access automação
automação
Set acc = CreateObject("access.application") MS_Access
'Retorna o caminho para msaccess.exe
AccDir = acc.SysCmd(Action:=acSysCmdAccessDir)
'Exibe o caminho
MsgBox "O arquivo MSAccess.exe está localizado em " & AccDir
'Libera o espaço de armazenamento da variável
Set acc = Nothing
End Sub
MICROSOFT WORD
Este exemplo copia o gráfico da planilha Rótulos de gráficos para um novo documento do Microsoft Word.
Sub MS_Word()
Dim wd As Object
'Cria uma sessão do Microsoft Word
Set wd = CreateObject("word.application")
'Copia o gráfico na planilha Rótulos de gráficos
Worksheets("Rótulos de gráficos").ChartObjects(1).Chart.ChartArea.Copy
Ir
Ir para
para código
código
'Torna o documento visível
automação
automação
wd.Visible = True
MS_Word
MS_Word
'Ativa o Microsoft Word
AppActivate wd.Name
With wd
'Cria um novo documento no Microsoft Word
.Documents.Add
'Insere um parágrafo
.Selection.TypeParagraph
'Cola o gráfico
.Selection.PasteSpecial link:=True, DisplayAsIcon:=False, Placement:=wdInLine
End With
Set wd = Nothing
End Sub
MICROSOFT POWERPOINT
Este exemplo copia um gráfico da planilha Rótulos de gráficos para uma nova apresentação do PowerPoint.
Sub MS_PowerPoint()
Dim ppt As Object, pres As Object
'Cria uma sessão do Microsoft PowerPoint
Set ppt = CreateObject("powerpoint.application")
'Copia o gráfico na planilha Demonstração de rótulos de gráficos
Worksheets("Rótulos de gráficos").ChartObjects(1).Copy
Ir
Ir para
para código
código
'Cria um novo documento no Microsoft PowerPoint
automação
automação
Set pres = ppt.Presentations.Add MS_Powerpoint
MS_Powerpoint
'Adiciona um slide
pres.Slides.Add 1, ppLayoutBlank
'Torna o PowerPoint visível
ppt.Visible = True
'Ativa o PowerPoint
AppActivate ppt.Name
'Cola o gráfico
ppt.ActiveWindow.View.Paste
Set ppt = Nothing
End Sub
MICROSOFT OUTLOOK
Este exemplo cria e adiciona informações a uma nova tarefa do Outlook. Execute o Outlook e clique em Tarefas na
barra do Outlook para exibir a nova tarefa.
OBSERVAÇÃO: Pode levar alguns minutos para que a tarefa seja exibida.
Sub MS_Outlook()
'Para este exemplo, clique em Referências no menu Ferramentas e Ir para
para código
Irselecione automação
códigoas
automação
'bibliotecas de objetos do Microsoft Outlook 9.0. MS_Outlook
MS_Outlook
Dim ol As Object, myItem As Object
'Cria uma sessão do Microsoft Outlook
Set ol = CreateObject("outlook.application")
'Cria uma tarefa
Set myItem = ol.CreateItem(olTaskItem)
'Adiciona informações à nova tarefa
With myItem
.Subject = "Nova tarefa do VBA"
.Body = "Esta tarefa foi criada através da Automação do Microsoft Excel"
.NoAging = True
.Close (olSave)
End With
'Remove objetos da memória
Set ol = Nothing
End Sub
ADO (Objetos de dados ActiveX)
ActiveX Data Objects (ADO, objetos de dados ActiveX) permite a manipulação
direta de um banco de dados. Vários exemplos que ilustram tarefas comuns do
banco de dados estão incluídos nesta pasta de trabalho.
Sub RetrieveISAMdata()
'' OBSERVAÇÃO: Esta sub-rotina requer que você faça referência à
''' última versão da seguinte biblioteca:
'''
'' Biblioteca do Microsoft ActiveX Data Objects
With conn
'Atribui a seqüência de conexão ao objeto de conexão.
.ConnectionString = "DRIVER={Microsoft dBase Driver (*.dbf)};" & _
"DBQ=" & PathToDatabase & ";" & _
"DefaultDir=" & PathToDatabase & "\"
' Abre a conexão.
.Open strConn
End With
With rst
' Conecta este conjunto de registros à conexão aberta anteriormente.
.ActiveConnection = conn
' Recupera todos os registros da tabela Clientes.
.Open "SELECT * FROM customers"
End With
Este exemplo usa ADO para criar uma consulta com base em duas tabelas no
banco de dados Northwind.mdb. Esse exemplo requer que o arquivo
Northwind.mdb esteja instalado no computador.
Sub RetrieveAccessData()
'' OBSERVAÇÃO: Esta sub-rotina requer que você faça referência à
''' última versão da seguinte biblioteca:
'''
'' Biblioteca do Microsoft ActiveX Data Objects
Sub ListTables()
'' OBSERVAÇÃO: Esta sub-rotina requer que você faça referência à
''' última versão da seguinte biblioteca:
'''
'' Biblioteca do Microsoft ActiveX Data Objects
Sub ListFields()
'' OBSERVAÇÃO: Esta sub-rotina requer que você faça referência à
''' última versão da seguinte biblioteca:
'''
'' Biblioteca do Microsoft ActiveX Data Objects
Sub CreateTable()
'' OBSERVAÇÃO: Esta sub-rotina requer que você faça referência às
''' última versão das seguintes bibliotecas:
'''
'' Biblioteca do Microsoft ActiveX Data Objects
'' Microsoft ADO Ext. 2.5 para DDL e segurança
With conn
' Define o provedor OleDB para a conexão.
.Provider = "Microsoft.JET.OLEDB.4.0"
' Abre uma conexão com o Northwind.mdb.
.Open Application.Path & "\samples\northwind.mdb"
End With
With rst
.ActiveConnection = conn
' Abre a nova tabela. O argumento LockType do método
' Open deve ser definido para adLockOptimistic de modo que
' sejam adicionados registros à tabela.
.Open "TabelaDeVendas", LockType:=adLockOptimistic
End With
rst.Close
Set tbl = Nothing
Set cat = Nothing
conn.Close
End Sub
Interceptando erros ADO
Sub Trap_ADO_Errors()
'' OBSERVAÇÃO: Esta sub-rotina requer que você faça referência à
''' última versão da seguinte biblioteca:
'''
'' Biblioteca do Microsoft ActiveX Data Objects