VB .NET - Acesso ao Microsoft Access 2007 (.accdb)


Se você costuma  usar o banco de dados Microsoft Access deve ter percebido que na versão 2007 do pacote Office houve uma alteração no formato do tradicional arquivo de banco de dados .mdb; a extensão mudou para .accdb e não foi só isso...

Nota: veja também o meu artigo : Erro - 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

Quais as diferenças entre os formatos MDB e ACCDB ?

No Office Access 2007, o mecanismo de banco de dados Microsoft Jet  é a parte do sistema de banco de dados do Access que recupera e armazena dados em bancos de dados do usuário e do sistema, foi personalizado para os aplicativos do 2007 Microsoft Office System.

Esta versão do Jet, específica para o Office, chama-se Access Database Engine e permite integração com o Windows SharePoint Services 3.0 e o Microsoft Office Outlook 2007 e a criação de campos de pesquisa de valores múltiplos, entre outros aperfeiçoamentos.

Os novos recursos do formato ACCDB são:

Campos de pesquisa de valores múltiplos     A maioria dos programas de banco de dados, inclusive as versões anteriores do Access, permite armazenar um único valor em cada campo. No Office Access 2007, contudo, é possível criar um campo de pesquisa que permite armazenar mais de um valor em cada campo. Na realidade, o programa cria uma relação vários-para-vários dentro do campo e oculta os detalhes da implementação usando tabelas de sistema.

Tipo de dados Anexo     O novo tipo de dados Anexo permite que você armazene facilmente todos os tipos de documentos e arquivos binários em seu banco de dados sem o aumento desnecessário do banco de dados. Os anexos são automaticamente compactados quando apropriado para maximizar o uso do espaço. Você pode anexar um documento do Microsoft Office Word 2007 a um registro ou salvar uma série de imagens digitais. Você pode até mesmo ter vários anexos em um único registro.

Integração com o Windows SharePoint Services 3.0 e com o Microsoft Office Outlook 2007 : Antigamente, os arquivos do Access ficavam bloqueados no Windows SharePoint Services 3.0 e no Office Outlook 2007 devido à possibilidade de incluir códigos inseguros no banco de dados do Access. O Office Access 2007 implementa um novo formato que permite determinar se um código é seguro ou está desativado. Isso possibilita uma integração muito mais completa entre os bancos de dados do Access e o Windows SharePoint Services 3.0 e o Office Outlook 2007, além de permitir que programas antivírus inspecionem muito mais facilmente arquivos incluídos em bancos de dados do Access;

Trabalhar com dados do SharePoint offline : Você pode deixar as listas do SharePoint offline com um clique usando o Office Access 2007. Utilize seus dados no Access e sincronize suas alterações ou reconecte-se ao site do SharePoint posteriormente;

Rastreamento do histórico do campo Memorando    Os campos Memorando são úteis para armazenar grandes quantidades de informações. Iniciando com o Office Access 2007, você pode definir uma propriedade (AcrescentarSomente) que obriga o Access a manter um histórico de todas as alterações em um campo Memorando. Em seguida, você pode visualizar um histórico dessas alterações. Este recurso também suporta o recurso de controle de versão no Windows SharePoint Services 3.0 para que seja possível usar o Access para rastrear alterações em um campo Texto com várias linhas armazenado em uma lista do SharePoint (desde que o campo tenha a opção Acrescentar Alterações ao Texto Existente definida como Sim).

E como efetuar a conexão com um banco de dados no formato ACCDB usando o Visual Basic 2010 ?

Eu vou usar como exemplo um arquivo chamado Exemplo.accdb criado no MIcrosoft Access 2007 com a seguinte estrutura.

Vamos criar um novo projeto do tipo Windows Forms Application usando o Visual Basic 2010 Express Edition com nome AcessoOffice2007;

A seguir no formulário form1.vb vamos incluir um controle DataGridView;

A seguir no menu Data-> Add New Data Source;

Selecione o item DataBase e a seguir clique em Next;

Na próxima janela clique no botão New Connection e a seguir na janela Add Connection clique no botão Change;

Altere o Data Source para Microsoft Access DataBase File e clique em OK;

A seguir clique em Browse e localize onde esta o banco de dados clicando em OK para encerrar;

A seguir clique em Next> duas vezes e selecione a tabela Login do banco de dados e clique em FInish;

A string de conexão será criada no arquivo App.config conforme a figura abaixo:

<connectionStrings>

<add name="AcessoOffice2007.My.MySettings.ExemploConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Exemplo.accdb"

providerName="System.Data.OleDb" />

</connectionStrings>

 

A string de conexão para acesso em uma pasta local é:

 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\teste\Teste.accdb;Persist Security Info=False;

E se o banco de dados possuir uma senha a string de conexão ficará assim:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\teste\Teste.accdb;Jet OLEDB:Database Password=Senha;

O DataSet será criado e estará pronto para ser usado. Vamos exibir a janela Data Source e em seguida selecionar a DataSet Login e arrastar para o formulário form1.vb;

Serão criados os componentes : ExemploDataSet, LOGINBIndingSource, LOGINTableAdapter , TableAdapter e LOGINBindingNavigator;

Selecione o LOGINBindingNavigator e na janela de propriedades defina a propriedade Dock como igual a None para poder arrastar o componente colocando logo abaixo do DataGridView;

Agora só resta executar o projeto...

A execução no Visual Studio 2010 ou no Visual Basic 2010 Express Edition deverá ocorrer sem problemas:

Se você estiver usando o Visual Basic 2008 ou o Visual Studio 2008  poderá receber a mensagem de erro:

"The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine."

Verifique os seguintes itens:

Se você esta usando o VS Studio 2010 e/ou sua máquina é X64 ?

Então verifique se:

Se você já fez tudo isso e o erro persiste então vamos tentar outra solução...

Para resolver o problema você pode fazer seguinte:

Isso deve resolver ...

Eu sei é apenas , mas eu gosto...

Referências:
 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti