Com senha de banco de dados usando Microsoft ACE OLEDB 12.0

Exemplo de string de conexão com Access usando Microsoft ACE OLEDB 12.0

Exemplo de string de conexão

Essa é uma string de conexão do provider Microsoft ACE OLEDB 12.0 para se conectar com Access 2013, Access 2010 ou Access 2007.

Com senha de banco de dados

Esta é a string de conexão a ser usada quando você tem um banco de dados Access 2007 - 2013 protegido com uma senha usando a função "Definir Senha do Banco de Dados" no Access.

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

Alguns relatos de problemas com senhas maiores que 14 caracteres. Também há relatos de que alguns caracteres podem causar problemas. Se você estiver tendo problemas, tente alterar a senha para uma mais curta com caracteres normais.

Atenção! Relatos indicam que um banco de dados criptografado usando o esquema de criptografia padrão do Access 2010 - 2013 não funciona com esta string de conexão. No Access; tente opções e escolha o método de criptografia 2007. Isso deve funcionar. Não conhecemos outra solução. Entre em contato se outra solução estiver disponível!

Conexão através de diferentes linguagens

C#

Exemplo de código em C# de conexão com Access usando Microsoft ACE OLEDB 12.0:

using System;
using System.Data.OleDb;

class DatabaseConnection {
    static void Main() {
        // Define a string de conexão Access usando Microsoft ACE OLEDB 12.0
        string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Diretorio\\Arquivo.accdb;Jet OLEDB:Database Password=Senha;";

        using (OleDbConnection connection = new OleDbConnection(connectionString)) {
            try {
                // Abre a conexão
                connection.Open();

                Console.WriteLine("Conexão aberta com sucesso!");

                //
                // INSIRA SEU CÓDIGO AQUI
                //

            } catch (OleDbException ex) {
                // Erros específicos do OleDbException
                Console.WriteLine("Erro: " + ex.Message);
            } catch (Exception ex) {
                // Outros erros
                Console.WriteLine("Erro: " + ex.Message);            
            } finally {
                // Fecha a conexão
                if (connection != null) {
                    connection.Close();
                    Console.WriteLine("Conexão fechada.");
                }
            }
        }
    }
}

Se estiver usando .NET Core, você precisa antes instalar o pacote System.Data.OleDb com o seguinte comando:

dotnet add package System.Data.OleDb

VB.NET

Exemplo de código em VB.NET de conexão com Access usando Microsoft ACE OLEDB 12.0:

Imports System
Imports System.Data.OleDb

Module DatabaseConnection

    Sub Main()
        Dim connectionString As String
        
        ' Define a string de conexão Access usando Microsoft ACE OLEDB 12.0
        connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Diretorio\Arquivo.accdb;Jet OLEDB:Database Password=Senha;"

        Using connection As New OleDbConnection(connectionString)
            Try
                ' Abre a conexão
                connection.Open()

                Console.WriteLine("Conexão aberta com sucesso!")

                '
                ' INSIRA SEU CÓDIGO AQUI
                '

            Catch ex As OleDbException
                ' Erros específicos do OleDbException
                Console.WriteLine("Erro: " & ex.Message)
            Catch ex As Exception
                ' Outros erros
                Console.WriteLine("Erro: " & ex.Message)
            Finally
                ' Fecha a conexão
                If connection IsNot Nothing Then
                    connection.Close()
                    Console.WriteLine("Conexão fechada.")
                End If
            End Try
        End Using
    End Sub

End Module

ASP Clássico

Exemplo de código em ASP Clássico de conexão com Access usando Microsoft ACE OLEDB 12.0:

<%
Dim conn, connectionString

' Cria a string de conexão para Access usando Microsoft ACE OLEDB 12.0
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Diretorio\Arquivo.accdb;Jet OLEDB:Database Password=Senha;"

Set conn = Server.CreateObject("ADODB.Connection")

' Abre a conexão
On Error Resume Next
conn.Open connectionString

' Verifica se a conexão foi aberta
If conn.State = 1 Then
    Response.Write "Conexão aberta com sucesso!"
    '
    ' INSIRA SEU CÓDIGO AQUI
    '
Else
    If Err.Number <> 0 Then
        Response.Write "Erro: " & Server.HTMLEncode(Err.Description)
    Else
        Response.Write "Erro: A conexão não pode ser estabelecida."
    End If

End If

On Error GoTo 0

' Fecha a conexão
conn.Close
Set conn = Nothing

%>

VBScript

Exemplo de código em VBScript de conexão com Access usando Microsoft ACE OLEDB 12.0:

Dim conn, connectionString

' Define a string de conexão Access usando Microsoft ACE OLEDB 12.0
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Diretorio\Arquivo.accdb;Jet OLEDB:Database Password=Senha;"

Set conn = CreateObject("ADODB.Connection")

' Abre a conexão
On Error Resume Next
conn.Open connectionString

' Verifica se a conexão foi aberta
If conn.State = 1 Then
    Wscript.Echo "Conexão aberta com sucesso!"
    '
    ' INSIRA SEU CÓDIGO AQUI
    '
Else
    If Err.Number <> 0 Then
        WScript.Echo "Erro: " & Err.Description
    Else
        WScript.Echo "Erro: A conexão não pode ser estabelecida."
    End If

End If

On Error GoTo 0

' Fecha a conexão
conn.Close
Set conn = Nothing
Wscript.Echo "Conexão fechada."

JScript

Exemplo de código em JScript de conexão com Access usando Microsoft ACE OLEDB 12.0:

var conn, connectionString;

// Define a string de conexão Access usando Microsoft ACE OLEDB 12.0
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Diretorio\\Arquivo.accdb;Jet OLEDB:Database Password=Senha;";

conn = new ActiveXObject("ADODB.Connection");

// Abre a conexão
try {
    // Abre a conexão
    conn.Open(connectionString);
    if (conn.State === 1) {
        WScript.Echo("Conexão aberta com sucesso!");
        //
        // INSIRA SEU CÓDIGO AQUI
        //
    } else {
        WScript.Echo("Erro: A conexão não pode ser estabelecida.");
    }
} catch (e) {
    // Exibe a mensagem de erro
    WScript.Echo("Erro: " + e.description);
} finally {
    // Fecha a conexão
    conn.Close();
    conn = null;
}

C++

Exemplo de código em C++ de conexão com Access usando Microsoft ACE OLEDB 12.0:

#include <iostream>
#include <cstdlib>
#include <string>
#include <atldbcli.h>

int main() {
    // Inicializa COM
    HRESULT hr = CoInitialize(NULL);
    if (FAILED(hr)) {
        std::cout << "Falha ao inicializar COM. Erro: " << hr << std::endl;
        return EXIT_FAILURE; // Encerra se a COM não puder ser inicializada
    }

    // Define a string de conexão Access usando Microsoft ACE OLEDB 12.0
    std::wstring connectionString = L"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Diretorio\\Arquivo.accdb;Jet OLEDB:Database Password=Senha;";


    CDataSource dataSource;
    CSession session;
    hr = dataSource.OpenFromInitializationString(connectionString.c_str());
    if (SUCCEEDED(hr)) {
        // Abre uma sessão
        hr = session.Open(dataSource);
        if (SUCCEEDED(hr)) {
            std::cout << "Conexão aberta com sucesso!" << std::endl;

            //
            // INSIRA SEU CÓDIGO AQUI
            //

            // Fecha a sessão e a conexão com o banco de dados
            session.Close();
            dataSource.Close();
        } else {
            std::cout << "Falha ao abrir sessão. Erro: " << hr << std::endl;
        }
    } else {
        std::cout << "Falha ao abrir conexão. Erro: " << hr << std::endl;
    }

    // Finaliza COM
    CoUninitialize();

    return EXIT_SUCCESS;
}