Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

Views

VBA Access - Excluindo fontes de dados conectadas.

Quando criamos aplicações de automação com o MS Access não é raro precisarmos efetuar conexões em diversas bases de dados como: planilhas MS Excel, arquivos Texto, ou outras tabelas MS Access, sites da Web, etc...

Essas conexões geralmente precisam ser refeitas e/ou excluídas. Como fazê-lo?

Demonstro abaixo, parte de códigos com variantes para aplicar ao seu gosto...Boa diversão!

Esta primeira função é muito rápida, ela checa se o objeto que desejamos excluir está disponível para deleção:

CÓDIGO: 

Function CheckExistTbl(tblName As String) As Integer
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             09/11/2010 09:45    bernardess@gmail.com     https://sites.google.com/site/vbabernardes/
    ' Application: 
    ' Detecta a tabela e a deleta.

    Dim i As Integer ' Counter.
    
    Let CheckExistTbl = False

    For i = 0 To CurrentData.AllTables.Count - 1

        If CurrentData.AllTables(i).Name = tblName Then
            Let CheckExistTbl = True
        End If
    
    Next i
End Function



Por exemplo: 

CÓDIGO: 

If CheckExistTbl(strConectionTbl01) Then
   DoCmd.DeleteObject acTable, strConectionnTbl01
Endif



Abaixo demonstro uma das inúmeras técnicas para se conectar dados à sua aplicação MS Access, neste caso efetuo conexões a outras bases MS Access.

CÓDIGO: 

Function ConectAll(nBase As String, strConection As String)
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             09/11/2010 09:31    bernardess@gmail.com     https://sites.google.com/site/vbabernardes/
    ' Application: 
    ' Efetua as conexões.

    Dim dbsTemp As Database
    Dim strMenu As String
    Dim strInput As String
    Dim nTbl01 As String
    Dim nTbl02 As String
    Dim nTbl03 As String

    ' Tabelas
    nTbl01 = "tbl_01x"
    nTbl02 = "tbl_02y"
    nTbl03 = "tbl_03k"

    Set dbsTemp = CurrentDb

    ' Deleta os objetos pré-existentes.
    If CheckExistTbl(strConection & nTbl01) Then
        Call Banner("Desconectando tabela:" & strConection & nTbl01)
        DoCmd.DeleteObject acTable, strConection & nTbl01

        Call Banner("Desconectando tabela:" & strConection & nTbl02)
        DoCmd.DeleteObject acTable, strConection & nTbl02

        Call Banner("Desconectando tabela:" & strConection & nTbl03)
        DoCmd.DeleteObject acTable, strConection & nTbl03
    End If

    ' Conecta o grupo de tabelas respectivas ao mês de análise.
    Call Banner("Conectando a tabela: " & strConection & nTbl01)
    ConnectOutput dbsTemp, strConection & nTbl01, ";DATABASE=" & nBase, nTbl01

    Call Banner("Conectando a tabela: " & strConection & nTbl02)
    ConnectOutput dbsTemp, strConection & nTbl02, ";DATABASE=" & nBase, nTbl02

    Call Banner("Conectando a tabela: " & strConection & nTbl03)
    ConnectOutput dbsTemp, strConection & nTbl03, ";DATABASE=" & nBase, nTbl03
End Function



Perceba no código acima a utilização das funções explanadas anteriormente.

Abaixo observaremos a simples e suave conexão da fonte de dados com o banco de dados atual:

CÓDIGO: 

Sub ConnectOutput(dbsTmp As Database, strTbl As String, strConnect As String, strSourceTbl As String)
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             09/11/2010 08:01    bernardess@gmail.com     https://sites.google.com/site/vbabernardes/
    ' Application:
    ' Efetua as conexões.

    Dim tblLinked As TableDef

    Set tblLinked = dbsTmp.CreateTableDef(strTbl)

    Let tblLinked.Connect = strConnect
    Let tblLinked.SourceTableName = strSourceTbl

    dbsTmp.TableDefs.Append tblLinked
End Sub



Outra técnica também eficiente, seria utilizar o código abaixo:

CÓDIGO: 

    Dim d_b As Database

    On Error GoTo ProcessingErrorMsg:

    Set d_b = CurrentDb()

    d_b.TableDefs.Delete "tbl_Bernardes"

    Exit Sub

ProcessingErrorMsg:

    Select Case Err.Number
             Case 3265 'Table
                    Resume Next
             Case Else
                    MsgBox Err.Number & " - Descrição: " & Err.Description, vbExclamation, Err.Source
    End Select


Veja também:

Fórum INFO - INFO Online
Como posso desanexar uma tabela, via VBA, do MS Access?
http://info.abril.com.br/forum-antigo/topicos.php?area=119&go_to=1

VBA DAO Error List - Mais de 800 erros e suas descrições
http://info.abril.com.br/forum/viewtopic.php?t=5658

Como posso desanexar uma tabela, via VBA, do MS Access?
http://info.abril.com.br/forum-antigo/topicos.php?area=119&go_to=1

BRAZIL MICROSOFT ACCESS DEVELOPER
VBA Access - Removendo campos
http://brzaccessdeveloper.blogspot.com/2009/11/vba-access-removendo-campos.html

Função para saber se existe
http://inanyplace.blogspot.com/2009/11/vba-access-funcao-para-saber-se-existe.html


André Luiz Bernardes

A&A® - Work smart, not hard.

VBA Documentation: MS Access - Documentando os objetos de uma aplicação MS Access.

VBA Access - Documentando Objetos da Aplicação MS Access - Code Documenter


ACESSE AO CÓDIGO ATUALIZADO PARA TODAS AS VERSÕES AQUI.


Envie seus comentários e sugestões e compartilhe este artigo!

brazilsalesforceeffectiveness@gmail.com

✔ Brazil SFE®✔ Brazil SFE®´s Facebook´s Profile  Google+   Author´s Professional Profile  ✔ Brazil SFE®´s Pinterest       ✔ Brazil SFE®´s Tweets

VBA Access - Ordenando a propriedade de um RecordSet.

De vez em quando é necessário que re-organizemos o modo como o nosso
Recordset será ordenado, isso após termos definido a string SQL.
 
Bem, isso pode ser implementado mesmo após este momento como poderá ver abaixo:
 
Sub SortRecordset()
    Dim intCounter As Integer
    Dim rst As ADODB.Recordset
    Set rst = New ADODB.Recordset

    Let rst.ActiveConnection = CurrentProject.Connection
    Let rst.CursorLocation = adUseClient
    rst.Open "Select * from tbl_Bernardes"

    Debug.Print "Sem ordenação."

    Do Until rst.EOF
        Debug.Print rst("BernardesID")
        rst.MoveNext
    Loop

    Debug.Print "Ordenado."
    Let rst.Sort = "[BernardesID]"
    Do Until rst.EOF
        Debug.Print rst("BernardesID")
        rst.MoveNext
    Loop

    rst.Close
    Set rst = Nothing
End Sub


André Luiz Bernardes
A&A® - Work smart, not hard.


Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode usar, copiar ou divulgar as informações nela contidas ou tomar qualquer ação baseada nessas informações. Se você recebeu esta mensagem por engano, por favor avise imediatamente o remetente, respondendo o e-mail e em seguida apague-o. Agradecemos sua cooperação.

VBA Access - Propriedades de uma consulta - Query´s Properties - Propriedade SourceConnectStr e SourceDatabase

Outra propriedade importantíssima para compreendermos o conteúdo e mesmo como parametrizá-la é a SourceConnectStr e SourceDatabase

Propriedades.jpg

Propriedades SourceConnectStr e SourceDatabase

Podemos utilizar essas propriedades para acessar dados externos quando não pudermos vincular tabelas externas a seu banco de dados.

A propriedade SourceConnectStr especifica o nome do aplicativo utilizado para criar um banco de dados externo (banco de dados externo: a origem da tabela a ser vinculada ao banco de dados atual ou para ele importada, ou o destino de uma tabela a ser exportada.)

A propriedade SourceDatabase especifica o banco de dados externo no qual residem as consultas ou tabelas de origem de uma consulta. 

Observação 
As propriedades SourceConnectStr e SourceDatabase aplicam-se a todas as consultas, exceto as de definição de dados (consulta de definição de dados: uma consulta SQL específica que contém instruções DDL. Essas instruções permitem criar ou alterar objetos no banco de dados.), passagem (consulta passagem: uma consulta específica de SQL usada para enviar comandos diretamente para um servidor de banco de dados ODBC. Usando consultas passagem, você trabalha diretamente com as tabelas no servidor, e não com o mecanismo de banco de dados Microsoft Jet para processar os dados.) e união (consulta união: uma consulta que usa o operador UNIÃO para combinar os resultados de duas ou mais consultas seleção.)

Configuração
Utilizamos uma expressão de seqüência de caracteres (expressão de seqüência de caracteres: uma expressão avaliada como uma seqüência de caracteres contíguos. Os elementos da expressão podem incluir: funções que retornam uma seqüência ou uma seqüência Variant (VarType 8); uma seqüência literal, constante, variável ou Variant.) para definir o valor das propriedades SourceConnectStr e SourceDatabase.

Você pode definir essas propriedades na folha de propriedades da consulta ou no modo SQL (modo SQL: uma janela que exibe a instrução SQL da consulta atual ou é usada para criar uma consulta específica de SQL (união, passagem ou definição de dados). Quando você cria uma consulta no modo Design, o Access cria o equivalente SQL no modo SQL.) da janela Consulta (janela Consulta: uma janela na qual você trabalha com consultas no modo Design, Folha de Dados, SQL ou de Visualizar Impressão.). Na instrução SQL (seqüência/instrução SQL: uma expressão que define um comando SQL, como SELECT, UPDATE ou DELETE, e inclui cláusulas como WHERE e ORDER BY. As seqüências/instruções SQL são normalmente usadas em consultas e funções agregadas.), as propriedades correspondem à cláusula IN.


Observação 
Se você estiver acessando várias origens de bancos de dados, utilize a propriedade Source em vez das propriedades SourceConnectStr e SourceDatabase

Comentários
Devemos utilizar as propriedades SourceConnectStr e SourceDatabase para acessar tabelas de banco de dados externas que foram criadas em aplicativos que não utilizam tabelas vinculadas (tabela vinculada: uma tabela armazenada em um arquivo fora do banco de dados aberto na qual o Access pode acessar registros. Você pode adicionar, excluir e editar registros em uma tabela vinculada, mas não pode alterar sua estrutura.).

Seguem exemplos das configurações dessas propriedades:

Para um banco de dados do Microsoft Access, a configuração da propriedade SourceDatabase é o caminho e o nome do banco de dados (por exemplo, C:\Contas\Clientes). O Microsoft Access adiciona automaticamente a extensão de nome de arquivo. A propriedade SourceConnectStr não tem um valor para um banco de dados Microsoft Access.

Para um banco de dados criado por um produto como o Paradox, a configuração da propriedade SourceDatabase é o caminho (por exemplo, C:\Pdoxdata). A configuração da propriedade SourceConnectStr é o especificador para o tipo do banco de dados (por exemplo, Paradox 3.x;). Para obter uma lista de especificadores, consulte a propriedade Connect do DAO.
 
O exemplo a seguir utiliza tabelas do dBASE IV no diretório C:\Dbdata como fonte de dados para a consulta:

SELECT 
Customer.COMPANYNAM, 
Orders.ORDERID, 
Orders.ORDERDATE
FROM 
Customer 
INNER JOIN 
Orders
ON 
Customer.CUSTOMERID = Orders.CUSTOMERID
IN 
'C:\Dbdata'[dBASE IV;]; 

Para um banco de dados ODBC (ODBC (Conectividade Aberta de Banco de Dados): um método padrão de compartilhamento de dados entre bancos de dados e programas. Os drivers ODBC usam SQL para obter acesso a dados externos. (Open Database Connectivity), a configuração da propriedade SourceConnectStr é o nome do banco de dados de origem e qualquer informação adicional necessária ao produto, tal como senha e identificação de logon (ID). Por exemplo, para um banco de dados Microsoft SQL Server, a configuração poderia ser: 
ODBC;DSN=salessrv;UID=jace;PWD=password;DATABASE=sales; 

A propriedade SourceDatabase não tem um valor para um banco de dados ODBC.


André Luiz Bernardes
A&A - WORK, DON´T PLAY!
http://al-bernardes.sites.uol.com.br/
bernardess@gmail.com

Twitter: @officespecialis
            @brzexceldevelop
            @brzaccessdevel

VBA Access - Propriedades de uma consulta - Query´s Properties - Propriedade Description

É muito importante saber configurar as propriedades de uma consulta. Geralmente as deixamos a esmo e isso pode impactar até mesmo na performance desta.

Abaixo descrevo cada uma das opções da versão do MS Access 2007, aproveite:

Propriedades.jpg

Propriedade Description
Podemos utilizar a propriedade Description para fornecer informações sobre os objetos contidos na janela Banco de dados (janela Banco de Dados: a janela que aparece quando você abre um banco de dados ou projeto do MS Access. Ela exibe atalhos para criar novos objetos de banco de dados e abrir objetos existentes.), bem como sobre campos de tabela ou consulta individuais.

Configuração
Para um objeto de banco de dados, clique em Propriedades no menu Exibir e insira o texto descritivo na caixa Descrição. Para tabelas ou consultas, você também pode inserir a descrição na folha de propriedades (folha de propriedades: uma janela usada para exibir ou modificar as propriedades de diversos objetos como tabelas, consultas, campos, formulários, relatórios, páginas de acesso a dados e controles.) da tabela ou da consulta. A descrição de um objeto aparece próximo ao nome do objeto na janela Banco de dados, quando você clica em Detalhes no menu Exibir.

Para campos de tabela ou consulta individuais, digite a descrição do campo na parte superior do modo de design da tabela (modo Design: uma janela que mostra o design destes objetos de banco de dados: tabelas, consultas, formulários, relatórios, macros e páginas de acesso a dados. No modo Design, você pode criar novos objetos de banco de dados e modificar o design dos existentes.) ou na folha de propriedades Propriedades do campo na janela Consulta (janela Consulta: uma janela na qual você trabalha com consultas no modo Design, Folha de Dados, SQL ou de Visualizar Impressão.). O comprimento máximo é de 255 caracteres.

No Visual Basic , para definir essa propriedade pela primeira vez em um projeto do Microsoft Access (projeto do Microsoft Access: um arquivo do Access que se conecta a um banco de dados do Microsoft SQL Server e é usado para criar aplicativos cliente/servidor. Um arquivo de projeto não contém dados ou objetos baseados em definição de dados, como tabelas e modos de exibição.) (.adp), você deve criar uma propriedade definida pelo aplicativo utilizando o método Add. Em um banco de dados do Microsoft Access (banco de dados: um conjunto de dados relacionados a um assunto ou objetivo em particular. Dentro de um banco de dados, as informações sobre uma entidade específica, como um funcionário ou pedido, são classificadas em tabelas, registros e campos.) (.mdb), você deve usar o método CreateProperty do DAO.

Comentários
A descrição de um objeto é exibida na coluna Descrição, no modo de exibição Detalhes da janela Banco de dados.

Se você criar um controle arrastando um campo da lista de campos (lista de campos: uma janela que lista todos os campos na fonte de registro ou no objeto de banco de dados subjacente, exceto no modo Design da página de acesso a dados. No modo da página de acesso a dados, a lista contém todas as fontes de registro e seus campos no banco de dados subjacente.), o Microsoft Access copiará a propriedade Description do campo para a propriedade StatusBarText do controle (controle: um objeto da interface gráfica do usuário, como uma caixa de texto, uma caixa de seleção, uma barra de rolagem ou um botão de comando, que permite a usuários controlar o programa. Você usa controles para exibir dados ou opções, executar uma ação ou facilitar a leitura da interface do usuário.).

Observação 
Para uma tabela vinculada (tabela vinculada: uma tabela armazenada em um arquivo fora do banco de dados aberto na qual o Access pode acessar registros. Você pode adicionar, excluir e editar registros em uma tabela vinculada, mas não pode alterar sua estrutura.), o Microsoft Access exibe as informações de conexão na propriedade Description

André Luiz Bernardes
A&A - WORK, DON´T PLAY!
http://al-bernardes.sites.uol.com.br/
bernardess@gmail.com

Twitter: @officespecialis
            @brzexceldevelop
            @brzaccessdevel

VBA Access - Comparação de tipos de dados.

Usar o tipo certo de definição de dados é importantíssimo, nada melhor do que detectar o tipo antes de desenvolver nossas soluções. Seguem referências da própria Microsoft:

O mecanismo de banco de dados do Microsoft Access reconhece diversos conjuntos de tipos de dados que se sobrepõem. No Microsoft Access, existem quatro contextos diferentes nos quais talvez seja necessário especificar um tipo de dados: no modo de design da tabela (modo Design: uma janela que mostra o design destes objetos de banco de dados: tabelas, consultas, formulários, relatórios, macros e páginas de acesso a dados. No modo Design, você pode criar novos objetos de banco de dados e modificar o design dos existentes.), na caixa de diálogo Parâmetros da Consulta, no Visual Basic e no modo SQL em uma consulta.

A tabela a seguir compara os cinco conjuntos de tipos de dados correspondentes a cada contexto. A primeira coluna lista as configurações da propriedade Type disponíveis no modo de design da tabela e as cinco configurações da propriedade FieldSize para o tipo de dados Número (tipo de dados Número: em um banco de dados do Microsoft Access, um tipo de dados de campo para dados numéricos que serão usados em cálculos matemáticos. Use o tipo de dados Moeda, entretanto, para exibir valores de unidade monetária.). A segunda coluna lista os tipos de dados de parâmetro de consulta disponíveis para estruturar consultas parâmetro (consulta parâmetro: uma consulta na qual um usuário especifica de maneira interativa um ou mais valores de critérios. Uma consulta parâmetro não é um tipo separado de consulta; na verdade, aumenta a flexibilidade de uma consulta.) na caixa de diálogo Parâmetros da consulta. A terceira coluna lista os tipos de dados correspondentes do Visual Basic. A quarta coluna lista tipos de dados do objeto Field (DAO). A quinta coluna lista os tipos de dados SQL do mecanismo de banco de dados do Access correspondentes definidos por esse mecanismo, juntamente com os seus sinônimos válidos.

Campos de tabela Parâmetros da consulta Visual Basic Constantes da propriedade Tipo de dados ADO SQL do mecanismo de banco de dados do Microsoft Access e sinônimos
Sem suporte Binário Sem suporte adBinary BINARY (consulte Observações)
(Sinônimo: VARBINARY)
Sim/Não Sim/Não Boolean (Booleano: uma expressão que pode ser avaliada como verdadeira (diferente de zero) ou falsa (0). Você pode usar as palavras-chave Verdadeiro e Falso para fornecer os valores de -1 e 0, respectivamente. O tipo de dados de campo Sim/Não é booleano e tem o valor de -1 para Sim.) adBoolean BOOLEAN
(Sinônimos: BIT, LOGICAL, LOGICAL1, YESNO)
Número
(Tamanho do campo = Byte)
Byte Byte (tipo de dados Byte: um tipo de dados do banco de dados do Access usado para armazenar números inteiros positivos pequenos no intervalo de 0 a 255.) adUnsignedTinyInt BYTE
(Sinônimo: INTEGER1)
AutoNumeração
(Tamanho do campo=

Inteiro longo)

Inteiro longo Long (tipo de dados Longo: um tipo de dados básico que contém inteiros grandes. A variável Long é armazenada como um número de 32 bits no intervalo de - 2.147.483.648 a 2.147.483.647.) adInteger COUNTER
(Sinônimo: AUTOINCREMENT)
Moeda Moeda Currency (tipo de dados Unidade Monetária: em um banco de dados do Microsoft Access, um tipo de dados útil para cálculos que envolvam moeda ou para cálculos de ponto fixo nos quais a precisão é extremamente importante.) adCurrency CURRENCY
(Sinônimo: MONEY)
Data/hora Data/hora Date (tipo de dados Data/Hora: tipo de dados do banco de dados do Access usado para armazenar informações de data e hora.) adDate DATETIME
(Sinônimos: DATE, TIME, TIMESTAMP)
Número
(Tamanho do campo =
Duplo)
Duplo Double (tipo de dados Duplo: um tipo de dados básico que contém números de ponto flutuante de dupla precisão. É armazenado como um número de 64 bits e seu intervalo de valores vai de aproximadamente -1,797E308 a -4,940E-324 (negativo), de 4,94E-324 a 1,797E308 (positivo) e 0.) adDouble DOUBLE
(Sinônimos: FLOAT, FLOAT8, IEEEDOUBLE, NUMBER, NUMERIC)
AutoNumeração/GUID

(Tamanho do campo =
Código de replicação)

Código de replicação Sem suporte adGUID GUID
Número
(Tamanho do campo =
Inteiro longo)
Inteiro longo Long adInteger LONG (Consulte Observações)
(Sinônimos: INT, INTEGER, INTEGER4)
Objeto OLE Objeto OLE String (tipo de dados Seqüência: um tipo de dados básico que contém caracteres, um caractere por 2 bytes. Uma seqüência de comprimento fixo pode conter de 1 a 64 K de caracteres; uma seqüência de comprimento variável pode conter de 1 a 2 bilhões.) adLongVarBinary LONGBINARY
(Sinônimos: GENERAL, OLEOBJECT)
Memo Memo String adLongVarWChar LONGTEXT
(Sinônimos: LONGCHAR, MEMO, NOTE)
Número
(Tamanho do campo =
Simples)
Simples Single (tipo de dados Simples: um tipo de dados que armazena variáveis de ponto flutuante de dupla precisão como 32 bits (4 bytes) no intervalo de -3,402823E38 a -1,01298E-45 para valores negativos e 1,401298E-45 a 3,402823E38 para valores positivos.) adSingle SINGLE
(Sinônimos: FLOAT4, IEEESINGLE, REAL)
Número
(Tamanho do campo =
Inteiro)
Inteiro Integer (tipo de dados Inteiro: um tipo de dados fundamental que contém números inteiros. Uma variável Integer é armazenada como um número de 16 bits (2 bytes) no intervalo de -32.768 a 32.767.) adSmallInt SHORT (consulte Observações)
(Sinônimos: INTEGER2, SMALLINT)
Texto Texto String adVarWChar TEXT
(Sinônimos: ALPHANUMERIC, CHAR, CHARACTER, STRING, VARCHAR)
Hiperlink Memo String adLongVarWChar LONGTEXT
(Sinônimos: LONGCHAR, MEMO, NOTE)
Sem suporte Valor Variant (tipo de dados Variante: o tipo de dados padrão para variáveis que não têm caracteres de declaração de tipo quando uma instrução Deftipo não está sendo usada. Um Variante pode armazenar dados numéricos, seqüências de caracteres, data/hora, valores Nulo ou dados Vazio.) adVariant VALUE (consulte Observações)

  Observações
  • O Microsoft Access propriamente não utiliza o tipo de dados BINARY. Esse tipo é reconhecido somente para utilização em consultas a tabelas vinculadas provenientes de outros produtos de banco de dados que oferecem suporte ao tipo de dados BINARY.
  • O tipo de dados INTEGER no SQL do mecanismo de banco de dados do Access não corresponde ao tipo de dados Integer para campos de tabela, parâmetros de consulta ou Visual Basic. Em vez disso, no SQL, o tipo de dados INTEGER corresponde a um tipo de dados Long Integer para campos de tabela e parâmetros de consulta e a um tipo de dados Long no Visual Basic.
  • A palavra reservada VALUE não representa um tipo de dados definido pelo mecanismo de banco de dados do Access. Entretanto, em consultas do Microsoft Access ou do SQL, a palavra reservada VALUE pode ser considerada um sinônimo válido para o tipo de dados Variant do Visual Basic.
  • Se você estiver definindo o tipo de dados para um objeto DAO (DAO (Objetos de Acesso a Dados): uma interface de acesso a dados que se comunica com o Microsoft Jet e com fontes de dados compatíveis com ODBC para se conectar, recuperar, manipular e atualizar dados e a estrutura do banco de dados.) em código do Visual Basic, terá que configurar a propriedade Type do objeto.
© 2006 Microsoft Corporation. Todos os direitos reservados.

Tabela ASC II - American Standard Code for Information Interchange

A Tabela ASCII (American Standard Code for Information Interchange) é usada pela maior parte da indústria de computadores para a troca de informações.

Cada caracter é representado por um código de 8 bits (um byte).

Abaixo mostramos a tabela ASCII de 7 bits.

asciifull.gif

Há uma tabela extendida para 8 bits que inclue os caracteres acentuados.

extend.gif

ODBC - O que é ? What´s ODBC ?

Veja também:| Blog Office VBA | Blog Excel | Blog Access    |
 
Introdução
O ODBC (Open Database Connectivity) é um padrão aberto de API (Application Programming Interface) para acesso a Banco de Dados.

Em 1992, a Microsoft contratou a Simba para construir o primeiro driver ODBC do mundo; SIMBA.DLL, e então os acessos padronizados à bases de dados comuns nasceu.

Ao usar declarações (statements) ODBC numa aplicação ou sistema, poderá acessar arquivos em diferentes bases de dados. Além do software ODBC, um módulo separado ou driver é necessário para cada banco de dados acessado, geralmente este é distribuido pelos desenvolvedores do Banco de Dados (Oracle, DB2, Informix, SQL Server, My SQL, Paradox, etc).

História
A Microsoft introduziu este padrão 1992. O ODBC foi um padrão desenvolvido com o propósito de unificar o acesso às bases de dados SQL.

Seguindo o sucesso do ODBC, A Microsoft introduziu o OLE DB que era um padrão mais amplo de acesso aos dados. Este ia além dos bancos de dados SQL, estendendo-se a qualquer fonte de dados que fornecesse dados em formato tabular.

O plano da Microsoft era o de que o OLE DB suplantaria o ODBC como o padrão mais comum de acesso a dados. Mais recentemente, a Microsoft introduziu o padrão de acesso a dados ADO.

O ADO deveria ir ainda mais longe do que o OLE DB. devido ao ADO ser orientado a objeto, no entanto, mesmo com as exaustivas tentativas  da Microsoft para substituir o padrão ODBC com o que considerava "melhores" alternativas, o ODBC continua a ser o padrão de acesso a dados de fontes  SQL.

De fato, hoje o padrão ODBC é mais comum do que o OLE DB e do que o ADO porque o ODBC é mais amplamente suportado (incluindo suporte da Oracle e IBM), interpolando plataformas padrões de acesso a dados.


Visão Geral
O ODBC, de fato, tornou-se o padrão para bases de dados relacionais e não relacionais (SGBD).

A Simba trabalhou em estreita colaboração com a Microsoft para co-desenvolver o padrão ODBC no início dos anos 90. O padrão ODBC permite o máximo de interoperabilidade propiciando assim que os desenvolvedores de aplicativos escrevamr um único pedido de acesso a fontes de dados para diferentes fornecedores. ODBC é baseado no Call-Level Interface (CLI) especificações do Open Group e ISO / IEC para APIs de banco de dados e usa Structured Query Language (SQL) como sua linguagem de acesso a banco de dados.


Arquitetura ODBC
odbcjdbcst.gif


Ativando aplicação ODBC
Trata-se de qualquer aplicação compatível com ODBC, como o Microsoft Excel, o Crystal Reports, Microsoft Access, ou algo semelhante (planilha, processador de texto, acesso a dados e Retrievable Tool, etc.) O aplicativo ODBC habilitado executa o processamento, passando instruções SQL recebendo os do driver gerenciador de ODBC.

ODBC Driver Manager
O gerenciador de Drivers ODBC carrega e descarrega drivers ODBC no nome de um aplicativo.

A plataforma Windows vem com um gerenciador de driver padrão, enquanto plataformas não-Windows têm a opção de usar um open source ODBC Driver Manager como o unixODBC e iODBC ou um gestor de controladores ODBC comercial. O gerenciador de de Drivers ODBC processa chamadas de função ODBC, ou passa-as para um driver ODBC resolvendo quaisquer conflitos de versão do ODBC.



Driver ODBC
O driver ODBC processa as chamadas de função ao ODBC, submete pedidos SQL para uma fonte de dados específica e retorna resultados para a aplicação.

O driver ODBC pode também modificar uma solicitação  da aplicação para que o pedido respeita a sintaxe suportada pelo banco de dados associado. Comercial drivers ODBC, ou uma estrutura para criar facilmente um driver ODBC, estão disponíveis de fabricantes como Simba Technologies.


Fonte de Dados
A fonte de dados consiste em dados que o usuário deseja acessar e seu sistema de gerenciamento de banco de dados.

InAnyPlace03.gif

VBA: Função que retorna idade.

|Blog Office VBA |Blog Excel |Blog Access |

Dashboards & Scorecards


Como retornar a idade a partir da data do Nascimento?

Public Function AnosdeIdade(ByVal datBirthDate As Date) As Integer

On Error GoTo PROC_ERR

Dim intYears As Integer

Let intYears = Year (Now) - Year (datBirthDate)

If DateSerial(Year(Now), Month(datBirthDate), Day(datBirthDate)) > Now Then
Let intYears = intYears - 1 ' Subtract a year if birthday hasn't arrived this year
End If

Let AnosdeIdade = intYears

PROC_EXIT:
Exit Function

PROC_ERR:
MsgBox "Erro: Nº" & Err.Number & ". " & Err.Description, , "AnosdeIdade"

Resume PROC_EXIT
End Function
Dash-006.jpg  Dash-018.jpg  Dash-028.jpg

LinkWithinBrazilVBAAccessSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine