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


5 participantes

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    MPS
    MPS
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 19/04/2012

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  MPS 30/4/2012, 01:43

    Caros, possuo um controle que na tabela se chama N_Saida1.
    Gostaria de emitir uma mensagem "Este número já foi lançado" quando o usuário inputasse um numero já existente.
    É possível fazer em VBA?
    Agradeço desde já!
    avatar
    badkanye
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 34
    Registrado : 20/11/2011

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Exibir mensagem quando o controle recebe um input já existente

    Mensagem  badkanye 30/4/2012, 05:44

    Olá amigo tu podes fazer assim...
    esse exemplo é dado a uma tabela produtos,
    ele vai verificar se o produto ja existe, caso exista emitirá uma msg "Produto duplicado" E se não exista registo duplicado ele faz o procedimento normal.
    este código deves colocar numa text qualquer em que achares melhor, no respetivo formulário. E os que estão verde representa a tabela. Podes fazer as suas respectivas alterações.
    os dados que estão em azul representa o registo.


    Private Sub DescriçãodoProduto_BeforeUpdate(Cancel As In teger)
    Dim Busca As String
    Dim stLinkCriteria As String
    Dim rsc As DAO.Recordset
    Set rsc = Me.RecordsetClone
    Busca = Me.DescriçãodoProduto.Value
    stLinkCriteria = "DescriçãodoProduto= '" & Busca & "'"
    If DCount("DescriçãodoProduto", "produtos", stLinkCriteria) > 0 Then
    Me.Undo
    MsgBox "Atenção " _
    & Busca & " registo já existe." _
    & vbCr & vbCr & "Irá ser mostrado o Registo.", vbInformation _
    , "Duplicado"
    rsc.FindFirst stLinkCriteria
    Me.Bookmark = rsc.Bookmark
    End If
    Set rsc = Nothing


    End Sub
    MPS
    MPS
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 19/04/2012

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  MPS 30/4/2012, 17:51

    Badkayne, ajudou muito, mas estou trabalhando com arquivo dividido, logo o que devo colocar na parte verde? O caminho? Como?
    Agradeço desde já!!
    MPS
    MPS
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 19/04/2012

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  MPS 30/4/2012, 23:13

    Badkanye, de fato o problema que não consigo corrigir é porque minha entrada neste controle é um número e não um texto! Como ficaria a programação, por favor?
    Agradeço desde já!
    avatar
    badkanye
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 34
    Registrado : 20/11/2011

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  badkanye 1/5/2012, 05:04

    A programação seria a mesma, é so substituir o registo DescriçãodoProduto e a tabela produto para o seu.
    Para ser mx pratico envia o projeto quem sabe pode ser max pratico xD.
    MPS
    MPS
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 19/04/2012

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  MPS 1/5/2012, 17:03

    Troquei a seguinte linha:
    Dim stLinkCriteria As string
    para
    Dim stLinkCriteria As Integer
    pois minhas entradas são números, mas mesmo assim dá erro na linha
    stLinkCriteria = "n_saida1= '" & Busca & "'"
    O que pode ser?

    Private Sub N_Saida1_BeforeUpdate(Cancel As Integer)
    Dim Busca As String
    Dim stLinkCriteria As Integer
    Dim rsc As DAO.Recordset
    Set rsc = Me.RecordsetClone
    Busca = Me.N_Saida1.Value
    stLinkCriteria = "n_saida1= '" & Busca & "'"
    If DCount("n_saida1", "ConRifasAA", stLinkCriteria) > 0 Then
    Me.Undo
    MsgBox "Este número " _
    & Busca & " já existe." _
    & vbCr & vbCr & "Irá ser mostrado o Registo.", vbInformation _
    , "Atenção"
    rsc.FindFirst stLinkCriteria
    Me.Bookmark = rsc.Bookmark
    End If
    Set rsc = Nothing
    End Sub
    lupe
    lupe
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 458
    Registrado : 15/07/2010

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  lupe 1/5/2012, 17:36

    Olá MPS!

    Eu uso essa rotina para localizar CPF já cadastrado.

    'Variável criada para armazenar o número do CPF
    Dim NumCPF As String
    ________________________________________________________________________

    No evento "Após atualizar" do controle, insira:

    Private Sub txtCPF_BeforeUpdate(Cancel As Integer)
    '---------------------------------------------------------------------
    'Se não houver alteração do nome, sair do procedimento, impedindo assim
    'que a função DLookup() seja disparada.

    If NumCPF = Me!txtCPF Then Exit Sub
    '---------------------------------------------------------------------
    If (Not IsNull(DLookup("[CPF]", "tblCadAluno", _
    "[CPF] ='" & Me!txtCPF & "'"))) Then
    If MsgBox("O CPF " & Me.txtCPF & " já esta cadastrado. Deseja cancelar o cadastro?", vbYesNo, "Registro Duplicado!") = vbYes Then
    Me.Undo
    End If
    End If
    End Sub



    Sucesso!


    .................................................................................
    Dividir conhecimentos é contribuir para a evolução da humanidade.
    MPS
    MPS
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 19/04/2012

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  MPS 1/5/2012, 22:39

    Lupe, não entendi!
    Esta linha eu coloco onde?
    Dim NumCPF As String
    avatar
    badkanye
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 34
    Registrado : 20/11/2011

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  badkanye 2/5/2012, 05:54


    Olá amigo este NumCPF é para colocar debaixo de Private. Veja a alteraçao:

    ________________________________________________________________________

    No evento "Após atualizar" do controle, insira:

    Private Sub txtCPF_BeforeUpdate(Cancel As Integer)
    Dim NumCPF As String
    '---------------------------------------------------------------------
    'Se não houver alteração do nome, sair do procedimento, impedindo assim
    'que a função DLookup() seja disparada.
    If NumCPF = Me!txtCPF Then Exit Sub
    '---------------------------------------------------------------------
    If (Not IsNull(DLookup("[CPF]", "tblCadAluno", _
    "[CPF] ='" & Me!txtCPF & "'"))) Then
    If MsgBox("O CPF " & Me.txtCPF & " já esta cadastrado. Deseja cancelar o cadastro?", vbYesNo, "Registro Duplicado!") = vbYes Then
    Me.Undo
    End If
    End If
    End Sub


    Boa sorte MPS
    lupe
    lupe
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 458
    Registrado : 15/07/2010

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  lupe 2/5/2012, 08:24

    MPS,

    A linha também pode ser colocada embaixo de Option Compare Database


    Sucesso!


    .................................................................................
    Dividir conhecimentos é contribuir para a evolução da humanidade.
    dadokeys90
    dadokeys90
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 84
    Registrado : 23/08/2010

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  dadokeys90 2/5/2012, 11:55

    Olá MPS!

    Digamos que o campo no qual vc se refere seja um campo código, um campo numérico.

    faça assim:

    Private Sub txtcodigo_AfterUpdate()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim parametro As String

    parametro = Me.txtcodigo

    Set db = CurrentDb()
    Set rs = db.OpenRecordset("SELECT * FROM SuaTabela WHERE SeuCampoCódigo=" & parametro)

    If rs.RecordCount > 0 Then
    MsgBox "Este código já existe!", vbExclamation, "Atenção"
    Me.txtcodigo = ""
    End If
    rs.Close
    db.Close
    End Sub
    MPS
    MPS
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 19/04/2012

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  MPS 23/5/2012, 15:27

    Colegas, desculpem-me a demora!
    Está dando erro 3464 na seguinte linha:If (Not IsNull(DLookup("[N_Saida1]", "conrifasAA", "[N_Saida1] ='" & Me!N_Saida1 & "'"))) Then
    Por quê?
    Lembro que: Este Controle N_Saida1 tem Fonte de Controle num campo também chamado N_Saida1 da tabela "Movimentacao". E está num subformulário "FrmSubRifasAA" do fomulário "FrmRifasAA". Este subformulário tem como Fonte de Registro a consulta "ConRifasAA".

    Agradeço desde já!

    Private Sub N_Saida1_BeforeUpdate(Cancel As Integer)
    'Variável criada para armazenar o número do CPF
    Dim NumCPF As String
    '________________________________________________________________________'

    'No evento "Após atualizar" do controle, insira:'

    'Private Sub txtCPF_BeforeUpdate(Cancel As Integer)'

    '---------------------------------------------------------------------
    'Se não houver alteração do nome, sair do procedimento, impedindo assim
    'que a função DLookup() seja disparada.
    'If NumCPF = Me!txtCPF Then Exit Sub'
    If NumCPF = Me!N_Saida1 Then Exit Sub
    '---------------------------------------------------------------------
    'If (Not IsNull(DLookup("[CPF]", "tblCadAluno", _ "[CPF] ='" & Me!txtCPF & "'"))) Then'
    If (Not IsNull(DLookup("[N_Saida1]", "conrifasAA", "[N_Saida1] ='" & Me!N_Saida1 & "'"))) Then
    'If MsgBox("O CPF " & Me.txtCPF & " já esta cadastrado. Deseja cancelar o cadastro?", vbYesNo, "Registro Duplicado!") = vbYes Then'
    If MsgBox("O CPF " & Me.N_Saida1 & " já esta cadastrado. Deseja cancelar o cadastro?", vbYesNo, "Registro Duplicado!") = vbYes Then
    Me.Undo
    End If
    End If
    End Sub
    MPS
    MPS
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 19/04/2012

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  MPS 23/5/2012, 15:57

    Caro Dadokeys90, o teu VBA funcionou perfeitamente. Parabéns!
    Mas tem pergunto sobre a tua solução: é possível fazer um SELECT FROM em uma consulta ou apenas em tabelas?
    Como ficaria?
    Agradeço desde já!
    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 680
    Registrado : 14/12/2010

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  julianovv 29/5/2012, 11:16

    Bom dia. Eu precisava de algo assim para registros duplicados e encontrei esta postagem na busca. Deu super certo. Parabéns ao autor!

    Wink
    MPS
    MPS
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 19/04/2012

    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  MPS 4/6/2012, 14:11

    Obrigado a todos!

    Conteúdo patrocinado


    [Resolvido]Exibir mensagem quando o controle recebe um input já existente... Empty Re: [Resolvido]Exibir mensagem quando o controle recebe um input já existente...

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 14/5/2024, 11:17