MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Ajuda com entrada de dados

    Compartilhe

    jorgek
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 72
    Registrado : 08/12/2012

    [Resolvido]Ajuda com entrada de dados

    Mensagem  jorgek em Qui 18 Fev 2016, 17:15

    Boa tarde a todos! Very Happy
    Primeiro, quero agradecer a todos os mestres q me ajudaram, aprendi bastante, junto com minha dedicação também.
    Depois de alguns meses(rsrs), volto com mais uma dúvida:

    Tenho uma rotina em que em um formulário, existe uma caixa de texto em q o usuário dá a leitura dos pedidos que estão retornando através do leitor e código de barras.

    A questão é a seguinte: existe uma rotina que verifica a quantidade de pedidos que saiu com a que o usuário está inserindo.

    Existia uma falha em que se o usuário registrasse os mesmos pedidos com na mesma quantidade o sistema liberava.

    Eu resolvi esse problema criando uma tabela temporária e uma consulta de inserção, mas se o usuário voltar a tela, terá que liberar a tabela para dar baixa novamente através de um botão.

    Gostaria de saber se alguém tem alguma idéia melhor, utilizando FOR ou alguma outra solução para que não seja necessário o usuário liberar a tabela para dar leitura novamente.

    Desde já agradeço a todos! bounce

    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1327
    Registrado : 17/03/2011

    Re: [Resolvido]Ajuda com entrada de dados

    Mensagem  Cláudio Machado em Qui 18 Fev 2016, 19:09

    Boa tarde.
    Provavelmente os números de pedidos não se repetem, certo?

    Então coloque este código no ao sair do seu campo:

    Código:


    'seta variavel recordset
    Set tabela = Me.RecordsetClone
        With tabela
            'verifica se o Pedido já está cadastrado
            .FindFirst "NumeroPedido='" & Me.NumeroPedido & "'"
            'se encontrou então
            If Not .NoMatch Then
                Cancel = True
                'Desfaz o registro
                Me.Undo
                MsgBox "Pedido já Registrado.", vbInformation, "Atenção"
                'exibe o registro já cadastrado
                Me.Bookmark = .Bookmark
              End If
        End With
     Set tabela = Nothing


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    jorgek
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 72
    Registrado : 08/12/2012

    Re: Ajuda com entrada de dados

    Mensagem  jorgek em Sex 19 Fev 2016, 12:59

    Blz, Cláudio.

    Vou tentar aqui e ver se consigo e te falo.

    jorgek
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 72
    Registrado : 08/12/2012

    Re: Ajuda com entrada de dados

    Mensagem  jorgek em Sex 19 Fev 2016, 13:30

    Então, Cláudio. É o seguinte:

    Vi que esse código é para verificar se na tabela já existe o pedido cadastrado, não é mesmo?
    O que eu preciso é o seguinte:

    Tenho a tabela de entrega: "Tb_Entrega" com o campo de ID da saída e a tabela de detalhe da entrega: "Tb_DetEntrega"
    amarrada com ID da saída também.

    A tabela de entrega tem um campo chamado QtdPedido(quantidade de pedidos)

    Quando o motorista retorna da entrega, ele traz os aceites com os números dos pedidos(número mesmo e o código de barras).

    Existe caixa de texto na tela em que o usuário vai lendo esses pedidos um a um e o campo "QtdlPed" deve bater com o campo "TotalPed".

    Antes, eles faziam leitura do mesmo aceite até bater a quantidade de pedidos. Uma certa falha.

    Agora, preciso que, além de bater a quantidade, tem que verificar se esse pedido faz parte da saída e não deixar o usuário
    repetir a leitura do pedido.

    Consegui fazer isso utilizando uma consulta de atualização que marca uma caixa na tabela de detalhe.

    Só que essa tela de retorno tem 2 abas e várias outras rotinas.
    Então, quando o usuário esquece alguma coisa e volta a tela, tem que liberar os campos marcados
    na tabela de detalhe para ele fazer a leitura novamente, já que o campo "QtdPed" foi limpo.

    Acho que consegui explicar. :p

    jorgek
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 72
    Registrado : 08/12/2012

    Re: Ajuda com entrada de dados

    Mensagem  jorgek em Sab 20 Fev 2016, 09:11

    Pessoal, consegui resolver e irei postar como fiz(pelo menos está funcional e está do jeito que eu queria):

    Primeira coisa que fiz foi verificar se o pedido faz parte da saída com Recordset.

    Depois verifico se o campo de quantidade de pedido está em branco(o usuário voltou a tela ou é uma outra saída) para limpar a tabela de verificação.

    Depois, utilizei um Dcount para verificar se o pedido já foi dado leitura.

    E por último, faço a inserção do ID da saída e do número do pedido na tabela de verificação e verifico se o campo de quantidade de pedido está em branco para receber 1 ou então ele irá receber + 1.

    É isso!
    Segue o código:

    Código:

    Dim db As DAO.Database
    Dim rsp As DAO.Recordset
    Dim strSql As String
    Set db = CurrentDb

    Dim PegaPed, PegaIDSaida, PedConfirm


    strSql = "select * from Tb_DetEntrega where IDSaida = " & IDConf & ""
    Set rsp = db.OpenRecordset(strSql)
    With rsp
    .MoveFirst

    PedConfirm = 0

    Do Until rsp.EOF
           
            PegaIDSaida = .Fields(0)
            PegaPed = .Fields(1)

            If Me.QtdPedConf = "" Then
            DoCmd.RunSQL "delete * from Tb_CompaRetornoPed"
            End If
           
            If Me.IDConf = PegaIDSaida And Me.PedidoConf = PegaPed Then
                PedConfirm = 1
               
            End If
           
            rsp.MoveNext
           
            Loop
    End With

    If PedConfirm = 0 Then

    MsgBox "Pedido inexistente ou não faz parte desta saída!", vbExclamation, "Atenção!"
    Exit Sub
    End If


                If DCount("Pedido", "Tb_CompaRetornoPed", "Pedido = " & Me.PedidoConf & "") > 0 Then
                    MsgBox "Este pedido já foi baixado!", vbExclamation, "Atenção!"
                Exit Sub
                End If


    DoCmd.SetWarnings False
    DoCmd.RunSQL "insert into Tb_CompaRetornoPed(IDSaida, Pedido) values (" & PegaIDSaida & ", " & Me.PedidoConf & ")"
           
        If QtdPedConf = "" Then
        QtdPedConf = 1
        Else
        QtdPedConf = QtdPedConf + 1
        End If
        Comando184.Visible = True
        Bt_Salvar.Visible = False

    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1327
    Registrado : 17/03/2011

    Re: [Resolvido]Ajuda com entrada de dados

    Mensagem  Cláudio Machado em Seg 22 Fev 2016, 15:26

    Bem, se resolveu, resolvido está.
    Obrigado pelo retorno.
    O Fórum agradece.


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

      Data/hora atual: Qua 07 Dez 2016, 18:15