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


2 participantes

    [Resolvido]Sistema para confirmação de um dado!

    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Sistema para confirmação de um dado! Empty Sistema para confirmação de um dado!

    Mensagem  sardao 14/3/2011, 15:24

    Boa tarde a todos!
    Estarei a construir uma base de dados para uma empresa de vendas e existe um campo que gostaria de por num formulário para poder saber se o cliente já esta registado ou nao nessa base de dados, ou seja, nos iriamos pedir o umero de contribuinte ao cliente, ponha-mos numa celula e ao fazer ok ele informava-nos se existia ou nao esse cliente.

    Como devo fazer? É do genero de verificação de login, não é?
    Obgrigado
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  criquio 14/3/2011, 15:36

    Tente assim no evento "Ao atualizar" do campo ou "Ao clicar" de um botão:

    If Not IsNull(DLookup("NrContribuinte", "NomeTabela", "NrContribuinte=" & Me!txtNrContribuinte)) Then
    MsgBox "Número já cadastrado em nome de " & DLookup("NomeContribuinte", "NomeTabela", "NrContribuinte=" & Me!txtNrContribuinte)


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  sardao 14/3/2011, 15:38

    Eu pus assim, o que achas? Pelo menos para já parece estar a dar certo, achas que pode dar erro futuramente?

    Private Sub CmdAnalisar_Click()
    Dim Identificacao As Integer

    If Me.txtNif.Value = DLookup("[Contribuinte]", "[Clientes]") Then
    MsgBox "Cliente existe na Base de Dados", vbInformation + vbOKOnly, "Erro"

    Else
    MsgBox "Cliente não existe!", vbInformation + vbOKOnly, "Erro"
    Me.txtNif.Value = ""
    Exit Sub
    End If
    End Sub
    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  sardao 15/3/2011, 00:57

    O meu realmente não está prefeito :S
    Nao sei porque mas ele só valida o primeiro campo, que por sua vez é o meu numero de contribuinte.
    Já pus mais uns quantos para experimentar e ele diz que nao existem....

    Em relaçao ao teu Criquio, está a dar-me erro, em toda a formula.

    Eu tenho-a assim:
    Private Sub txtAnalisar_LostFocus()
    If Not IsNull(DLookup("Contribuinte", "Clientes", "Contribuinte=" & Me!txtAnalisar)) Then
    MsgBox "Número já cadastrado em nome de " & DLookup("NomeContribuinte", "Clientes", "NrContribuinte=" & Me!txtAnalizar)
    End Sub
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  criquio 15/3/2011, 01:04

    Private Sub txtAnalisar_LostFocus()
    If Not IsNull(DLookup("Contribuinte", "Clientes", "Contribuinte=" & Me!txtAnalisar)) Then
    MsgBox "Número já cadastrado em nome de " & DLookup("NomeContribuinte", "Clientes", "NrContribuinte=" & Me!txtAnalizar)
    End Sub


    Há aí uma diferença entre os nomes de campos. Está assim mesmo? Não estará aí o erro?
    Estou supondo que NrContribuinte seja a chave primária da tabela. Uma vez que esse número deve ser único para cada contribuinte, ele pode ser a chave primária da tabela.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  sardao 15/3/2011, 01:10

    Na realidade até existem duas diferenças que reparei depois, mas quando testei estava tudo bem.

    Private Sub txtAnalisar_LostFocus()
    If Not IsNull(DLookup("Contribuinte", "Clientes", "Contribuinte=" & Me!txtAnalisar)) Then
    MsgBox "Número já cadastrado em nome de " & DLookup("NomeContribuinte", "Clientes", "NrContribuinte=" & Me!txtAnalizar)
    End Sub


    Mas já pus tudo como deve ser e faz o mesmo erro. A minha questão agora é, o Contribuinte tem de ser chave primária?
    É que no meu não é....
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  criquio 15/3/2011, 01:15

    Private Sub txtAnalisar_LostFocus()
    If Not IsNull(DLookup("NrContribuinte", "Clientes", "NrContribuinte=" & Me!txtAnalisar)) Then
    MsgBox "Número já cadastrado em nome de " & DLookup("NomeContribuinte", "Clientes", "NrContribuinte=" & Me!txtAnalizar)
    End Sub


    As três partes em vermelho precisam ser iguais, pois você vai analisar o campo NrContribuinte na tabela e ver se NrContribuinte na tabela é igual a NrContribuinte do formulário. Se for, Irá exibir a mensagem informando o NomeContrituinte cadastrado na tabela para o campo NrContribuinte da tabela igual ao campo NrContribuinte do formulário.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  sardao 15/3/2011, 01:19

    Olha, o erro que me esta a dar é este "Block if without End if"
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  criquio 15/3/2011, 01:32

    É só botar o End If para finalizar a função:

    Private Sub txtAnalisar_LostFocus()
    If Not IsNull(DLookup("NrContribuinte", "Clientes", "NrContribuinte=" & Me!txtAnalisar)) Then
    MsgBox "Número já cadastrado em nome de " & DLookup("NomeContribuinte", "Clientes", "NrContribuinte=" & Me!txtAnalizar)
    End If
    End Sub


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  criquio 15/3/2011, 01:33

    Sempre que você colocar uma If para condicionar uma tarefa, deverá colocar o End If logo após o término da condição, para que o Access entenda que a condição terminou. Isso vale para toda linguagem de programação.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  sardao 15/3/2011, 01:41

    Em relação ao "END IF" podemos dizer que foi pura estupidez da minha parte :S

    agora ele esta a dizer que "Tipo de dados incorrecto na expressão de critérios" e assinala-me a seguinte linha toda:

    "If IsNull(DLookup("Contribuinte", "Clientes", "Contribuinte=" & Me!txtAnalisar)) Then"

    para facilitar vou por aqui os campos necessarios da tabela:

    Clientes(Nome Completo; Contribuinte)

    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  sardao 16/3/2011, 12:11

    Boas Criquio
    Já sabes do que poderá ser o erro?
    Eu tenho tentado várias vezes, mas o erro preciste :S
    Quando souberes de algo que ajude...

    Obrigado
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  criquio 16/3/2011, 12:20

    O valor de txtAnalisar é o código do registro? A chave primária? Se for tipo texto, tem que colocar assim:

    If IsNull(DLookup("Contribuinte", "Clientes", "Contribuinte='" & Me!txtAnalisar & "'")) Then


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  sardao 16/3/2011, 12:49

    O problema era mesmo esse, como não estava em chave primário e sim em formato de texto.
    Agora o erro é na outra linha :S
    Também tem de ser acrescentado algo?

    O sistema diz o seguinte: "Erro de sintaxe (operador em falta) na expressão de consulta 'Nome Completo'."

    MsgBox "Número já cadastrado em nome de " & DLookup("Nome Completo", "Clientes", "Contribuinte=" & Me!txtAnalisar)
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  criquio 16/3/2011, 13:22

    Uma vez que o campo é o mesmo txtAnalisar, segue a mesma lógica. Sempre que o campo for do tipo texto, essa será a lógica a ser adotada.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    sardao
    sardao
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 328
    Registrado : 12/03/2011

    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  sardao 16/3/2011, 15:21

    Sim, foi o que pensei e tentei fazer, mas o erro mantinha-se.
    Mas como não preciso que me diga o nome em que está registado, fiz de forma mais simples, fazendo apenas a verificação da existência do contribuinte.

    Vou deixar aqui como deixei no meu e está a funcionar bem Very Happy

    Private Sub txtAnalisar_LostFocus()

    If Not IsNull(DLookup("Contribuinte", "Clientes", "Contribuinte='" & Me!txtAnalisar & "'")) Then
    MsgBox "Cliente existe!", vbInformation + vbOKOnly, "Informção:"
    Else
    MsgBox "Cliente não existe!", vbInformation + vbOKOnly, "Informção:"
    Me.txtAnalisar.Value = ""
    Exit Sub
    End If
    End Sub


    Mais uma vez Criquio, obrigado pela paciencia! Very Happy

    Conteúdo patrocinado


    [Resolvido]Sistema para confirmação de um dado! Empty Re: [Resolvido]Sistema para confirmação de um dado!

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/11/2024, 16:37