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]Ajuda para entender código VBA

    Krauss
    Krauss
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 254
    Registrado : 23/12/2011

    [Resolvido]Ajuda para entender código VBA Empty [Resolvido]Ajuda para entender código VBA

    Mensagem  Krauss 7/1/2021, 19:46

    Boa tarde!

    Encontrei o código abaixo neste tópico (mensagem nº 21), porém não entendi muito bem para poder ajustar à minha necessidade.

    Alguém poderia por favor me ajudar, colocando na frente de cada linha o significado detalhado das expressões?

    Código:
    Dim curCusto As Currency
    Dim rsf As Recordset, frm As Form
    Set frm = Me
    Set rsf = Me.RecordsetClone

    If Me.IDProduto <> 0 Then
      rsf.FindFirst "[IDProduto]= '" & Me.IDProduto & "'"
      If Not rsf.NoMatch Then
          frm.Undo
          frm.Bookmark = rsf.Bookmark
          rsf.Edit
          rsf!Qtdade = rsf!Qtdade + 1
          rsf.Update
      End If
    End If

    Obrigado!


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5074
    Registrado : 20/04/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Silvio 8/1/2021, 11:31



    Dim curCusto As Currency = dimensione na memória que curCusto é moeda
    Dim rsf As Recordset, frm As Form = dimensione rsf é registro, frm é um formulário
    Set frm = Me = defina frm como sendo o formulário ativo
    Set rsf = Me.RecordsetClone = defina rsf como uma cópia do formulário ativo

    If Me.IDProduto <> 0 Then = se me.idproduto for diferente de zero então
    rsf.FindFirst "[IDProduto]= '" & Me.IDProduto & "'" = encontro o Idproduto que seja igual o idproduto que está no formulário
    If Not rsf.NoMatch Then = se não encontrar ou não for igual então
    frm.Undo = desfaça
    frm.Bookmark = rsf.Bookmark oque está no formulário é igual ao registro
    rsf.Edit = faça a edição
    rsf!Qtdade = rsf!Qtdade + 1 = a quantidade no formulário é igual a quantidade +1
    rsf.Update = atualize o registro
    End If
    End If


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."

    Krauss, Kaynan e marsch1960 gostam desta mensagem

    Krauss
    Krauss
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 254
    Registrado : 23/12/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Krauss 8/1/2021, 21:07

    Oi Silvio, boa tarde!

    Com sua explicação ficou bem mais fácil de entender. Vou tentar adaptar aqui e te retorno. Por enquanto obrigado pela ajuda!


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5074
    Registrado : 20/04/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Silvio 9/1/2021, 12:31

    Bom dia..

    Show de bola.
    Até mais !


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Krauss
    Krauss
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 254
    Registrado : 23/12/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Krauss 9/1/2021, 19:17

    Oi Silvio, boa tarde!!

    Eu tentei, mas meu conhecimento ainda é limitado a esse tipo de implementação. Se não for incomodá-lo, vc poderia me ajudar a atingir meu objetivo?

    No BD anexo, tem um form chamado "formEmissaoPedidos" com um subform onde os itens serão adicionados de acordo com o que o usuário informar no campo "leitura sku".

    Esse código que vc me explicou ali em cima, parece que ele tem a função de verificar se já existe o item na lista do subform, para evitar que exista duas linhas para o mesmo produto. No caso, se o usuário ainda não tiver inserido o código, o sistema acrescenta normal, mas se já tiver o código na lista, ele apenas soma +1 na quantidade dele em vez de acrescentar.

    Só que de todo jeito que faço, não dá certo Sad Vc pode me ajudar?
    Anexos
    [Resolvido]Ajuda para entender código VBA AttachmentBD_1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (190 Kb) Baixado 9 vez(es)


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    marcelo marques
    marcelo marques
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 976
    Registrado : 12/04/2016

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  marcelo marques 9/1/2021, 21:26

    Boa tarde a todos se todos os códigos fossem comentádos assim seria mais fácil para todos somente uma sugestão

    Krauss gosta desta mensagem

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5074
    Registrado : 20/04/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Silvio 10/1/2021, 13:50

    Bom dia.
    Krauss, de uma olhada no anexo que mandou, veio faltando algumas rotinas de inclusão.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Krauss
    Krauss
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 254
    Registrado : 23/12/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Krauss 10/1/2021, 19:21

    Oi Silvio, boa tarde!

    A quais rotinas vc se refere?


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5074
    Registrado : 20/04/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Silvio 11/1/2021, 11:06

    Bom dia.

    Não consigo adicionar itens ao sub formulário


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5074
    Registrado : 20/04/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Silvio 11/1/2021, 11:06

    Bom dia.

    Não consigo adicionar itens ao sub formulário


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Krauss
    Krauss
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 254
    Registrado : 23/12/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Krauss 11/1/2021, 20:05

    Boa tarde Silvio!

    Se vc usar somente o código abaixo no evento "Ao alterar" daí dá certinho para inserir no subformulário, porém o que eu realmente preciso é adaptar para que o sistema não insira 2 linhas para o mesmo produto, seguindo os critérios que citei na mensagem de nº 5.


    Código:
      If Len(Nz(Me.txtLeituraSKU.Text)) = 13 Then
          DoCmd.GoToControl "formDetalhesPedido"
          DoCmd.GoToRecord , , acNewRec
          Forms!formEmissaopedidos!formDetalhesPedido!txtQtdeSaida = 1
          Forms!formEmissaopedidos!formDetalhesPedido!txtSkuTamanho = txLeituraSKU
          Forms!formEmissaopedidos!formDetalhesPedido!txtCodigoProduto = Right(txtLeituraSKU, 5)
          Forms!formEmissaopedidos!txtLeituraSKU = ""
          Forms!formEmissaopedidos!txtLeituraSKU.SetFocus
       End If

    Na verdade eu preciso de ajuda para adaptar aquele código que vc me explicou, tipo substituir os nomes que estão nele pelos meus nomes (do meu form, do subform, dos campos, etc.), só que eu não consigo identificar bem quais nomes devo substituir e quais são parte do código.


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5074
    Registrado : 20/04/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Silvio 12/1/2021, 11:22

    Boas, estou aqui com 2 sistemas em desenvolvimento. Creio que a rotina abaixo poderá lhe ajudar, porém vai ter que dar um jeito de adaptar as tuas necessidades. Eu uso ela para verificar a duplicidade usando o código de produto.
    Onde,
    CodProdutoOculta = caixa de texto que recebe o valor ( numérico ou texto ) da Cbocodprod.
    CodSubped = chave primária do subformulario ( campos pai/filho ), vínculos !!



    Private Sub cbocodprod_BeforeUpdate(Cancel As Integer)
    'aqui eu faço a verificação de duplicidade de artigos dentro do pedido.
    Dim frm As Recordset
    Dim AbreFrmCor As Boolean
    Dim strProv As String, b As Byte
    Set frm = Me.RecordsetClone
    With frm
    .FindFirst "CodProdutoOculta='" & Me.cbocodprod & "' And CodSubPed=" & Me.CodSubped & ""
    If Not .NoMatch Then 'encontrou 1º valor -> coloque-o em variável para usar depois
    b = b + 1: strProv = vbCrLf & frm(0) & "-" & frm(1) & "-" & frm(2) & "-" & frm(3) & "-" & frm(4) & "-" & (5)
    .FindNext "CodProdutoOculta='" & Me.cbocodprod & "' And CodSubPed=" & Me.CodSubped
    If Not .NoMatch Then 'encontrou 2º valor -> coloque-o em variável para usar depois
    b = b + 1: strProv = vbCrLf & frm(0) & "-" & frm(1) & "-" & frm(2) & "-" & frm(3) & "-" & frm(4) & "-" & (5)
    .FindNext "CodProdutoOculta='" & Me.cbocodprod & "' And CodSubPed=" & Me.CodSubped
    If Not .NoMatch Then 'encontrou 3º valor -> coloque-o em variável para usar depois
    b = b + 1: strProv = vbCrLf & frm(0) & "-" & frm(1) & "-" & frm(2) & "-" & frm(3) & "-" & frm(4) & "-" & (5)
    .FindNext "CodProdutoOculta='" & Me.cbocodprod & "' And CodSubPed=" & Me.CodSubped
    If Not .NoMatch Then 'encontrou 4º valor -> coloque-o em variável para usar depois
    b = b + 1: strProv = vbCrLf & frm(0) & "-" & frm(1) & "-" & frm(2) & "-" & frm(3) & "-" & frm(4) & "-" & (5)
    .FindNext "CodProdutoOculta='" & Me.cbocodprod & "' And CodSubPed=" & Me.CodSubped
    If Not .NoMatch Then 'encontrou 5º valor -> coloque-o em variável para usar depois
    b = b + 1: strProv = vbCrLf & frm(0) & "-" & frm(1) & "-" & frm(2) & "-" & frm(3) & "-" & frm(4) & "-" & (5)
    If Not .NoMatch Then
    If MsgBox("Deseja repetir esse artigo ?", vbYesNo + vbInformation + vbDefaultButton2, "Confirmação") = vbYes Then
    Else
    Cancel = True
    Me.cbocodprod.Undo
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    Set frm = Nothing
    End With

    If b > 0 Then
    If MsgBox("Deseja repetir esse artigo ?" & vbCrLf & "Já existe(m) " & b & vbCrLf & _
    "Registos com esta condição:" & vbCrLf & strProv, vbYesNo, "CONFIRMAÇÃO") = vbYes Then AbreFrmCor
    Else: AbreFrmCor = False:
    Me.cbocodprod.Undo:
    Cancel = True:
    Exit Sub

    End If


    End Sub


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5074
    Registrado : 20/04/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Silvio 12/1/2021, 11:22

    Boas, estou aqui com 2 sistemas em desenvolvimento. Creio que a rotina abaixo poderá lhe ajudar, porém vai ter que dar um jeito de adaptar as tuas necessidades. Eu uso ela para verificar a duplicidade usando o código de produto.
    Onde,
    CodProdutoOculta = caixa de texto que recebe o valor ( numérico ou texto ) da Cbocodprod.
    CodSubped = chave primária do subformulario ( campos pai/filho ), vínculos !!



    Private Sub cbocodprod_BeforeUpdate(Cancel As Integer)
    'aqui eu faço a verificação de duplicidade de artigos dentro do pedido.
    Dim frm As Recordset
    Dim AbreFrmCor As Boolean
    Dim strProv As String, b As Byte
    Set frm = Me.RecordsetClone
    With frm
    .FindFirst "CodProdutoOculta='" & Me.cbocodprod & "' And CodSubPed=" & Me.CodSubped & ""
    If Not .NoMatch Then 'encontrou 1º valor -> coloque-o em variável para usar depois
    b = b + 1: strProv = vbCrLf & frm(0) & "-" & frm(1) & "-" & frm(2) & "-" & frm(3) & "-" & frm(4) & "-" & (5)
    .FindNext "CodProdutoOculta='" & Me.cbocodprod & "' And CodSubPed=" & Me.CodSubped
    If Not .NoMatch Then 'encontrou 2º valor -> coloque-o em variável para usar depois
    b = b + 1: strProv = vbCrLf & frm(0) & "-" & frm(1) & "-" & frm(2) & "-" & frm(3) & "-" & frm(4) & "-" & (5)
    .FindNext "CodProdutoOculta='" & Me.cbocodprod & "' And CodSubPed=" & Me.CodSubped
    If Not .NoMatch Then 'encontrou 3º valor -> coloque-o em variável para usar depois
    b = b + 1: strProv = vbCrLf & frm(0) & "-" & frm(1) & "-" & frm(2) & "-" & frm(3) & "-" & frm(4) & "-" & (5)
    .FindNext "CodProdutoOculta='" & Me.cbocodprod & "' And CodSubPed=" & Me.CodSubped
    If Not .NoMatch Then 'encontrou 4º valor -> coloque-o em variável para usar depois
    b = b + 1: strProv = vbCrLf & frm(0) & "-" & frm(1) & "-" & frm(2) & "-" & frm(3) & "-" & frm(4) & "-" & (5)
    .FindNext "CodProdutoOculta='" & Me.cbocodprod & "' And CodSubPed=" & Me.CodSubped
    If Not .NoMatch Then 'encontrou 5º valor -> coloque-o em variável para usar depois
    b = b + 1: strProv = vbCrLf & frm(0) & "-" & frm(1) & "-" & frm(2) & "-" & frm(3) & "-" & frm(4) & "-" & (5)
    If Not .NoMatch Then
    If MsgBox("Deseja repetir esse artigo ?", vbYesNo + vbInformation + vbDefaultButton2, "Confirmação") = vbYes Then
    Else
    Cancel = True
    Me.cbocodprod.Undo
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    Set frm = Nothing
    End With

    If b > 0 Then
    If MsgBox("Deseja repetir esse artigo ?" & vbCrLf & "Já existe(m) " & b & vbCrLf & _
    "Registos com esta condição:" & vbCrLf & strProv, vbYesNo, "CONFIRMAÇÃO") = vbYes Then AbreFrmCor
    Else: AbreFrmCor = False:
    Me.cbocodprod.Undo:
    Cancel = True:
    Exit Sub

    End If


    End Sub


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Krauss
    Krauss
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 254
    Registrado : 23/12/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Krauss 13/1/2021, 04:44

    Oi Silvio,

    Acredito que o que preciso seja um pouco mais simples rs.

    Tipo, preciso que após digitar o código no campo "txtLeituraSKU" e teclar Enter, o sistema inclua ele no subformulário "formDetalhesPedido", mas caso já exista esse código no subformulário, em vez de incluir uma nova linha para o mesmo código, o sistema apenas some +1 na quantidade dele do subform.


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  DamascenoJr. 16/1/2021, 04:11

    Krauss, já vi essa dúvida persistindo no tópico do link abaixo
    https://www.maximoaccess.com/t38771-emissao-de-pedidos-via-codigo-de-barras

    Veja o exemplo anexo desta mensagem e adapte ao seu cenário. Não esqueça de fechar este e o outro tópico onde a mesma dúvida também já existe.
    Anexos
    [Resolvido]Ajuda para entender código VBA AttachmentexAddProd.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (60 Kb) Baixado 25 vez(es)


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Krauss
    Krauss
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 254
    Registrado : 23/12/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Krauss 17/1/2021, 18:27

    Oi Damasceno, boa tarde!!

    Eu encerrei o outro tópico e peço desculpas pela duplicidade, não foi proposital. Testei seu exemplo aqui e ficou excelente! Vou tentar adaptar no meu BD e retorno para dizer se funfou.

    Por enquanto obrigado pelas ajudas que tem me prestado!


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    Krauss
    Krauss
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 254
    Registrado : 23/12/2011

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Krauss 13/6/2021, 00:00

    Boa noite!

    Consegui adaptar o código ao meu BD.

    Agradeço especialmente ao Damasceno que facilitou muito minha vida nessa parte do meu projeto.

    Abraço!


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  DamascenoJr. 13/6/2021, 00:18

    Parabéns pelo esforço e evolução.

    O fórum agradece o retorno. Sucesso.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    Conteúdo patrocinado


    [Resolvido]Ajuda para entender código VBA Empty Re: [Resolvido]Ajuda para entender código VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/4/2024, 15:40