none
ACESSAR UM BANCO ACCESS MDB PROTEGIDO USANDO MACRO EXCEL RRS feed

  • Pergunta

  • Olá a todos.

    Gostaria da ajuda de você para o seguinte problema.

    Estou tentando realizar o seguinte acesso sem sucesso.

    Possuo um banco MDB em uma rede pública onde este banco é protegido por senha apenas.

    A minha dúvida é:

    Como posso fazer para acessa-lo através de uma macro em EXCEL?

    Postarei meu código aqui para exemplificar o que ocorre e apenas para adiantar, já tentei mudar a posição do parâmetro diversas vezes, a única coisa que ocorre é a mensagem de erro que muda.

    Meu código:

    Sub Acessa()

    Dim sql As String

    Dim cn As ADODB.Connection

    Dim rs As ADODB.Recordset

    Dim i As Integer

    caminho = "C:\Documents and Settings\user\Desktop\backup_SDM\Backup_fisico\"

    banco = "bd_ms_outlook_con.mdb"

    Set cn = New ADODB.Connection

    cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Pwd=SENHA User=Admin;Data Source=" & caminho & banco

    cn.Open

        Set rs = New ADODB.Recordset

        sql = "SELECT emailSentSupport.nameUser AS Login, emailSentSupport.dateSend AS Data, Count(emailSentSupport.codMsg) AS Qtde" & _

              "FROM emailSentSupport" & _

              "GROUP BY emailSentSupport.nameUser, emailSentSupport.dateSend;"

        rs.Open sql, cn

        Sheets("plan1").Range("a2").Offset(0, 0).CopyFromRecordset rs

        rs.Close

       cn.Close

    End Sub

    Mensagens de Erro:

    Mensagem 1

    Mensagem 2

     

    No aguardo....


    quinta-feira, 24 de novembro de 2011 12:03

Respostas

  • Olá,

     

    Você consegue acessar o banco se ele não possuir senha?

     

    Além disso, dê uma olhada nessa função, retirada de: http://msdn.microsoft.com/en-us/library/aa141813(v=office.10).aspx

     

     

    Opening a Password-Protected Database with ADO

    To open an Access password-protected database by using ADO code, you specify the password by using the provider-specific Jet OLEDB:Database Password property. You can specify the Jet OLEDB:Database Password property by using the Properties collection of theConnection object, or as part of the connection string passed to the Open method of the Connection object. For example, the following procedure opens a password-protected database:

    Function OpenProtectedDB(strDBPath As String, _
                             strPwd As String)
       Dim cnnDB As ADODB.Connection
    
       Set cnnDB = New ADODB.Connection
    
       ' Open database for shared (by default), read/write access, and
       ' specify database password.
       With cnnDB
          .Provider = "Microsoft.Jet.OLEDB.4.0"
          .Properties("Jet OLEDB:Database Password") = strPwd
          .Mode = adModeReadWrite
          .Open strDBPath
       End With
       ' Code to work with database goes here.
       cnnDB.Close
       Set cnnDB = Nothing
    End Function
    

    The OpenProtectedDB procedure is available in the modSecurity module in AccessSecurity.mdb in the ODETools\V9\Samples\ODETools\V9\Samples\OPG\Samples\CH18 subfolder on the Office 2000 Developer CD-ROM.

     


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    • Marcado como Resposta Gran Aríete terça-feira, 29 de novembro de 2011 15:18
    quinta-feira, 24 de novembro de 2011 15:11
    Moderador

Todas as Respostas

  • Olá,

     

    Você consegue acessar o banco se ele não possuir senha?

     

    Além disso, dê uma olhada nessa função, retirada de: http://msdn.microsoft.com/en-us/library/aa141813(v=office.10).aspx

     

     

    Opening a Password-Protected Database with ADO

    To open an Access password-protected database by using ADO code, you specify the password by using the provider-specific Jet OLEDB:Database Password property. You can specify the Jet OLEDB:Database Password property by using the Properties collection of theConnection object, or as part of the connection string passed to the Open method of the Connection object. For example, the following procedure opens a password-protected database:

    Function OpenProtectedDB(strDBPath As String, _
                             strPwd As String)
       Dim cnnDB As ADODB.Connection
    
       Set cnnDB = New ADODB.Connection
    
       ' Open database for shared (by default), read/write access, and
       ' specify database password.
       With cnnDB
          .Provider = "Microsoft.Jet.OLEDB.4.0"
          .Properties("Jet OLEDB:Database Password") = strPwd
          .Mode = adModeReadWrite
          .Open strDBPath
       End With
       ' Code to work with database goes here.
       cnnDB.Close
       Set cnnDB = Nothing
    End Function
    

    The OpenProtectedDB procedure is available in the modSecurity module in AccessSecurity.mdb in the ODETools\V9\Samples\ODETools\V9\Samples\OPG\Samples\CH18 subfolder on the Office 2000 Developer CD-ROM.

     


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    • Marcado como Resposta Gran Aríete terça-feira, 29 de novembro de 2011 15:18
    quinta-feira, 24 de novembro de 2011 15:11
    Moderador
  • Se você está abrindo um MDB o provider está errado.

    Tente assim:

     

    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Pwd=SENHA User=Admin;Data Source=" & caminho & banco

    • Marcado como Resposta Gran Aríete terça-feira, 29 de novembro de 2011 15:15
    • Não Marcado como Resposta Gran Aríete terça-feira, 29 de novembro de 2011 15:18
    quinta-feira, 24 de novembro de 2011 20:10
  • BENZEDEUS, utilizando o código abaixo, funcionou perfeitamente!!

     

    Function OpenProtectedDB(strDBPath As String, _
                             strPwd As String)
       Dim cnnDB As ADODB.Connection
    
       Set cnnDB = New ADODB.Connection
    
       ' Open database for shared (by default), read/write access, and
       ' specify database password.
       With cnnDB
          .Provider = "Microsoft.Jet.OLEDB.4.0"
          .Properties("Jet OLEDB:Database Password") = strPwd
          .Mode = adModeReadWrite
          .Open strDBPath
       End With
       ' Code to work with database goes here.
       cnnDB.Close
       Set cnnDB = Nothing
    End Function
    MUITO OBRIGADO!!

     

     

     

     

     

    Olá,

     

    Você consegue acessar o banco se ele não possuir senha?

     

    Além disso, dê uma olhada nessa função, retirada de: http://msdn.microsoft.com/en-us/library/aa141813(v=office.10).aspx

     

     


    10001100100010




    • Editado Gran Aríete terça-feira, 29 de novembro de 2011 15:24
    terça-feira, 29 de novembro de 2011 13:57