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


2 participantes

    Ações conjuntas em Formulário

    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Ações conjuntas em Formulário Empty Ações conjuntas em Formulário

    Mensagem  vileman 16/9/2013, 00:28

    Olá a todos. Mais uma vez necessito da ajuda de vocês no seguinte:
    * Uso Access 2003

    Tabelas: T15_Indicadores + T151_Compras
    (Relacionamento um-para-vários)
    Formulário: F15_Indicadores + F151_Compras
    Campo mestre: CodIndicador – Campo filho: IDIndicador

    Funciona assim:
    1) Cada Indicador cadastrado convida pessoas para participar de um sistema de vendas. Então após fazer o cadastro desse convidado, o sistema fica aguardando o pagamento do mesmo para gerar uma comissão a ser paga ao Indicador em questão. No cadastro do Indicador tem o campo ‘LimiteNivelMaster’ (tipo número) que tem o valor como exemplo de 10 (como se fosse 10 créditos. Esse número pode variar) e o campo ‘LimiteLiberacao’ (tipo número), então a cada vez que um dos Convidados do Indicador faz o pagamento da Adesão no campo ‘DTPgAdesao’ (tipo Data) no evento “após atualizar” preciso que atualize o campo ‘LimiteLiberacao’ diminuindo do valor contido no campo ‘LimiteNivelMaster’ até o limite contido no campo ‘LimiteLiberacao’, e caso ultrapasse esse valor seja emitida uma mensagem no registro onde ocorra esse excedente: “Atenção! Limite de XX Créditos EXCEDIDO. Avisar ao Indicador!”, caso contrário informar a mensagem: “Registo atualizado com Sucesso no Cadastro do INDICADOR. A liberação foi feita Automaticamente !".

    2) Também existe o campo ‘TipoPagamento’ (tipo texto) onde existem 3 opções: “1: Pendente/Aguarda – 2: Pagtº Liberado – 3: Pagtº Bloqueado”. O valor padrão é 1 (Pendente/Aguarda). Então também ainda no evento “após atualizar” do campo ‘DTPgAdesao’ quando o convidado fizer o pagamento, preciso que atualize o campo ‘TipoPagamento’ para o código 2 (Pagtº Liberado) até o limite contido no campo ‘LimiteLiberacoes’ que vai diminuindo conforme já dito acima. Caso exceda o número do Limite citado no campo ‘LimiteLiberacao’, emite a mensagem já citada anteriormente, e atualiza o campo ‘TipoPagamento’ para o código 3 (Pagtº Bloqueado).

    3) Quando o convidado/indicador fizer uma nova compra através do subformulário ‘F151_Compras’ vinculado ao Formulário ‘F15_Indicadores’ (Ver relacionamento no início do tópico) no campo ‘DataCompra’ (Tabela: T151_Compras) no evento “após atualizar” que seja atualizado o Campo ‘LimiteLiberacao’ da Tabela ‘T15_Indicadores’ no Formulário ‘F15_Indicadores’ da seguinte forma: Soma mais 10 créditos (exemplo) à quantidade existente nesse campo, se for 05 com mais 10 passa a ser 15, e continua a mesma rotina acima; se for 0, passa a ser 10 e atualiza o campo ‘TipoPagamento’ de 3 (Pagtº Bloqueado) para 2 (Pagtº Liberado), caso tenha algum código nessa situação, e dentro da quantidade já atualizada, nesse exemplo de 15, então se existiam 12 com o código 3 (Pagtº Bloqueado), esses 12 ficam com o código 2 (Pagtº Liberado), e o campo ‘LimiteLiberacao’ fica atualizado com 03 créditos a favor do Indicador, e assim por diante.

    4) Também existe o campo ‘PontosAcumulados’ (tipo número) que preciso que funcione assim: a cada pagamento feito no campo ‘DTPgAdesao’ por um convidado, esse campo soma mais 1 no cadastro do Indicador Master, independente se o pagamento está como Liberado ou Bloqueado, conforme rotina dos itens acima.
    Importante: Informo que quando o convidado faz o 1º pagamento automaticamente ele torna-se um Indicador e fica atrelado a um Indicador Master que foi quem o convidou e pode convidar outras pessoas e fica sendo o Indicador Master desses seus convidados, então o cadastro é único para ambos (Indicador e Convidado), ou seja, na mesma Tabela ‘T15_Indicadores’ e Formulário ‘F15_Indicadores’ é feita toda a rotina acima, isto é, não existe uma tabela com relacionamento de um-para-vários, isto é, não tem um Indicador com vários Convidados, tentei fazer dessa forma, mas ficou mais complicado, e dessa forma como ficou satisfatória para o que eu pretendia; pois cada convidado ao tornar-se Indicador tem um Indicador Master no seu cadastro. Espero tenham entendido as questões acima. Fiz algumas buscas nesse site e fiz o seguinte com relação ao item 1:

    Private Sub DTPgAdesao_AfterUpdate()
    On Error GoTo Err_DTPgAdesao_Click
    Me!Status = "2" 'Ativo: Adesão paga
    Me!DTValidade = DTPgAdesao + 365 'Conta 01 ano de validade
    Me!DTLimitePg = DTPgAdesao + 30 'Pagto com 30 dias de limite ao Master, após pagamento do Convidado

    If TipoAdesao = 3 Then 'CONVIDADO
    Me!TipoAdesao = 4 'PASSA A SER INDICADOR
    Beep
    MsgBox "O CONVIDADO tornou-se INDICADOR e ficou Ativo no Sistema!!", vbCritical, "Sistema informa"
    End If

    If IDProduto = 1 Then
    ValCom = ValNivel1 * ComMasterA / 100 'Paga Comissão ao Master
    Exit Sub
    End If

    Me.LimiteLiberacao.Requery
    Me.TipoPagamento.SetFocus

    Teste 1: 'CurrentDb.Execute "UPDATE T15_Indicadores set [T15_Indicadores].[LimiteLiberacao] =" & Me![LimiteLiberacao] - 1 & ", WHERE Codigo = " & Me.CodIndicador & ";"

    Teste 2: 'CurrentDb.Execute "UPDATE T15_Indicadores SET LimiteLiberacao= -1 WHERE Codigo=" & CodIndicador

    Teste 3: ‘CurrentDb.Execute "UPDATE T15_Indicadores SET [T15_Indicadores].[LimiteLiberacao] =" - 1 'Comando SQL da Consulta de Atualização do Teste 4 abaixo:

    PS: além dos comandos acima testados individualmente com cada um por vez, que não funcionaram, não emitindo nenhuma mensagem de erro, mas também não atualizando o campo pretendido, usei uma Macro (Teste 4) executando uma Consulta de atualização (comando abaixo) que funciona, mas atualiza todos os registros do campo ‘LimiteLiberacoes’ da Tabela ‘T15_Indicadores’ , ou seja, não serve pois preciso apenas atualizar o registro atual no campo pretendido, conforme item 1 acima.

    Teste 4: 'DoCmd.RunMacro "M01_Diversas.LiberaPagto" 'Libera Pagto ao Master após pagamento do Convidado

    MsgBox "Registo atualizado com Sucesso no Cadastro do INDICADOR." & vbCr & "A liberação foi feita automaticamente !", vbInformation

    Exit_DTPgAdesao_Click:
    Exit Sub
    Err_DTPgAdesao_Click:
    Resume Exit_DTPgAdesao_Click
    End Sub

    Com relação aos itens 2, 3 e 4 estou tentando fazer, mas também encontro dificuldades, pois até então não havia feito nada parecido, porisso recorro aos senhores mais uma vez, agradecendo de antemão a atenção e ajuda.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    Ações conjuntas em Formulário Empty Re: Ações conjuntas em Formulário

    Mensagem  JPaulo 16/9/2013, 10:15

    Ola bom dia !

    Puxa tive uma boa meia hora a desenrolar o que escreveu....Laughing 

    Diga-me uma coisa;
    O campo LimiteLiberacao é checkbox (Sim/Não) ?


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Ações conjuntas em Formulário Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Ações conjuntas em Formulário Folder_announce_new 102 Códigos VBA Gratuitos...
    Ações conjuntas em Formulário Folder_announce_new Instruções SQL como utilizar...
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Ações conjuntas em Formulário Empty Acões conjuntas em Formulário

    Mensagem  vileman 16/9/2013, 15:46

    Olá, bom dia, JPaulo.

    É realmente acho que ficou muita coisa para entender, até eu acho que devo ter esquecido algo, mas vejo isso depois.

    Quanto a sua pergunta a resposta é que o campo 'LimiteLiberacao' não é checkbox (sim/não), pois o mesmo é alimentado a partir de outro campo: 'IDNivel' no evento "Após atualizar" com a linha de comando: "Me!LimiteLiberacao = IDNivel.Column(7)".

    Outro detalhe com relação aos itens 1 e 2:
    Quando o campo 'LimiteLiberacao' chegar a zero, usando como exemplo o limite no campo 'LimiteNivelMaster' igual a 10, e houver outros pagamentos de outros convidados, o campo 'TipoPagamento' continua sendo atualizado para 3 (Pagtº Bloqueado), conforme já dito. A questão é para lembrar que sempre que o campo 'LimiteLiberacao' for igual a zero, mas em havendo pagamento dos convidados além do número do limite permitido, isto é, em excesso, o pagamento fica bloqueado, até haver uma nova compra por parte do convidado do Indicador, ou seja, fica como que acumulando os valores a serem pagos até a condição já mencionada. Espero tenha entendido também esse detalhe que esqueci de mencionar ontem.


    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Ações conjuntas em Formulário Empty Ações conjuntas em Formulário

    Mensagem  vileman 23/9/2013, 20:13

    Estou usando o Up

    Obrigado.
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Ações conjuntas em Formulário Empty Ações Conjuntas em Formulário

    Mensagem  vileman 13/10/2013, 17:24

    Up

    Conteúdo patrocinado


    Ações conjuntas em Formulário Empty Re: Ações conjuntas em Formulário

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 18:29