Notifications
Clear all

Erro de atutenticação

13 Posts
4 Usuários
0 Reactions
4,716 Visualizações
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Boa tarde!

Pessoal, mais uma vez precisando de uma ajuda de voces, estou criando um pequeno sistema usado Access + excel, bom peguei alguns exemplos na net aqui mesmo no forum de como conectar e inclur dados no access pelo excel vba, bom achei que era simples mais to apanhando muito seguinte eu tenho essa rotina segue:

Public Conn As New ADODB.Connection
Public Sub Conectar()
    Dim nConectar As String
    nConectar = "Provider= Microsoft.ACE.OLEDB.12.0;Data " & ThisWorkbook.Path & "dados.accdb"
    Conn.ConnectionString = nConectar
    Conn.Open
    
End Sub

Bom ate ai vai conecta e tudo mais na hora de incluir os dados na tabela aprensenta a seguinte mensagem:

ERRO EM TEMPO DE EXECUÇÃO '-2147217843 (80040e4d)':

FALHA NA AUTENTICAÇÃO

pesquisei na net mais nao achei nada igual
segue o codigo para inserir dados na tabela:

Option Explicit
Public Indice As Long
Public cx As New ClasseConexao
Public banco As ADODB.Recordset
Public sql As String

Sub Incluir_Registro()

    sql = "INSERT INTO Tb_Item(Descrição, Tipo)"
    sql = sql & " VALUES ("
    sql = sql & ", '" & Me.TxtDescricao.Value & "'"
    sql = sql & ", '" & Me.TxtTipo.Value & "'"
    sql = sql & " )"
    
    Set banco = New ADODB.Recordset
    [b]cx.Conectar apresenta o erro bem aqui [/b]
    MsgBox "Programação Realizada com Sucesso.", vbInformation, "Inclusão"
    Set banco = Nothing
    cx.Desconectar

obrigado.
Marcelo Araujo

 
Postado : 17/11/2012 3:33 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Marcelo,

Salvo engano da minha parte, esse erro estpa sendo ocasionado pelo fato de que seu arquivo de dados no Access está salvo como um arquivo da versão do Access 2007, com extensão accdb.

Salve o mesmo como um arquivo do Acess 2003.

Para ajudar, veja esse pequeno exemplo que postei aqui mesmo no fórum:

 
Postado : 17/11/2012 7:31 pm
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Bom dia!

Wagner, eu nao tenho office 2003 no office 2010 nao consigo salva com versões anteriores, eu vagando na net achei algumas coisas sobre conectar ao acccess 2010
mais nada que mim ajude obrigado .

 
Postado : 18/11/2012 5:07 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não seria porque vc "chamou sua conxão como Conn, e no programa "tenta" abrir como Cx, exprimente como Conn.connectar

 
Postado : 18/11/2012 6:11 am
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Bom dia, a todos Wagner e Reinado eu conseguir salvar o banco com extesão mdb
so que deu outro problema agora quando vou inserir algo na tabela
nao mostra erro algum mais tambem nao inserir nada segue o codigo:

    sql = "INSERT INTO Tb_Item(Descrição, Tipo)"
    sql = sql & " VALUES ("
    sql = sql & ", '" & Me.TxtDescricao.Value & "'"
    sql = sql & ", '" & Me.TxtTipo.Value & "'"
    sql = sql & " )"
    
    Set banco = New ADODB.Recordset
    cx.Conectar
    Set banco = Nothing
     MsgBox "Incluisão ok.", vbInformation, "Sollut Software"
    cx.Desconectar

alguem pode mim falar o porquer ele nao add na tabela item o que foi colocando os TxtBox

 
Postado : 18/11/2012 7:48 am
(@rilton)
Posts: 232
Reputable Member
 

m_araujo

Seu problema está ocorrendo por causa de uma virgula, tente assim:

sql = "INSERT INTO Tb_Item(Descrição, Tipo)"
    sql = sql & " VALUES ("
    sql = sql & " '" & Me.TxtDescricao.Value & "'"
    sql = sql & ", '" & Me.TxtTipo.Value & "'"
    sql = sql & " )"
    
    Set banco = New ADODB.Recordset
    cx.Conectar
    Set banco = Nothing
     MsgBox "Incluisão ok.", vbInformation, "Sollut Software"
    cx.Desconectar
 
Postado : 19/11/2012 8:40 am
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Boa tarde!

Rilton, meu caro não foi nao hem, não deu certo nao

At.
Marcelo Araujo

 
Postado : 19/11/2012 9:27 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Alem do detalhe bem observado pelo colega Rilton, creio que tb falta a conexão (se tivesse postado seu banco/planilha ficariamuito mais facil)
seri algo assim:

   
 Set banco = New ADODB.Recordset   
        Sql = "INSERT INTO Tb_Item(Descrição, Tipo)"
        Sql = Sql & " VALUES ("
        Sql = Sql & " '" & Me.TxtDescricao.Value & "'"
        Sql = Sql & ", '" & Me.TxtTipo.Value & "'"
        Sql = Sql & " )"
        
banco.Open Sql, conn, adOpenForwardOnly, adLockReadOnly, adCmdText
    
Conectar 'ou cx.conectar ou....
        Set banco = Nothing
         MsgBox "Inclusão ok.", vbInformation, "Sollut Software"
       conn.Desconectar 'ou cx.desconectar ou....
 
Postado : 19/11/2012 9:44 am
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Boa tarde!

Reinaldo, nao funcionou tentei de varias formas, conforme havia falando estou anexando os aquivos

para melhor analize.

At.
Marcelo Araujo

 
Postado : 19/11/2012 11:24 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom vc não disse em qual dos form's, então creio ser o Formulario Cad_Itens.
Mude sua sql conforme abaixo (falta uma virgula para separar o txtdescricao do txttipo, e tambem fechar o parentes depois do txttipo:

 
    sql = "INSERT INTO Tb_Item(Descrição, Tipo)"
    sql = sql & " VALUES ("
    sql = sql & " '" & Me.TxtDescricao.Value & "'"
    sql = sql & ", '" & Me.TxtTipo.Value & "')"
 
Postado : 19/11/2012 12:01 pm
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Opa, Reinaldo desculpa mias tu acertou na mosta sim é o Cad_itens
mais nao deu certo cara nao dar erro algum mais tambem nao inseri nada na tabela itens

At.
MArcelo Araujo

 
Postado : 19/11/2012 12:11 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tb precisa alterar o local de abertura do banco

 
Postado : 19/11/2012 12:24 pm
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Boa tarde!

Problema solucionado, segue

Sub Incluir_Registro()

    sql = "INSERT INTO Tb_Item(Descrição, Tipo)"
    sql = sql & " VALUES ("
    sql = sql & " '" & Me.TxtDescricao.Value & "'"
    sql = sql & ", '" & Me.TxtDescricao.Value & "'"
    sql = sql & " )"
    
    Set banco = New ADODB.Recordset
    cx.Conectar
    
    banco.Open sql, cx.Conn ' Faltava essa linha aqui, Reinaldo so tireire as outras opções e deixei essa funcionou super bem 

    
    MsgBox "Item inserido com sucesso!!.", vbInformation, "Cadastro de Programações"
    Set banco = Nothing
    cx.Desconectar
    
End Sub

Obrigado pessoal, a todos

 
Postado : 19/11/2012 12:30 pm