MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Verificação de duplicidade através de textbox

    Compartilhe

    Jackszen78
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 03/05/2017

    Verificação de duplicidade através de textbox

    Mensagem  Jackszen78 em Qua 03 Maio 2017, 19:01

    Pessoal,
    estou fazendo um programinha em VBA para cadastrar produtos, porém, preciso que assim que o valor de uma text box for completado (atraves de leitor de código de barras) ou digitado, seja feita uma varredura na coluna b da planilha (código de barras) para verificar se há duplicidade, se houver, uma mensagem de aviso deve ser mostrada bem como a textbox limpa automaticamente, e no caso de não haver duplicidade, a gravação possa seguir seu curso!

    poderiam me ajudar por favor?

    misaelsp
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 96
    Registrado : 20/02/2013

    Re: Verificação de duplicidade através de textbox

    Mensagem  misaelsp em Qua 03 Maio 2017, 21:54

    Boa Tarde.

    Para verificar se tem duplicidade é só realizar uma busca na planilha usando um critério de busca baseado no valor que você quer verificar.

    se for em uma tabela por exemplo, ficaria assim:

    dim varVerifica

    varVerifica = dlookup ("nome do campo", "nome da tabela", "nome do campo para criterio de busca = valor desejado para comparação"


    se retornar algum valor é porque há duplicidade. se não retornar, não há duplicidade. pra verificar se retornou algum valor é só fazer um if.

    ex:
    if varVerifica > 0 then
    msgbox "Há duplicidade"
    end if


    espero ter ajudado. Smile


    .................................................................................
    É fazendo que se aprende a fazer aquilo que se deve aprender a fazer [Você precisa estar registrado e conectado para ver esta imagem.]

    Jackszen78
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 03/05/2017

    Re: Verificação de duplicidade através de textbox

    Mensagem  Jackszen78 em Qui 04 Maio 2017, 00:23

    Obrigado pela Pronta ajuda, mas na verdade, preciso de algo um pouco mais complexo, tipo quando inserido um valor na textbox (Barras), e se o valor for repetir na coluna da B da planilha, uma mensagem de aviso deverá aparecer e este valor não poderá ser gravado na planilha, mais se o valor não for repetido, ai sim prosseguir com a gravação na planilha!

    fiz o código abaixo, ele está funcionando para verificar a repetição, porém, mesmo que o valor da textbox (barras) esteja repetido, ainda sim o mesmo está possibilitando a gravação na planilha, é isso que preciso evitar!

    Private Sub Salvar_Click()

    Dim lngRow As Long

    lngRow = fncMatch(Me.Barras.Value, ThisWorkbook.Worksheets("Plan6Produtos").Columns("B"))
    If lngRow > 0 Then
    MsgBox "Este Produto já está cadastrado!", vbInformation

    'Limpar as caixas de texto
    Barras.Value = Empty
    Código.Value = Empty
    Produto.Value = Empty
    Classificação.Value = Empty
    Custo.Value = Empty
    Venda.Value = Empty



    'Colocar o foco na primeira caixa de texto
    Barras.SetFocus

    'se o valor não for repetir, Prosseguir o cadastro
    Else
    End If
    End Sub
    Function fncMatch(ByVal str As String, ByVal varVetor As Variant) As Long
    Dim Temp As Long

    On Error Resume Next
    Temp = WorksheetFunction.Match(str + 0, varVetor, 0)
    If Temp = 0 Then Temp = WorksheetFunction.Match(CStr(str), varVetor, 0)
    fncMatch = Temp



    'Ativar a sexta planilha
    ThisWorkbook.Worksheets("Plan6Produtos").Activate
    'Selecionar a célula B4
    Range("B4").Select
    'Procurar a primeira célula vazia
    Do
    If Not (IsEmpty(ActiveCell)) Then
    ActiveCell.Offset(1, 0).Select
    End If
    Loop Until IsEmpty(ActiveCell) = True
    'Carregar os dados digitados nas caixas de texto para a planilha
    ActiveCell.Offset.Value = Barras.Value
    ActiveCell.Offset(0, 1).Value = Código.Value
    ActiveCell.Offset(0, 2).Value = Produto.Value
    ActiveCell.Offset(0, 3).Value = Classificação.Value
    ActiveCell.Offset(0, 4).Value = Custo.Value
    ActiveCell.Offset(0, 5).Value = Venda.Value
    'Limpar as caixas de texto
    Barras.Value = Empty
    Código.Value = Empty
    Produto.Value = Empty
    Classificação.Value = Empty
    Custo.Value = Empty
    Venda.Value = Empty

    'Colocar o foco na primeira caixa de texto
    Barras.SetFocus


    End Function

      Data/hora atual: Seg 25 Set 2017, 00:02