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


4 participantes

    [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup()

    avatar
    byFonseca
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 27/02/2018

    [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup() Empty [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup()

    Mensagem  byFonseca 27/3/2018, 20:26

    Prezados, boa tarde.

    Depois de implementar algumas soluções indicadas em outros tópicos e não conseguir obter êxito na aplicação, recorro a vocês a fim de solucionar esse problema, o qual busco correção há alguns dias.

    Tenho um formulário chamado (frm_cadastro_disciplinas) com os seguintes campos principais (nome_disciplina) - tipo texto e (ch_disciplina) - tipo inteiro

    Considero uma disciplina já cadastrada no sistema se ela tiver o mesmo nome e a mesma carga horária. E é essa verificação que preciso fazer na tabela que armazena tais valores.

    Estrutura da tabela (tbl_disciplinas)
    cod_disciplina
    nome_disciplina
    ch_disciplina

    Já utilizei as funções Dcount() e DLoookup() para verificar a ocorrência dos valores no banco, mas sem sucesso (ou não identifica os nomes digitados como iguais ou apresenta erro de tipos incompatíveis.)

    If (Not IsNull(DLookup("[nome_disciplina]", "tbl_disciplinas", "[nome_disciplina] =' " & Me.nome_disciplina & "'" And "[ch_disciplina]" = Me.ch_disciplina))) Then
       MsgBox "Disciplina " & Me.nome_disciplina & " já cadastrada"
       nome_disciplina.SetFocus
       Me!nome_disciplina.Undo 'desfaz a digitação
    Else
       DoCmd.RunCommand acCmdSaveRecord



    OBS.: Outro detalhe é que mesmo apresentando erro de tipos incompatíveis erro 13, o registro é gravado do banco.


    Desde já agradeço a ajuda
    formiga10x
    formiga10x
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 818
    Registrado : 11/09/2013

    [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup() Empty Re: [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup()

    Mensagem  formiga10x 28/3/2018, 02:26

    Tente...

    if dcount("nome_disciplina","tbl_disciplinas","nome_disciplina ='" & me.txtnomeDisciplina & "' And ch_disciplina =" & me.txtChDisciplina & "") then

    msgbox("Disciplina já cadastrada"),vbexclamation,"titulo"
    exit sub
    end if


    .................................................................................
    Abraço
    Formiga10x

    Sempre que possível poste o bd ou parte dele, com uma explicação bem clara e objetiva do que quer.
    “Um homem não está acabado quando enfrenta a derrota. Ele está acabado quando desiste - Richard Nixon”
    Formiga10x

    "Lembro do exato momento em que me dei conta que boa parte de minha vida foi dedicada a localizar erros em meus próprios programas."
    - Maurice Vicent Wilkes
    avatar
    byFonseca
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 27/02/2018

    [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup() Empty Re: [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup()

    Mensagem  byFonseca 28/3/2018, 04:11

    Olá, [formiga10x]. Agradeço a resposta.

    Implementei o código informado, porém ele cadastra a disciplina sem criticar (mesmo o registro já existindo no banco)

    Preciso que ele identifique quando uma disciplina já estiver cadastrada (disciplina cadastrada = mesmo nome e mesma carga horária)

    Segue uma parte do banco que estou utilizando.
    Anexos
    [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup() AttachmentCadastroDisciplina.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (155 Kb) Baixado 33 vez(es)
    tauron
    tauron
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1415
    Registrado : 07/12/2011

    [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup() Empty Re: [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup()

    Mensagem  tauron 28/3/2018, 11:00

    tente assim:

    if dcount("nome_disciplina","tbl_disciplinas","nome_disciplina ='" & me.txtnomeDisciplina & "' And ch_disciplina =" & me.txtChDisciplina & "") > 0 then
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8464
    Registrado : 05/11/2009

    [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup() Empty Re: [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup()

    Mensagem  Alexandre Neves 28/3/2018, 11:24

    Bom dia,
    Comece a noimear de forma normalizada, ajuda em várias situções (novo_cadastro podia ser BtnNovoCadastro)
    Retire o botão de adicionar ao cadastro
    No botão novo_cadastro, coloque
    Código:
    Private Sub novo_cadastro_Click()
        If DCount("nome_disciplina", "tbl_disciplinas", "nome_disciplina ='" & Me.txtnome_disciplina & "' And ch_disciplina=" & Me.txtch_disciplina & "") > 0 Then
            MsgBox ("Disciplina já cadastrada"), vbExclamation, "titulo"
            txtnome_disciplina.SetFocus
            Me!txtnome_disciplina.Undo 'desfaz a digitação
        Else
            DoCmd.GoToRecord , , acNewRec
        End If
        'cursor ativo no primeiro campo
        Me.txtnome_disciplina.SetFocus
    End Sub



    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    byFonseca
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 27/02/2018

    [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup() Empty Re: [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup()

    Mensagem  byFonseca 28/3/2018, 14:18

    Colegas, tauron e Alexandre Neves.

    Fiz algumas adaptações e consegui deixar o código no botão salvar.
    Seguirei as dicas e orientações repassadas nas próximas postagens Smile

    Descobri o que estava errando

    Meu código: If DCount("nome_disciplina", "tbl_disciplinas", "nome_disciplina =' " & Me.txtnome_disciplina & "' And ch_disciplina=" & Me.txtch_disciplina & "") > 0 Then

    Código correto: If DCount("nome_disciplina", "tbl_disciplinas", "nome_disciplina ='" & Me.txtnome_disciplina & "' And ch_disciplina=" & Me.txtch_disciplina & "") > 0 Then

    O problema estava em um espaçamento nessa parte do código "nome_disciplina =' " o correto seria "nome_disciplina ='"

    Agradeço a colaboração de todos!!!
    tauron
    tauron
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1415
    Registrado : 07/12/2011

    [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup() Empty Re: [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup()

    Mensagem  tauron 28/3/2018, 17:33

    O forum agradece pelo retorno.

    Conteúdo patrocinado


    [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup() Empty Re: [Resolvido]Verificar se registros já existem no banco - Dois critérios de tipos diferentes Dcount() e DLookup()

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/9/2024, 02:34