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

    Campo duplicado

    avatar
    davidmeo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 29/06/2015

    Campo duplicado Empty Campo duplicado

    Mensagem  davidmeo 29/7/2015, 17:11

    Boa tarde, no meu banco de dados tem além de outros, os campos, NUMEROENTRADA e PLACA, gostaria que, ao entrar com uma PLACA já cadastrada o sistema me retornasse a mensagem de veículo já cadastrado. Porem, caso ele esteja cadastrado e já tenha sido liberado do estacionamento, eu possa cadastra-lo novamente, porem com o numero de NUMEROENTRADA novo. Isso pra que não seja cadastrado duas vezes o mesmo veiculo com a mesma placa sem ter sido liberado. Mas eu necessito das duas entradas cadastradas no banco de dados, pra eu poder saber quantas vezes entrou e saiu.

    Utilizei o código abaixo, extraído de pesquisas aqui no fórum. Porem ele não permite que eu cadastre um novo veiculo com a mesma placa e outro NUMEROENTRADA. Só permite que eu altere o NUMEROENTRADA.

    Alerta e Mostra Registo Duplicado no Ms Access

    Private Sub SeuCampoNoForm_BeforeUpdate(Cancel As Integer)
    Dim Busca As String
    Dim stLinkCriteria As String
    Dim rsc As DAO.Recordset
    Set rsc = Me.RecordsetClone
    Busca = Me.SeuCampoNoForm.Value
    stLinkCriteria = "SeuCampoNaTabela= '" & Busca & "'"
    If DCount("SeuCampoNaTabela", "NomeDaTabela", stLinkCriteria) > 0 Then
    Me.Undo
    Cancel = True
    MsgBox "Atencao, registo " _
    & Busca & " ja existe." _
    & vbCr & vbCr & "Vai ser mostrado o Registo.", vbInformation _
    , "Duplicado"
    rsc.FindFirst stLinkCriteria
    Me.Bookmark = rsc.Bookmark
    End If
    Set rsc = Nothing
    End Sub


    Obrigado.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Campo duplicado Empty Re: Campo duplicado

    Mensagem  Alexandre Neves 29/7/2015, 19:51

    Boa tarde,
    Sem a bd para verificar tudo, vamos tentar acertar

    stLinkCriteria = "SeuCampoNaTabela= '" & Busca & "' and CondiçãoSeuCampoLiberado=False"


    .................................................................................
    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
    davidmeo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 29/06/2015

    Campo duplicado Empty Re: Campo duplicado

    Mensagem  davidmeo 29/7/2015, 20:19

    Obrigado pela ajuda, porem, não funcionou , esta dessa maneira

    Private Sub PLACA_BeforeUpdate(Cancel As Integer)
    Dim Busca As String
    Dim stLinkCriteria As String
    Dim rsc As DAO.Recordset
    Set rsc = Me.RecordsetClone
    Busca = Me.PLACA.Value
    stLinkCriteria = "PLACA= '" & Busca & "' and PLACA=False"
    If DCount("PLACA", "CONTROLE_tbl", stLinkCriteria) > 0 Then
    Me.Undo
    MsgBox "Atencao, registo " _
    & Busca & " ja existe." _
    & vbCr & vbCr & "Vai ser mostrado o Registo.", vbInformation _
    , "Duplicado"
    rsc.FindFirst stLinkCriteria
    Me.Bookmark = rsc.Bookmark
    End If
    Set rsc = Nothing
    End Sub

    O que controla se o veiculo foi liberado ou não é o campo DATA_LIBERACAO, então se esse campo estiver datado significa que o veiculo foi liberado, caso contrario encontra-se no estacionamento.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Campo duplicado Empty Re: Campo duplicado

    Mensagem  Alexandre Neves 29/7/2015, 20:35

    Se o campo é Data_Liberacao, tinha de ser esse campo a colocar e adaptar para o tipo de dados
    stLinkCriteria = "PLACA= '" & Busca & "' and IsNull(Data_Liberacao)"


    .................................................................................
    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

    Conteúdo patrocinado


    Campo duplicado Empty Re: Campo duplicado

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 17:30