MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


3 participantes

    [Resolvido]Dúvida no uso da função DLookup

    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Walter 16/8/2021, 10:43

    Bom dia amigos do forum.

    O código abaixo, usando DLookup, funciona certinho para campos numéricos. Como faço para adapta-lo para um campo Geral, que recebe letras e números?
    (por exemplo: R-203, ou R-101, ou R-301 etc.) . A função do código é não permitir que sejam salvos "Prontuários" repetidos na tabela.

    If (Not IsNull(DLookup([Prontuário], "Tbl_Titular", "[Prontuário] = " & Me!Prontuário))) Then
    MsgBox " Esse Prontuário já está Cadastrado." & Chr(13) & Chr(13) & " Não é possível cadastrar duas vezes o mesmo Prontuário.", vbInformation, "Cadastro"
    Cancel = True
    Me.Prontuário = ""
    Me.Undo
    End If




    Obrigado.

    Walter


    .................................................................................
    "A verdade é filha do tempo, e não da autoridade!"
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Marcelo David 16/8/2021, 12:36

    Bom dia e excelente semana!

    Para campos do tipo texto (geral), o texto tem que está envolto de aspas simples '.

    Seu código fica assim:

    If (Not IsNull(DLookup([CompoGeralTabela], "Tbl_Titular", "[CompoGeralTabela] = '" & Me!CampoGeralForm & "'"))) Then


    .................................................................................
    [Resolvido]Dúvida no uso da função DLookup Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Dúvida no uso da função DLookup Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Dúvida no uso da função DLookup Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Dúvida no uso da função DLookup Marcel11
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Walter 16/8/2021, 15:41

    Bom dia Marcelo.
    Obrigado pela sua atenção.

    Testei o código como você sugeriu mas não funcionou. Dá mensagem que o prontuário JÁ ESTÁ CADASTRADO, mesmo não estando...

    Não sei o motivo...




    .................................................................................
    "A verdade é filha do tempo, e não da autoridade!"
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Marcelo David 16/8/2021, 16:41

    O código que passei, que na verdade é apenas a adequação do seu,
    apenas verifica se não está nulo uma informação.

    Se ele está executando a linha de dentro do IF, isso indica que o dlookup
    encontrou algo.

    Como teste, habilite a janela de verificação imediata, com CTRL + G, no editor do vba.

    acrescente a linha em itálico no respectivo lugar do seu código, seguindo a mesma ordem abaixo:

    If (Not IsNull(DLookup([CompoGeralTabela], "Tbl_Titular", "[CompoGeralTabela] = '" & Me!CampoGeralForm & "'"))) Then
    Debug.Print DLookup([CompoGeralTabela], "Tbl_Titular", "[CompoGeralTabela] = '" & Me!CampoGeralForm & "'")

    Execute o código. Volte ao VBA e na janela de verificação imediata, veja o que retornou.

    Aguardamos o resultado.


    .................................................................................
    [Resolvido]Dúvida no uso da função DLookup Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Dúvida no uso da função DLookup Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Dúvida no uso da função DLookup Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Dúvida no uso da função DLookup Marcel11
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3491
    Registrado : 13/12/2016

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Alexandre Fim 16/8/2021, 18:14

    Passando aqui apenas para um pitaco.

    Walter,

    Verifique se na tabela "Tbl_Titular" se o campo "geral" está sendo gravado com espaços em brancos no inicio e no fim.

    Utilize a função Trim para eliminar esses espaços na pesquisa também:

    If (Not IsNull(DLookup([CompoGeralTabela], "Tbl_Titular", "[CompoGeralTabela] = '" & Trim(Me!CampoGeralForm & "'")))) Then


    Espero ter ajudado.

    Boa sorte

    []'s

    FIM


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Dúvida no uso da função DLookup Setinf11
    Sistemas e Tecnologia Ltda
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Walter 16/8/2021, 18:41

    Olá, Marcelo.

    Não sei se fiz corretamente.
    Ainda não aprendi a usar esse procedimento na janela de verificação imediata.

    Coloquei esse código lá e dei Enter (É assim mesmo que se faz?)

    If (Not IsNull(DLookup([Prontuário], "Tbl_Titular", "[Prontuário] = '" & Me!Prontuário & "'"))) Then
    Debug.Print DLookup([Prontuário], "Tbl_Titular", "[Prontuário] = '" & Me!Prontuário & "'")
    MsgBox " Esse Prontuário já está Cadastrado." & Chr(13) & Chr(13) & " Não é possível cadastrar duas vezes o mesmo Prontuário.", vbInformation, "Cadastro"
    Cancel = True
    Me.Prontuário = ""
    Me.Undo

    E resultou na seguinte mensagem:

    "Erro de Compilação:
    A variável ainda não foi criada neste contexto"

    Confesso que não entendi nada...


    .................................................................................
    "A verdade é filha do tempo, e não da autoridade!"
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Marcelo David 16/8/2021, 18:55

    Ficará mais fácil vc postando aqui as partes envolvidas do seu sistemas, daí, daremos uma verificada.


    .................................................................................
    [Resolvido]Dúvida no uso da função DLookup Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Dúvida no uso da função DLookup Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Dúvida no uso da função DLookup Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Dúvida no uso da função DLookup Marcel11
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Walter 16/8/2021, 18:56

    Olá, Alexandre.
    Obrigado pelo seu "pitaco"...
    Testei com a função TRIM (que eu não conhecia), do jeitinho que você sugeriu, mas deu o mesmo problema...




    .................................................................................
    "A verdade é filha do tempo, e não da autoridade!"
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Walter 16/8/2021, 19:05

    Pedindo ajuda dos colegas.

    Abaixo coloco o meu BD para que vocês tentem encontrar o erro.

    Eu gostaria de colocar em número do prontuário um valor que tem uma letra e um número.
    Tipo: R-34 ou R-125 ou R-01. Mas não consigo inserir assim porque o sistema diz que já tem esse valor salvo, mesmo não tendo...
    Se tentar salvar apenas com número, aí funciona, mas eu não queria assim.
    Anexos
    [Resolvido]Dúvida no uso da função DLookup AttachmentRecepção da UBS do Real.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (523 Kb) Baixado 15 vez(es)


    .................................................................................
    "A verdade é filha do tempo, e não da autoridade!"
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Marcelo David 16/8/2021, 19:30

    Quais são os nomes dos objetos para podemos verificar?


    .................................................................................
    [Resolvido]Dúvida no uso da função DLookup Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Dúvida no uso da função DLookup Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Dúvida no uso da função DLookup Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Dúvida no uso da função DLookup Marcel11
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3491
    Registrado : 13/12/2016

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Alexandre Fim 16/8/2021, 19:38

    @Marcelo, é o Cadastro de Familias


    Minha sugestão: use o Dcount

    Código:


    Private Sub Prontuário_AfterUpdate()
        
        If DCount([Prontuário], "Tbl_Titular", "[Prontuário] = '" & Trim(Me!Prontuário & "'")) > 0 Then
            MsgBox " Esse Prontuário já está Cadastrado." & Chr(13) & Chr(13) & " Não é possível cadastrar duas vezes o mesmo Prontuário.", vbInformation, "Cadastro"
            Cancel = True
            Me.Prontuário = ""
            Me.Undo
        End If
        
    End Sub

    Acho que vai funcionar

    []'s




    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Dúvida no uso da função DLookup Setinf11
    Sistemas e Tecnologia Ltda

    Marcelo David gosta desta mensagem

    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Walter 16/8/2021, 22:51

    Desculpe a demora, Alexandre.

    Fiz o teste com a sua sugestão e continua dando o mesmo problema. Apesar de não existir o código impede o salvamento com a mensagem de que já existe o dado na tabela.

    O que será que está acontecendo??



    .................................................................................
    "A verdade é filha do tempo, e não da autoridade!"
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Walter 16/8/2021, 22:56

    Marcelo.
    realmente é no Fml_CadastroFamilias
    E no campo: "Prontuário"

    esse é o local que não está dando certo..

    Obrigado

    Walter


    .................................................................................
    "A verdade é filha do tempo, e não da autoridade!"
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Marcelo David 17/8/2021, 14:48

    Bom dia Walter,
    o caminho mais indicado é o Dcount como o Alexandre Fim falou mesmo.

    Teste:

    Código:
    If DCount([Prontuário], "Tbl_Titular", "[Prontuário] = '" & Me!Prontuário & "'") > 0 Then
         MsgBox " Esse Prontuário já está Cadastrado." & Chr(13) & Chr(13) & " Não é possível cadastrar duas vezes o mesmo Prontuário.", vbInformation, "Cadastro"
         Cancel = True
         Me.Prontuário = ""
         Me.Undo
    End If


    .................................................................................
    [Resolvido]Dúvida no uso da função DLookup Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Dúvida no uso da função DLookup Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Dúvida no uso da função DLookup Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Dúvida no uso da função DLookup Marcel11
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Walter 17/8/2021, 22:33

    Boa noite, Marcelo.
    Muito estranho...

    Testei com esses três códigos, e eles dão o mesmo resultado:
    Se coloco apenas números ele salva normalmente.
    Mas se coloco uma Letra antes do número aí ele dispara o MsgBox dizendo que já está cadastrado...

    Código 1:

    If (Not IsNull(DLookup([Prontuário], "Tbl_Titular", "[Prontuário] = '" & Me!Prontuário & "'"))) Then
    MsgBox " Esse Prontuário já está Cadastrado." & Chr(13) & Chr(13) & " Não é possível cadastrar duas vezes o mesmo Prontuário.", vbInformation, "Cadastro"
    Cancel = True
    Me.Prontuário = ""
    Me.Undo

    End If
    -------------------------------
    Código 2

    If DCount([Prontuário], "Tbl_Titular", "[Prontuário] = '" & Me!Prontuário & "'") > 0 Then
    MsgBox " Esse Prontuário já está Cadastrado." & Chr(13) & Chr(13) & " Não é possível cadastrar duas vezes o mesmo Prontuário.", vbInformation, "Cadastro"
    Cancel = True
    Me.Prontuário = ""
    Me.Undo
    End If
    -------------------------------------

    Código 3

    If DCount([Prontuário], "Tbl_Titular", "[Prontuário] = '" & Trim(Me!Prontuário & "'")) > 0 Then
    MsgBox " Esse Prontuário já está Cadastrado." & Chr(13) & Chr(13) & " Não é possível cadastrar duas vezes o mesmo Prontuário.", vbInformation, "Cadastro"
    Cancel = True
    Me.Prontuário = ""
    Me.Undo
    End If
    End Sub
    ----------------------------------


    .................................................................................
    "A verdade é filha do tempo, e não da autoridade!"
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3947
    Registrado : 21/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Marcelo David 18/8/2021, 11:57

    Bom dia,
    Veja funcionando com o código que lhe passei anteriormente. Arquivo em anexo.
    *Se eu entendi o que pretende.

    Informe um prontuário que já exista, como por exemplo o 609.

    Baixe aqui o seu arquivo.

    Aguardamos,


    .................................................................................
    [Resolvido]Dúvida no uso da função DLookup Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Dúvida no uso da função DLookup Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Dúvida no uso da função DLookup Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Dúvida no uso da função DLookup Marcel11
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Walter 18/8/2021, 16:23

    Boa tarde, Marcelo.
    Obrigado novamente pela sua atenção.
    Acho que minha explicação, do que eu preciso, não ficou bem clara.
    Se eu usar apenas números, para esse campo, funciona perfeitamente, mas os Prontuários aqui são ALFANUMERICOS, então podem ser:
    SR-001
    SR-002
    SR-003
    SR-004
    etc
    ...

    SS-001
    SS-002
    SS-003
    etc

    ....

    SD-001
    SD-002
    SD-003
    etc.


    Aí, se eu digitar um desses Prontuários (Alfanumericos), mesmo que o que digitei não esteja salvo na Tabela, a MsgBox é disparada. Acho que o Código não entende isso e pressupõe que já está cadastrado por ter caracteres que não são numéricos.
    Talvez não seja possível fazer o que quero...




    .................................................................................
    "A verdade é filha do tempo, e não da autoridade!"
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3491
    Registrado : 13/12/2016

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Alexandre Fim 18/8/2021, 16:39

    Walter,

    O Prontuário está gravado na tabela com a máscara? Assim: SD-003
    Ou está sem a máscara? Assim: SD003

    OPS: Acabei de ver na tabel...não tem máscara


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Dúvida no uso da função DLookup Setinf11
    Sistemas e Tecnologia Ltda
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Walter 18/8/2021, 17:05

    Não está gravando... Ele não salva.


    .................................................................................
    "A verdade é filha do tempo, e não da autoridade!"
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3491
    Registrado : 13/12/2016

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Alexandre Fim 18/8/2021, 17:08

    Walter,

    Copie e cole o código abaixo:

    Código:


    Private Sub Prontuário_AfterUpdate()
    On Error GoTo trata_erro
    Dim sSQL As String
    Dim rs As DAO.Recordset


        sSQL = "SELECT Count(Tbl_Titular.CódigoTitular) AS cnt"
        sSQL = sSQL & " FROM Tbl_Titular"
        sSQL = sSQL & " WHERE (((Tbl_Titular.Prontuário)='" & Trim(Me.Prontuário) & "'));"
        
        Set rs = CurrentDb.OpenRecordset(sSQL)
        
        If rs("cnt") > 0 Then
            MsgBox " Esse Prontuário já está Cadastrado." & vbNewLine & " Não é possível cadastrar duas vezes o mesmo Prontuário.", vbInformation, "Cadastro"
            Cancel = True
            Me.Prontuário = ""
            Me.Undo
        End If
        
        rs.Close
        Set rs = Nothing
        
        Exit Sub

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

        

    End Sub



    Acredito que irá funcionar

    []'s


    FIM


    Última edição por Alexandre Fim em 18/8/2021, 17:17, editado 1 vez(es) (Motivo da edição : ajuste)


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Dúvida no uso da função DLookup Setinf11
    Sistemas e Tecnologia Ltda
    Walter
    Walter
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 17/04/2011

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Walter 18/8/2021, 22:54

    Palmas! Palmas! Palmas!

    Não entendi nada do seu código, Alexandre Fim. Mas funcionou direitinho, do jeito que eu queria.
    Se você tiver um tempinho para explica-lo, eu e os demais iniciantes do Forum, ficaríamos agradecidos.

    Deixo aqui meus sinceros agradecimentos a Alexandre Fim e a Marcelo David pelas contribuições.

    Mais uma dúvida resolvida por esse excelente forum.

    Um abraço a todos.

    Walter


    .................................................................................
    "A verdade é filha do tempo, e não da autoridade!"

    Marcelo David gosta desta mensagem

    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3491
    Registrado : 13/12/2016

    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Alexandre Fim 19/8/2021, 01:49

    Olá Walter,

    Fiz os comentários no código para que vc entenda o que cada linha executa:

    Código:


    Private Sub Prontuário_AfterUpdate()
    ' Tratamento de erro
    On Error GoTo trata_erro

    ' Declaração de variáveis que serão utilizadas no procedimento
    Dim sSQL        As String          'Variável que assume a instrução SQL
    Dim rs          As DAO.Recordset    'variável do tipo recordset


        ' --------------------------------------------------------------------------------
        ' Recordset é o conjunto de registro que fica armazenado na memória
        ' É uma cópia virtual da tabela/consulta
        '---------------------------------------------------------------------------------

        ' Instrução SQL ------------------------------------------------------------------------------------------------------
          sSQL = "SELECT Count(CódigoTitular) AS cnt FROM Tbl_Titular WHERE Prontuário ='" & Trim(Me.Prontuário) & "'))"
        '
        ' Traduzindo
        ' Selecione a contagem de registros da tabela Tbl_Titular onde o valor do campo seja IGUAL ao valor do campo do form
        '--------------------------------------------------------------------------------------------------------------------
       
        ' Instanciar o recordset com a instrução acima ---------------------------------------------------------------
          Set rs = CurrentDb.OpenRecordset(sSQL)
        '
        ' Traduzindo
        ' Carregue/Abra o recordset com o resultado da seleção de dados da instrução SQL (SELECT)
        ' O objeto "cnt" é um apelido (alias) para a contagem (Count) dos dados
       
        ' Se o resultado da contagem for maior que ZERO, então já existe um registro com o valor informado do form.
          If rs("cnt") > 0 Then
              MsgBox " Esse Prontuário já está Cadastrado." & vbNewLine & " Não é possível cadastrar duas vezes o mesmo Prontuário.", vbInformation, "Cadastro"
              Cancel = True
              Me.Prontuário = ""
              Me.Undo
          End If
       
        ' Fecha o recordset
          rs.Close
        ' Limpa o recordset da memória
          Set rs = Nothing
       
        ' Sai do procedimento
          Exit Sub

    ' Se gerar algum erro antes do "Exit Sub", entra no tratamento de erro.
    trata_erro:
       
        ' Exibe mensagem com o Nro. e a Descrição do erro para possiveis ajustes
        MsgBox "Erro gerado: " & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
        Exit Sub

       
    ' Fim do procedimento
    End Sub



    Espero ter elucidado a sua dúvida.

    Dica: Procure se aprofundar mais nos assuntos relativos à linguagem VBA.

    É isso

    boa sorte


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Dúvida no uso da função DLookup Setinf11
    Sistemas e Tecnologia Ltda

    Conteúdo patrocinado


    [Resolvido]Dúvida no uso da função DLookup Empty Re: [Resolvido]Dúvida no uso da função DLookup

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 06:18