MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    wpitarelli
    wpitarelli
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 110
    Registrado : 12/07/2010

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Atualizar Subform atraves de uma caixa de combinação

    Mensagem  wpitarelli em 11/6/2012, 18:06

    Olá a todos os colegas,

    Bem vamos a duvida que estou tendo. (lembrando que sou iniciante intermediario...rsss. Se isso existe)

    Tenho um Form Representante que é para saber o que ele recebe de comissão por mês.
    Neste form tem uma caixa de combinação que é para selecionar o ano, dai o subform atualiza pelo ano selecionado o que o representante recebeu mês a mês. Agora que vem o problema... como eu faço isso tudo acima acontecer??? Pois a ideia foi fácil de ter, o problema está na execução.

    Segue a tela

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Representante

    Caso eu não tenha sido claro,por favor perguntar. Para que eu possa esclarecer melhor

    Walter Pitarelli
    Office 2010 - Win7
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 11/6/2012, 19:09

    Boa Tarde WPitarreli, seja bem vindo ao Fórum!


    Faca uma consulta baseada na tabela que esta no subform, nesta consulta crie um campo:

    Ano Ref: Format([CampoData],"yyyy")

    No Critério deste campo coloque

    Como Forms!NomeDoSeuForm!SuaCombo.Value & "*"

    E no evento após atualiza da combo:

    Me.SubForm.Requery


    Algo por ai amigão

    Cumprimentos.
    wpitarelli
    wpitarelli
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 110
    Registrado : 12/07/2010

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  wpitarelli em 12/6/2012, 18:05

    Harysohn,
    Muito obrigado pela ajuda deu certo o que me disse sobre o topico acima.
    Como eu faço para colocar os campos mes a mes nas suas respectivas caixas.
    Logo abaixo tem a consulta que fiz.
    Abraços e desculpe o abuso.

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Dados

    Aguardo retorno,
    Abraços
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 12/6/2012, 19:23

    Abra a consulta no modo Design, e abaixo do campo, em classificação coloque Crescente.

    Cumprimentos.
    wpitarelli
    wpitarelli
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 110
    Registrado : 12/07/2010

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  wpitarelli em 13/6/2012, 02:40

    Desculpe se não fui claro...
    Na 2ª tela tem o filtro ano/mes/representante/valor queria colocar o valor destes dados nas respectivas caixas da 1ª tela, sendo que são de 1 ao 12(são os meses).

    tipo...
    1 - somente os dados de janeiro
    2 - somente os dados de fevereiro
    3 - ...

    Mas quando eu clico no ano que voce me ensinou a fazer ele filtra o ano

    Grato pela atenção e paciência
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 13/6/2012, 03:10

    Amigao.. para esta solução, os campos não seriam acoplados à consulta.

    Teria que criar um Recordset filtrado pelo ano...

    E realizar um loop pelos seus registros...
    E a cada loop preenchendo a respectiva caixa do mês...

    Se desejar envieno um exemplo consiso e faremos pra ti...

    Cumprimentos.
    wpitarelli
    wpitarelli
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 110
    Registrado : 12/07/2010

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  wpitarelli em 13/6/2012, 17:45

    eu agradeceria por um exemplo.
    Assim eu adptaria aqui
    Obrigado pela ajuda

    Segue meu anexo
    Formulario


    Última edição por wpitarelli em 13/6/2012, 18:37, editado 1 vez(es)
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 13/6/2012, 18:25

    Se puder envie esse form uma copia da tabela e consulta

    E faço pra ti

    Cumprimentos.
    wpitarelli
    wpitarelli
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 110
    Registrado : 12/07/2010

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  wpitarelli em 15/6/2012, 04:10

    Viu o anexo?
    Conseguiu fazer ai um exemplo?
    Ou uma dica.
    Abraços
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 15/6/2012, 14:15

    Amigo, nao estou conseguindo baixar deste link, favor enviar-me no e-mail.

    Harysohn@hotmail.com

    Cumprimentos.
    wpitarelli
    wpitarelli
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 110
    Registrado : 12/07/2010

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  wpitarelli em 16/6/2012, 02:07

    enviado
    grato pelo retorno
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 16/6/2012, 14:51

    Boas WPitarelli, para este problema vendo o teu bd creio que uma consulta de referência cruzada seja a melhor opão.

    A consulta de referencia cruzada exibirá os meses como colunas ai podes aplicar no teu subForm

    Abra a consulta no modo Design (Cs_CmomissaoRepresentante)
    depois dela aberta exiba-a em modo SQL, e substitua por este:


    TRANSFORM Sum(Cs_ListaPedido.PreçoTotal) AS SomaDePreçoTotal
    SELECT Format([DataPedido],"yyyy") AS [Ano Ref], TB_REPRESENTANTE.Vendedor
    FROM TB_REPRESENTANTE INNER JOIN (Cs_ListaPedido INNER JOIN Tb_Pedido ON Cs_ListaPedido.CodPedido = Tb_Pedido.CodPedido) ON TB_REPRESENTANTE.CodVendedor = Tb_Pedido.Vendedor
    GROUP BY Format([DataPedido],"yyyy"), TB_REPRESENTANTE.Vendedor
    PIVOT Format([DataPedido],"mmm");



    Abra a consulta e observe.


    Cumprimentos.
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 16/6/2012, 14:57

    Agora, como esta consulta so exibirao meses que contem registros, quando determinado representante nao tiver comissoes por exemplo em Setembro, este mes nao será exeibido na consulta de referencia cruzadas, para resolver isto basta lancar comissao para o mes de Setembro como 0,00

    E por ai..

    Cumprimentos.
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 16/6/2012, 17:31

    Outra solução e que considero mais eficaz é a que havia citado antes, da utilização de recordset filtrado pelo ano.

    Obs. Retirei no exemplo a vinculação do Form x SubForm pois como o subFOrm esta baseado em uma consulta, a vinculação Campo Mestre x FIlho esta a dar erro, Vincule seu sub form a uma consulta onde tenha apenas os demais dados do subForm, e para o preenchimento das caixas texto dos meses, esta instrução:


    'Função feita por Harysohn Pina para WPitarreli - Fórum MáximoAccess
    'Crio uma variável do tipo Array para receber os nomes abreviados do texto
    'esta função será utilizada para preenchimento das caixa texto, visto que o nome das mesmas esta como
    'ComJan, ComFev, ComAbr.....
    'Assim ao relizar o loop pelos controles eu aplico o nome Com + A função meses (que retornara: 0=Jan, 1-Fev, 2=Mar, 3=Abr etc..)

    Public Function Meses() As Variant
    Meses = Array("JAN", "FEV", "MAR", "ABR", "MAI", "JUN", "JUL", "AGO", "SET", "OUT", "NOV", "DEZ")
    End Function

    Private Sub ComboAno_AfterUpdate()
    'Remete para a função TrataErro para o tratamento de erros quando da execução da rotina
    On Error GoTo TrataErro
    Dim Db As DAO.Database
    Dim Rs As DAO.Recordset
    Dim StrSQL As String
    Dim I As Integer

    'Adiciono a esta caixa texto o ano selecionado na combo, para posterior filtragem do Recordest
    Me.txtAno = Me.ComboAno.Value
    'SQL para adicionar ao recordset os valores do mês'
    StrSQL = ("SELECT Format([DataPedido],'yyyy') AS [Ano Ref], TB_REPRESENTANTE.Vendedor, Format([DataPedido],'mmm') AS Mes," _
    & "Sum(Cs_ListaPedido.PreçoTotal) AS SomaDePreçoTotal, Format([DataPedido],'m') AS MeRes" _
    & " FROM TB_REPRESENTANTE INNER JOIN (Cs_ListaPedido INNER JOIN Tb_Pedido ON Cs_ListaPedido.CodPedido = Tb_Pedido.CodPedido)" _
    & " ON TB_REPRESENTANTE.CodVendedor = Tb_Pedido.Vendedor" _
    & " GROUP BY Format([DataPedido],'yyyy'), TB_REPRESENTANTE.Vendedor, Format([DataPedido],'mmm'), Format([DataPedido],'m');")

    'Esta é a parte que popula os campos do formulário
    'Observe que o recordset é filtrado pelo ano

    Set Db = CurrentDb
    Set Rs = Db.OpenRecordset(StrSQL)
    'Faço o loop pelos registros do recordset
    Do While Not Rs.EOF
    'Defino a quantidade de vezes que esta parte será executada, de acordo com o numero de meses do ano
    'começa em zero posto que na varivel meses o primeiro mes Jan está na posição 0 da Array

    For I = 0 To 11
    'Aqui a cada volta vai modificando o nome da caixa texto para que a cada loop do recordset
    'Modifique em que caixa será incluido o proximo registro do recordset
    ' Obserque que ("Com" & Meses(I)) - A funcao meses retornara o texto de acordo
    ' com a posicao dentro da array que vai modicando a cada looo do I

    Forms!Frm_Representante.Sub_RepresentanteComissao!("Com" & Meses(I)) = Rs!SomadePreçoTotal
    'Move para o proximo registro do Recordset
    Rs.MoveNext
    Move para a proxima variável I que vai de 0 a 11
    Next I
    Loop

    Exit Sub
    ' esses dois tratamento de erros a segui (2113 e 3021) são necessário para que quando um representante nao tiver lancamento em todos os meses, nao ocorrer erro no preenchimento dos campos.
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub

    TrataErro:
    If Err.Number = 2113 Then
    Resume Next
    ElseIf Err.Number = 3021 Then
    Exit Sub
    Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgErro = "Erro # " & Str(Err.Number) & " gerado na " & Err.Source _
    & vbNewLine & vbNewLine & "Descrição: " & Err.Description _
    & vbNewLine & vbNewLine & "Por favor contate o Administrador de Sistema."
    MsgBox MsgErro, vbMsgBoxHelpButton + vbCritical, "Erro", Err.HelpFile, Err.HelpContext
    Resume Exit_TrataErro
    End If
    End Sub


    https://dl.dropbox.com/u/26441349/WPitarelli.rar



    Cumprimentos.


    Última edição por PILOTO em 17/6/2012, 02:34, editado 1 vez(es) (Razão : Exluir parte duplicada no código)
    wpitarelli
    wpitarelli
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 110
    Registrado : 12/07/2010

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  wpitarelli em 17/6/2012, 00:24

    Harysohn,
    Cara tu é muito bom e paciente. Muito obrigado mesmo, por fazer pra mim isso nem foi ajuda.
    Mas como sabe todo sistema sempre dá uns errinhos e esses eu espero dar conta, mas se quiser tu pode me ajudar ai ainda...rssss

    1 - os valores estão indo para os meses diferentes, tipo
    mês 1 recebe valor do mês 3
    mês 2 recebe valor do mês 2
    mês 3 recebe valor do mês 5
    mês 4 recebe valor do mês 1
    mês 5 recebe valor do mês 4

    2 - se tenho mais de um representante cadastrado ele soma e coloca em qualquer campo.

    3 - se muda o ano ele não coloca R$ 0,00

    Desculpe pelo abuso
    Muito agradecido pela sua enorme atenção, paciência e disposição
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 17/6/2012, 02:19

    1 - Era so a ordem de exibição para a SQL, resolvido com a instrução ORDER BY no final da mesma.
    2 - Quanto ao funcionário a SQL tem que ter outro Critério WHERE indicando que é para exibir o registro para o Rep. selecionado.

    Para isso tem que saber em qual caixa texto no form indica a ID do Rep.

    3 - Quanto a outro ano é porque nao tem registro para o Ano.. podes colocar um valor padrão na caixa texto.


    'Função feita por Harysohn Pina para WPitarreli - Fórum MáximoAccess
    'Remete para a função TrataErro para o tratamento de erros quando da execução da rotina
    On Error GoTo TrataErro
    Dim Db As DAO.Database
    Dim Rs As DAO.Recordset
    Dim StrSQL As String
    Dim I As Integer

    'Adiciono a esta caixa texto o ano selecionado na combo, para posterior filtragem do Recordest
    Me.txtAno = Me.ComboAno.Value
    'SQL para adicionar ao recordset os valores do mês'
    StrSQL = ("SELECT TB_REPRESENTANTE.CodVendedor, Format([DataPedido],'yyyy') AS [Ano Ref], TB_REPRESENTANTE.Vendedor, Format([DataPedido],'mmm') AS Mes," _
    & "Sum(Cs_ListaPedido.PreçoTotal) AS SomaDePreçoTotal, Format([DataPedido],'m') AS MeRefs" _
    & " FROM TB_REPRESENTANTE INNER JOIN (Cs_ListaPedido INNER JOIN Tb_Pedido ON Cs_ListaPedido.CodPedido = Tb_Pedido.CodPedido)" _
    & " ON TB_REPRESENTANTE.CodVendedor = Tb_Pedido.Vendedor" _
    & " GROUP BY TB_REPRESENTANTE.CodVendedor, Format([DataPedido],'yyyy'), TB_REPRESENTANTE.Vendedor, Format([DataPedido],'mmm'), Format([DataPedido],'m')" _
    & " HAVING (((Format([DataPedido],'yyyy')) Like " & Me.txtAno & "))ORDER BY Format([DataPedido],'m');")

    'Esta é a parte que popula os campos do formulário
    'Observe que o recordset é filtrado pelo ano
    Set Db = CurrentDb
    Set Rs = Db.OpenRecordset(StrSQL)
    'Faço o loop pelos registros do recordset
    Do While Not Rs.EOF
    'Defino a quantidade de vezes que esta parte será executada, de acordo com o numero de meses do ano
    'começa em zero posto que na varivel meses o primeiro mes Jan está na posição 0 da Array
    For I = 0 To 11
    'Aqui a cada volta vai modificando o nome da caixa texto para que a cada loop do recordset
    'Modifique em que caixa será incluido o proximo registro do recordset
    ' Obserque que ("Com" & Meses(I)) - A funcao meses retornara o texto de acordo
    ' com a posicao dentro da array que vai modicando a cada looo do I
    Forms!Frm_Representante.Sub_RepresentanteComissao!("Com" & Meses(I)) = Rs!SomadePreçoTotal
    'Move para o proximo registro do Recordset
    Rs.MoveNext
    'Move para a proxima variável I que vai de 0 a 11
    Next I
    Loop

    Exit Sub
    ' esses dois tratamento de erros a segui (2113 e 3021) são necessário para que quando um representante nao tiver lancamento em todos os meses, nao ocorrer erro no preenchimento dos campos.
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub

    TrataErro:
    If Err.Number = 2113 Then
    Resume Next
    ElseIf Err.Number = 3021 Then
    Exit Sub
    Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgErro = "Erro # " & Str(Err.Number) & " gerado na " & Err.Source _
    & vbNewLine & vbNewLine & "Descrição: " & Err.Description _
    & vbNewLine & vbNewLine & "Por favor contate o Administrador de Sistema."
    MsgBox MsgErro, vbMsgBoxHelpButton + vbCritical, "Erro", Err.HelpFile, Err.HelpContext
    Resume Exit_TrataErro
    End If



    Cumprimentos.
    wpitarelli
    wpitarelli
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 110
    Registrado : 12/07/2010

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  wpitarelli em 17/6/2012, 05:57

    Muito.... mas muito obrigado por me ajudar.
    fico feliz por este fórum ter pessoas como você que dispõe de seu tempo para ajudar o próximo.
    Mais uma vez muito obrigado.


    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 17/6/2012, 13:15

    O Fórum agradece o Retorno.

    Bom trabalho.
    wpitarelli
    wpitarelli
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 110
    Registrado : 12/07/2010

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  wpitarelli em 18/7/2012, 01:28

    Harysohn,
    estive tentando e não consegui colocar o R$ 0,00 nos campos que não tem dados ao mudar de ano, pode me ajudar ainda?
    abraços
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 18/7/2012, 01:42

    Mande um print e detalhe mais a tua precisão para que eu possa ver isto.

    Abraços.
    wpitarelli
    wpitarelli
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 110
    Registrado : 12/07/2010

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  wpitarelli em 18/7/2012, 02:02

    está ficando assim, quando altero o campo ano
    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Erradon

    queria que ficasse assim
    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Ocerto

    Veja do mês 08 pra frente


    Última edição por wpitarelli em 18/7/2012, 14:10, editado 2 vez(es)
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 18/7/2012, 03:23

    Teus prints nao abriram..

    não sei se e minha net ou o link.

    Amanha abro novamente vejo.

    Até amanha.

    Cumprimentos.
    wpitarelli
    wpitarelli
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 110
    Registrado : 12/07/2010

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  wpitarelli em 19/7/2012, 19:18

    deu certo agora os prints.
    Abraços
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 19/7/2012, 20:51

    Acrescentei as linha em negrito



    Private Sub ComboAno_AfterUpdate()
    'Função feita por Harysohn Pina para WPitarreli - Fórum MáximoAccess
    'Remete para a função TrataErro para o tratamento de erros quando da execução da rotina
    On Error GoTo TrataErro
    Dim Db As DAO.Database
    Dim Rs As DAO.Recordset
    Dim StrSQL As String
    Dim I As Integer

    '==================================================================================================
    'Limpa todas as Caixas texto para receber novos valores
    For I = 0 To 11
    Forms!Frm_Representante.Sub_RepresentanteComissao!("Com" & Meses(I)) = Format(0, "Currency")
    'Move para a proxima variável I que vai de 0 a 11
    Next I
    '==================================================================================================


    'Adiciono a esta caixa texto o ano selecionado na combo, para posterior filtragem do Recordest
    Me.txtAno = Me.ComboAno.Value
    'SQL para adicionar ao recordset os valores do mês'
    StrSQL = ("SELECT TB_REPRESENTANTE.CodVendedor, Format([DataPedido],'yyyy') AS [Ano Ref], TB_REPRESENTANTE.Vendedor, Format([DataPedido],'mmm') AS Mes," _
    & "Sum(Cs_ListaPedido.PreçoTotal) AS SomaDePreçoTotal, Format([DataPedido],'m') AS MeRefs" _
    & " FROM TB_REPRESENTANTE INNER JOIN (Cs_ListaPedido INNER JOIN Tb_Pedido ON Cs_ListaPedido.CodPedido = Tb_Pedido.CodPedido)" _
    & " ON TB_REPRESENTANTE.CodVendedor = Tb_Pedido.Vendedor" _
    & " GROUP BY TB_REPRESENTANTE.CodVendedor, Format([DataPedido],'yyyy'), TB_REPRESENTANTE.Vendedor, Format([DataPedido],'mmm'), Format([DataPedido],'m')" _
    & " HAVING (((Format([DataPedido],'yyyy')) Like " & Me.txtAno & "))ORDER BY Format([DataPedido],'m');")

    'Esta é a parte que popula os campos do formulário
    'Observe que o recordset é filtrado pelo ano
    Set Db = CurrentDb
    Set Rs = Db.OpenRecordset(StrSQL)
    'Faço o loop pelos registros do recordset
    Do While Not Rs.EOF
    'Defino a quantidade de vezes que esta parte será executada, de acordo com o numero de meses do ano
    'começa em zero posto que na varivel meses o primeiro mes Jan está na posição 0 da Array
    For I = 0 To 11
    'Aqui a cada volta vai modificando o nome da caixa texto para que a cada loop do recordset
    'Modifique em que caixa será incluido o proximo registro do recordset
    ' Obserque que ("Com" & Meses(I)) - A funcao meses retornara o texto de acordo
    ' com a posicao dentro da array que vai modicando a cada looo do I
    Forms!Frm_Representante.Sub_RepresentanteComissao!("Com" & Meses(I)) = Rs!SomadePreçoTotal
    'Move para o proximo registro do Recordset
    Rs.MoveNext
    'Move para a proxima variável I que vai de 0 a 11
    Next I
    Loop

    Exit Sub
    ' esses dois tratamento de erros a segui (2113 e 3021) são necessário para que quando um representante nao tiver lancamento em todos os meses, nao ocorrer erro no preenchimento dos campos.
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub

    TrataErro:
    If Err.Number = 2113 Then
    Forms!Frm_Representante.Sub_RepresentanteComissao!("Com" & Meses(I)) = Format(0, "Currency")
    Resume Next
    ElseIf Err.Number = 3021 Then

    Exit Sub
    Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgErro = "Erro # " & Str(Err.Number) & " gerado na " & Err.Source _
    & vbNewLine & vbNewLine & "Descrição: " & Err.Description _
    & vbNewLine & vbNewLine & "Por favor contate o Administrador de Sistema."
    MsgBox MsgErro, vbMsgBoxHelpButton + vbCritical, "Erro", Err.HelpFile, Err.HelpContext
    Resume Exit_TrataErro
    End If
    End Sub


    Cumprimentos.
    wpitarelli
    wpitarelli
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 110
    Registrado : 12/07/2010

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  wpitarelli em 19/7/2012, 21:53

    Simplesmente perfeito
    Grato mais uma vez
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  HARYSOHN em 22/7/2012, 13:59

    O Fórum agradece o retorno.
    avatar
    sueli1947
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 122
    Registrado : 17/05/2013

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Tenho mesmo problema mas não consigo acrescentar

    Mensagem  sueli1947 em 8/11/2016, 22:15

    Olá amigo mestre ;
    tenho mesmo problema mas não consigo realizar o Pedido acrescentando mais itens
    Pode me ajudar ?
    posso te mandar o BD para você analisar mestre ?
    Minha experiencia é pouca tenho as idéias mas não consigo realizá-las
    Agradeço
    Att
    Sueli
    avatar
    Alesson
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 59
    Registrado : 12/03/2014

    [Resolvido]Atualizar Subform atraves de uma caixa de combinação Empty Re: [Resolvido]Atualizar Subform atraves de uma caixa de combinação

    Mensagem  Alesson em 23/7/2020, 01:26

    Prezados mestres.

    Alguém pode habilitar o link novamente?

    Grato.

      Data/hora atual: 28/9/2020, 11:25