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]Ver se esta cadastrado

    Ney Santos
    Ney Santos
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 351
    Registrado : 23/05/2011

    [Resolvido]Ver se esta cadastrado Empty [Resolvido]Ver se esta cadastrado

    Mensagem  Ney Santos 2/6/2023, 16:49

    bom dia!
    Pessoal tenho um codigo do mestre Avelino Sampaio que utilizo para verificar se determinado "Registro existe numa tabela" até  agora sempre funcionnnou e me ajudou muito.
    O referido codigo e pra ver se tal "Nome, ou outro tipo de dados" ja existe numa tabela.
    O codigo do mestre Avelino e esse:If DCount("idCliente","tblClientes","cli_Nome =""" & Me!cli_Nome & """") > 0 Then

    O codigo que adaptei ficou assim:
    If DCount("servico", "TabPreco", "TxCodServ =""" & Me!TxCodServ & """") > 0 Then
      MsgBox "O Produto" & Me!TxServiço & " já esta cadastrado..."
      Me.Undo
      Cancel = True
    End If
    Bom acontece que pra essa consulta nao esta funcionando , pois na minha Tabela "TabPreco"
    possuo os seguintes campos:
    CodigoTab====> essse Campo vem de uma tabela chamadaTabNomes
    Servico======> esse campo vem de uma tabela chamda Tbserviços
    porcentagem=====> esse campo e nativo da tabela TabPreco
    nomeserv=====> esse campo e nativo da tabela TabPreco
    IdService=====> esse campo e nativo da tabela TabPrteco(esse campo e AutoNumerico)uso como identificador
    TipoS =====> esse campo e nativo da tabela TabPreco

    em um formulario no evento antes de atualizar  preciso verificar se determinado serviço ja esta cadastrado, acontece que preciso filtrar a informação utilizando 2 criterios:
    o primeiro criterio e o "CodigoTab" e o segundo e o "Servico" ambos sao campos numeriocos
    Exemplo:
    Digamos que eu va cadastrar o serviço"Corte de cabelo masculino"
    Devo primeiro indicar em qual CodigoTab quero cadstrar  e se esse serviço ja constar me avisaria e nao permitiria o cadastro.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  Alvaro Teixeira 2/6/2023, 17:01

    Olá Claudinei,

    Se compreendi bem a dúvida só precisa de adicionar a clausula "WHERE" no DCount, algo assim
    Código:
    ... WHERE [CodigoTab] = ' & me.SeuCampo_CodigoTab ...

    Abraço
    Ney Santos
    Ney Santos
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 351
    Registrado : 23/05/2011

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  Ney Santos 2/6/2023, 18:19

    Alvaro obrigado por responder tentei adcionar o complemennte mas nao consegui implantar sua dica
    meu codigo E: If DCount("servico", "TabeladePreco", "TxCodServ =""" & Me!TxCodServ & """") > 0 Then ....
    pelo que entendi devo acresecntar um where indicando o campo que traz o CodigoTab e isso?
    Ney Santos
    Ney Santos
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 351
    Registrado : 23/05/2011

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  Ney Santos 3/6/2023, 23:59

    Pessoal tentei seguior a dica do Alvaro Teixeir, mas o sehuinnte erro no vba:
    "Erro dedcomplilaçao:
    Sub ou function nao definida"

    a linha de codigo ficou assm:

    If DCount("servico", "TabeladePreco", WHERE("CodigoTab") = """ & me.txtab) ,(TxCodServ) =""" & Me!TxCodServ & """") > 0 Then

    ----------------------------------------
    Alguem saberia dizer onde eu errei?
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2680
    Registrado : 23/01/2018

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  crysostomo 4/6/2023, 02:40

    Boa noite colegas.
    Ney, como assim querer indicar em qual código quer cadastrar? Qual é essa finalidade do sistema querer ver em qual codigo se coloca?
    Não precisa de filtrar dois criterios, se o nome já foi cadastrado o indentificador vai está nas tabelas que foi programada. Porque para verificar o nome só depende de um campo na tabela:
    Os criterios só para filtrar listas.
    Ex:
    If DCount("*", "TabeladePreco", "CodigoTab='"& me.txtab & "'") >= 0 Then

    Porque os código são feito para relação de tabelas.
    se o nome Joana foi cadastrado na tabela clinete o indentificacos foi cadastardo nas duas tabelas (cliente e serviço), Não tenha dúvida.
    Para consulta funcionar o identificador de todos tem que está junto.
    Ex: se você está com o combox o IdCliente.column(0) nome.column(1) tudo na mesma combox, sendo assim ele vai puxar todos relacionados

    Mas para puxar dois criterios é colocar esse código no seu segundo critério.
    Código:
    strSQL = "TNome da tabela.CampoTab" & _
                "FROM Tabela" & _
                "WHERE Id da tabela= " & Me.IdCliente.column(0) & " AND tabela.campo= '" & me.nome.column(1) & "' " & _
                "ORDER BY tblProdutos.nome"
    Me.Lista.RowSource = strSQL

    Infelismente essa order by nunca da certo para mim
    Ney Santos
    Ney Santos
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 351
    Registrado : 23/05/2011

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  Ney Santos 4/6/2023, 19:22

    Prezado Crisostomo o motivo de eu precissar filtrar e que como existem sei tabelas um apra cada funcionaria
    qundo for lancar um serviço preciso saber se baquela tabela ja existe o serviço cadastrado:
    TabJosy O id e um o corte de cabelo Feminino o Id de sse serviço tambem e 1 se ja consta enta o preciso que avise.
    porem a TabNeuci o id e 2 se eu for lançar o serviço id 1 e ele nao constar permita o cadastro
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2680
    Registrado : 23/01/2018

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  crysostomo 4/6/2023, 20:04

    Nao entendi sua mensagem. Mas foi o que disse acima cada filtros com os identificadores.
    Pelo que dar a entender é que você está usando o código da tabela como ID dos funcionários.
    O que deixaria na clareza para não dar problema breve é  deixar o código das tabelas e cada funcionário com seu ID.
    Coloque a parte do banco aqui para eu e Teixeira conseguir ajudar


    Última edição por crysostomo em 4/6/2023, 20:11, editado 1 vez(es)


    .................................................................................
    Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender  o problema mais rápido para lhe ajudar. Disponho.
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Ney Santos
    Ney Santos
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 351
    Registrado : 23/05/2011

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  Ney Santos 4/6/2023, 20:11

    segue o e modelo
    Anexos
    [Resolvido]Ver se esta cadastrado AttachmentDatabase5.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (49 Kb) Baixado 13 vez(es)
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2680
    Registrado : 23/01/2018

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  crysostomo 6/6/2023, 02:31

    Boa noite Ney.
    Rapaz usei 5 codigos diverente dploock, recordSet e outro, mas não deu certo em nenhum.
    Ou pode ser que usei algum campo diferente por os nomes ser bem diferente.
    esse é um dos códigos que uso mais para verificação, mas não deu certo
    Código:
    If DCount("CodigoTab", "TabeladePreco", "CodigoTab = " & Me.CbTabFunc.Column(0) & " AND Servico = " & Me.CbItens.Column(0)) > 0 Then
        MsgBox "O Produto " & Me.TxServiço & " já está cadastrado..."
        Me.Undo
        Cancel = True
    End If
    --
    Código:
    Dim strSQL As String
    strSQL = "SELECT COUNT(*) FROM TabeladePreco WHERE CodigoTab = " & Me.CbTabFunc.Column(0) & " AND Servico = " & Me.CbItens.Column(0)

    If DCount("*", "TabeladePreco", "CodigoTab = " & Me.CbTabFunc.Column(0) & " AND Servico = " & Me.CbItens.Column(0)) > 0 Then
        MsgBox "O Produto " & Me.TxServiço & " já está cadastrado..."
        Me.Undo
        Cancel = True
    End If
    Dim strSQL As String
    strSQL = "SELECT COUNT(*) FROM TabeladePreco WHERE CodigoTab = " & Me.CbTabFunc.Column(0) & " AND Servico = '" & Me.CbItens.Column(0) & "'"

    Código:
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset(strSQL)

    If rs.Fields(0).Value > 0 Then
        MsgBox "O Produto " & Me.TxServiço & " já está cadastrado..."
        Me.Undo
        Cancel = True
    End If

    rs.Close
    Set rs = Nothing
    Dim strSQL As String
    strSQL = "SELECT COUNT(*) FROM TabeladePreco WHERE CodigoTab = " & Me.CbTabFunc.Column(0) & " AND Servico = " & Me.CbItens.Column(0)

    Código:
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset(strSQL)

    If rs.Fields(0).Value > 0 Then
        MsgBox "O Produto " & Me.TxServiço & " já está cadastrado..."
        Me.Undo
        Cancel = True
    End If

    rs.Close
    Set rs = Nothing

    e outro.
    Nenhum deu certo, da uma olhada nesses e ver se é algum campo, que vc tem mas familiariadade nele


    .................................................................................
    Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender  o problema mais rápido para lhe ajudar. Disponho.
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    avatar
    FabioGO
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 124
    Registrado : 22/08/2012

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  FabioGO 6/6/2023, 14:03

    Meio confuso, mas tente assim:

    Código:
    If DCount("servico", "TabeladePreco", "Servico = " & Me.CbItens.Column(1) & " and CodigoTab = " & Me.CbTabFunc & "") > 0 Then
    ' WHERE [CodigoTab] = ' & me.SeuCampo_CodigoTab

       'A função DCount() contou um ou mais registros existentes
       MsgBox "O Produto" & Me!TxServiço & " já esta cadastrado..."
       Me.Undo
       Cancel = True
    End If

    Obs. A combobox de nome da tabela deve ser preenchida antes para dar certo. O ideal é colocar um bloqueio para sempre exigir que ela seja preenchida antes da combo do serviço.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  Alvaro Teixeira 6/6/2023, 16:21

    Olá a todos

    Ney verifique o que o colega Crysóstomo partilhou.
    Eu não prestei atenção e indiquei erradamente a clausula WHERE, mas neste caso é como o colega indicou AND.

    Exemplo:
    Código:
    DCount("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
                & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
                & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")

    Se tiver dúvidas aperte a tecla F1 com Dcount selecionado

    Também dei uma vista de olhos à base de dados, pela descrição, não me parece que tem o campo TxCodServ (indicado a vermelho) na tabela, veja:
    [Resolvido]Ver se esta cadastrado 0233

    Abraço
    Ney Santos
    Ney Santos
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 351
    Registrado : 23/05/2011

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  Ney Santos 6/6/2023, 17:04

    pesspal muito obrigado pela ajuda deu certo
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2680
    Registrado : 23/01/2018

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  crysostomo 6/6/2023, 19:39

    Agradecemos o retorno.
    Sucesso.
    Recomendo que deixe os identificadores iguais nas tabelas para não ter problema futuuros.
    IdCliente, IdServico nas tabela que vai relacionar.
    Sucesso Basketball Basketball cheers


    .................................................................................
    Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender  o problema mais rápido para lhe ajudar. Disponho.
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  Alvaro Teixeira 7/6/2023, 00:06

    cheers

    Conteúdo patrocinado


    [Resolvido]Ver se esta cadastrado Empty Re: [Resolvido]Ver se esta cadastrado

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 2/5/2024, 21:49