MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Conexão Back end Login

    Compartilhe

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 378
    Registrado : 15/05/2013

    [Resolvido]Conexão Back end Login

    Mensagem  maguim em 30/11/2018, 21:32

    boa noite amigos!


    Estou estruturando minha conexão com banco...

    antigamente eu estava vinculando direto pelo access, agr quero fazer tudo via VBA.... pois meu back anda sendo corrompido varias vezes..


    estou criando modulo assim:

    Código:
    Option Explicit
    Option Compare Database

    Global cnn          As New ADODB.Connection
    Global vgPath       As String

    Public Function Conect()
    On Error GoTo trata_erro
        
        If cnn.State = 1 Then cnn.Close
        
        With cnn
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\natha\Desktop\Cliente\DBCLIENTE.accdb;Persist Security Info=False;"
            .Open
        End With

        Exit Function

    trata_erro:
        
        MsgBox "Erro gerado: " & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
        Exit Function
        
    End Function





    no formulario de login nao consigo chama a função antiga de dlookup

    antes assim:

    Código:
    'vrValidar = DLookup("[Usuario]", "Tbl_01_01_Usuario", "[Usuario]='" & Me!UsuarioCaixa & "' And [Senha]='" & SenhaCaixa & "'")

    e agora assim:

    Código:
    rst.Open , Conect(DLookup("[Usuario]", "Tbl_01_01_Usuario", "[Usuario]='" & Me.UsuarioCaixa & "' And [Senha]='" & Me.SenhaCaixa & "'"))



    meu forms esta assim:

    Código:
    Private Sub BtnLogin_Click()
    Dim rst As New ADODB.Recordset
    Call Conect


    'Verifica se a caixa do Usuario esta vazia
    If Me.UsuarioCaixa = "" Or IsNull(UsuarioCaixa) Then
        MsgBox "Digita sua Conta e Senha", vbCritical, "Insira um usuário"
        Me.UsuarioCaixa = Null
        Me.UsuarioCaixa.SetFocus
    Else

    'Verifica se a caixa do Senha esta vazia
    If Me.SenhaCaixa = "" Or IsNull(SenhaCaixa) Then
        MsgBox "É Necessário a inserção de dados", vbCritical, "Insira uma senha"
        Me.SenhaCaixa = Null
        Me.SenhaCaixa.SetFocus
    Else

    'Procura na tabela Tbl_01_01_Usuario pelos campos iguais aos informados no formulario




     rst.Open , Conect(DLookup("[Usuario]", "Tbl_01_01_Usuario", "[Usuario]='" & Me.UsuarioCaixa & "' And [Senha]='" & Me.SenhaCaixa & "'"))
     

    'DLookup("[Usuario]", "Tbl_01_01_Usuario", "[Usuario]='" & Me.UsuarioCaixa & "' And [Senha]='" & Me.SenhaCaixa & "'")


    rst.Open sSql, cnn, adOpenKeyset, adLockReadOnly

    'Validação
    If vrValidar <> "" Or Not IsNull(vrValidar) Then
        setUsuarioAtual (Me.UsuarioCaixa.Value)   'codigo novo
        usuarioativo = Me.UsuarioCaixa.Value
        DoCmd.Close
        DoCmd.OpenForm "Frm_02_01_01_Principal"
    Else
        MsgBox "Senha ou usuário incorreto", vbCritical, "Tente Novamente"
        Me.UsuarioCaixa = Null
        Me.SenhaCaixa = Null
        Me.UsuarioCaixa.SetFocus
    End If
    End If
    End If


    End Sub


    só que esta dando erro.

    Numero 3078 mecanismo do banco de dados microsoft access nao pode localizar a tabela de entrada ou consulta 'Tbl_01_01_Usuario' verefique se ela existe e se o nome foi digitado corretamente.

    alguem poderia me dar uma luz...


    abraços


    Última edição por maguim em 2/12/2018, 17:05, editado 2 vez(es)


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! [Você precisa estar registrado e conectado para ver esta imagem.]

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 378
    Registrado : 15/05/2013

    Re: [Resolvido]Conexão Back end Login

    Mensagem  maguim em 1/12/2018, 20:58

    alguem pra dar um help?


    uma duvida... o dlookup nao funciona em conexao com backend desvinculado? somente SQL?




    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 305
    Registrado : 22/11/2016

    Re: [Resolvido]Conexão Back end Login

    Mensagem  IvanJr. em 2/12/2018, 15:20

    Quanto ao DLookup, este tópico ajudará
    [Você precisa estar registrado e conectado para ver este link.]

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 378
    Registrado : 15/05/2013

    Re: [Resolvido]Conexão Back end Login

    Mensagem  maguim em 2/12/2018, 17:02

    opa ivan, blz ?


    entao eu ja tinha visto sobre o dlookup entre outros, nao funciona com conexao back end!


    agr tem um exemplo do avelino la que ele criou isso pra backend porem esta quebrado o link pale


    Mas o exemplo do jp de la foi bem funcional e didático


    entoa ficou assim

    Código:
    Dim db As Database
    Dim strFiltra As String, strSQL As String
    Set db = CurrentDb()
    Dim rs As Recordset
    strSQL = "SELECT usuario, senha FROM Tbl_01_01_Usuario IN 'C:\Users\natha\Desktop\Cliente\DBCLIENTE.accdb'WHERE Usuario='" & Me!UsuarioCaixa & "' And Senha='" & Me!SenhaCaixa & "'"
    Set rs = db.OpenRecordset(strSQL)
    If rs.RecordCount > 0 Then
    strFiltra = rs!usuario
    Me.UsuarioCaixa.Value = strFiltra
    Me.SenhaCaixa.Value = strFiltra
    End If
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing


    um duvida, agr somente ira funcionar SQL certo ? e tem que ter função IN instanciando o fichário do backend referenciado com where condition certo ?

    abraços


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 305
    Registrado : 22/11/2016

    Re: [Resolvido]Conexão Back end Login

    Mensagem  IvanJr. em 2/12/2018, 17:45

    O aplicativo maestro do mestre Avelino tem um módulo (funcoes_D) que trata das funções DMax, Dlookup, DMin, DCount etc... se possuir este aplicativo, confere nele que verá. Também tem o artigo no site dele que trata do Access com MySQL, muito bom também pra estudo e adaptação pra formulários desvinculados (o artigo 2).

    Quanto a funcionar com SQL, está correto, precisará delas pra recuperar recordsets para população de formulários (select), e executar comandos de adição (insert into), edição (update) e exclusão (delete).

    Quanto ao IN, existe outras maneiras, mas esta apontada pelo JP é mais funcional e simples.

      Data/hora atual: 16/12/2018, 11:22