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]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 154
    Registrado : 28/02/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  MarceloSilva em 21/8/2012, 15:39

    Bom dia Caros Amigos

    Estou com uma dúvida:
    Existe a possibilidade de lançar vários registro em um subform?
    Explico

    Tenho um form que cadastra colaborador com uma determinada Função
    Neste form tem um subform de lança todos os treinamentos necessários a ser realizado para aquele colaborador com status "Não Treinado"

    Eu fiz uma filtragem em SQl que só traz os treinamentos de acordo com aquela Função.

    Obs: O motivo de minha solicitação é que algumas funções exite vários treinamentos necessários. Hoje o operador tem que lançar um por um, linha por linha, da relação dos treinamentos pertinentes aquela função.

    Gostaria de criar um botão que alimente todos os treinamentos para aquela função de uma só vês.

    Imagine cadastrar um novo colaborador e lançar a necessidade para a quela função?


    Vou detalhar:

    Cadastro o João da Silva
    com a Função: Operador de Maquina

    No subform me apresenta 3 treinamentos à listar pertinente a função "Operador de Máquina" a ser lançado a este funcionário

    treinamento 1
    treinamento 2
    treinamento 3

    Solução: em vez de passar linha por linha lançando os mesmos, a ideia seria clicar e alimentar os três treinamento listados de uma só vez

    Existe a possibilidade de se fazer?

    at.
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  ronaldojr1 em 21/8/2012, 16:10

    No VBA Tem jeito pra tudo, menos pra morte.

    Bom dia

    Eu já tive essa mesma dúvida e eu consegui resolver. Vamos ver se eu consigo te ajudar.

    Como não sei como está o seu relacionamento e nem onde fica esse campo Função e Treinamento vou tentar postar o código bem explicado pra vc adaptar ele.

    No formulário Crie o Botão coloque o seguinte código.

    'Declaração das Variaveis que vai Carregar as Tabelas Envolvidas
    dim bc as database
    dim NomeResumidoTabela1 as recordset
    dim NomeResumidoTabela2 as recordset
    dim NomeResumidoTabela3 as recordset

    ' Eu Sempre Coloco um Nome Resumido da Tabela pra ficar facil de identificar depois, mas vc pode colcoar qualquer nome

    ' Define os Valores das Variaveis
    set bc = currentdb()
    set NomeResumidoTabela1 = bc.openrecordSet("NomeTabela1")
    set NomeResumidoTabela2 = bc.openrecordSet("NomeTabela2")
    set NomeResumidoTabela3 = bc.openrecordSet("NomeTabela3")



    NomeResumidoTabela1.MoveFirst ' Move o Cursos Para o Primeiro Registro
    NomeResumidoTabela2.MoveFirst ' Move o Cursos Para o Primeiro Registro
    NomeResumidoTabela3.MoveFirst ' Move o Cursos Para o Primeiro Registro


    do while not NomeResumidoTabela1.EOF ' Percorre por todos Registro da Tabela

    if me.funcao = "Operador de Maquina" and me.CampoCoincidente = NomeResumidoTabela1.Fields("CampoCoincidente")then
    ' Vc pode colocar a Condição que Quiser no Caso eu Coloquei que o campo função for igual a operador de Máquina e quo os campos coincidente sejam iguais faça algo.

    NomeResumidoTabela1.AddNew ' Esse Comando Insere um Registro Novo, mas se vc quiser vc pode Atualizar, Apagar, Etc.

    NomeResumidoTabela1.Fields("NomeDoCampo1") = me.SeuCampo1
    NomeResumidoTabela1.Fields("NomeDoCampo2") = me.SeuCampo2

    NomeResumidoTabela1.Update ' Não esquecer esse comando, pois sem ele o registro criado não será adicinado na Tabela

    NomeResumidoTabela1.MoveNext ' Move para o Proximo Registro


    ' E assim por Diante. Se quiser Colocar esses valores na outra tabela ao mesmo tempo pode ficar a vontade. É só ir colocando os comandos dentro do IF
    por exemplo:

    NomeResumidoTabela2.addNew
    NomeResumidoTabela2.Fields("NomeDoCampo1") = me.SeuCampo1
    NomeResumidoTabela2.Fields("NomeDoCampo2") = me.SeuCampo2
    NomeResumidoTabela2.Update ' Não esquecer esse comando, pois sem ele o registro criado não será adicinado na Tabela
    NomeResumidoTabela2.MoveNext

    else

    NomeResumidoTabela1.MoveNext 'Caso não Encontre funcao vá para o proximo Registro
    endif

    Loop

    set bc = nothing 'Limpa da Memória
    set NomeResumidoTabela1 = nothing 'Limpa da Memória
    set NomeResumidoTabela2 = nothing 'Limpa da Memória
    set NomeResumidoTabela3 = nothing 'Limpa da Memória

    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 154
    Registrado : 28/02/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  MarceloSilva em 21/8/2012, 17:03

    Obrigado Ronaldo pela resposta

    mas não consegui entender o conceito:

    minha fonte de origem no subform é uma consulta
    Utilizo penas dados de uma tabela

    Quando vc diz tabelas envolvida seria as tabelas que alimentam o subform?

    Desculpe minha ignorância...rsssss

    tens algum BD para encaminhar para ficar mais claro a visualização?

    mais uma vez obrigado...
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  ronaldojr1 em 21/8/2012, 17:22

    Quando vc diz tabelas envolvida seria as tabelas que alimentam o subform?
    Sim

    Vou Mandar um Exemplo Pra vc de Um BD feito no Access 2007. Esse exemplo atualiza os campos no registro existente.

    Pra vc ver o Codigo Va no modo Design do Formulario Propriedades do Campo Cod_L > Eventos e Click no botao "...".
    Caso vc não conseguir mande o seu BD pra poder te ajudar. E qual Versão do access vc usa?
    Anexos
    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Attachmentexemplo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (93 Kb) Baixado 284 vez(es)
    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 154
    Registrado : 28/02/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  MarceloSilva em 21/8/2012, 19:04

    Ronaldo

    ainda está confuso....desculpe

    segue meu BD (o formulário é o Cadastro de Colaborador)que abrirá na abertura

    Login: Admin
    Senha: 123
    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 154
    Registrado : 28/02/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  MarceloSilva em 21/8/2012, 19:07

    a versão do access é a 2010
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  ronaldojr1 em 22/8/2012, 13:00

    Bom dia

    Veja se é isso que vc precisa.

    Eu só fiz um comportamento quando escolhe Afiador(Insere 2 treinamentos) Almoxarife(Altera Treinamentos)

    O Código está no evento ao Alterar do campo IDD_Funcao

    Cumprimentos
    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 154
    Registrado : 28/02/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  MarceloSilva em 23/8/2012, 13:18

    Bom dia Ronaldo

    Está quase lá.....

    preciso de sua ajuda mais um pouco......

    a regra é essa ao atrelar uma função ele alimenta as competências atreladas a sua função.

    Reparei que vc programou para trazer uma determinada competência (cod.) cadastrado.

    A ideia é trazer as competências de acordo com a parametrização da função

    Veja o form frm_CadCompetencia que lá eu cadastro a competência e atrelo a uma ou varias funções.

    Uma fez parametrizado, quando for cadastrar um colaborador e escolher a função, o sistema alimenta o subform de acordo com as competências daquela função parametrizada no form frm_CadCompetencia, que pode ser várias....

    No subform do cadastro de colaborador deverá alimentar somente os campos:

    ID_Situação
    DataSituação.......com a data do dia
    ID_Competencia
    DescrCompetencia
    Status = "Não Treinado"


    os outros campos IDD_Treinamento e CargaHorária, são alimentados por outro form, não sendo necessário sua aplicação nesta função vba


    Estão enviando o BD com algumas atribuições

    Desde já agradeço a atenção dada....

    at.




    ronaldojr1
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  ronaldojr1 em 23/8/2012, 14:11

    Então o que eu fiz foi justamente isso de acordo com a função escolhida o subform é alimentado, agora basta vc adaptá-lo pra todas funções, no caso eu só fiz pra afiador e almoxarife, um incluir e o outro altera respectivamente. Os campos que vc quer que atualize é so remover do código ou incluir mais campos. Os valores que vc quer que os campos tenham quando criado é vc que define, por exemplo pra cada função vc vai colocar o seguinte

    1 - if IDD_Funcao = 1 then ' 1 é o afiador de acordo com a Tabela Função

    2- sitacao.addnew ' Insere um novo Registro na tbl_situacao

    3- situacao.Fields("DataSituacao") = Date ' A função date Retorna O Data Atual no Sistema

    4- situacao.Fields("ID_Colaborador") = Me.ID_Colaborador ' Esse Campo é o que faz o SubFormulário identifica que o colabador ativo seja quem vai receber os treinamentos na tabela situação, assim fazendo o SubFormulário aparecer os novos registros.

    5- situacao.Fields("ID_Competencia") = 100 ' eu coloquei 100 só de exemplo, vc define a competencia do ID da Competencia, só que aqui vc tem que colocar o ID da Competencia se não o campo não vai ser atribuido nada

    6- situacao.Fields("IDD_Treinamento") = 100 ' aqui é a mesma coisa que o item acima
    7- situacao.Fields("Status") = "Não Treinado"

    8- situacao.update 'Salva Registro Criado

    ' Para Inserir mais Registro de Uma Vez é só repetir o Código da linha 1 até 8 dentro do IF
    9- End If

    if Idd_Funcao = 2 then ' 2 é o Almoxarife de acordo com a tabela tbl_funcao

    situacao.addnew

    Para Inserir os Campos Repetir Codigo da parte 3 até 8

    situacao.update
    endif

    E por ai Vai

    Agora pra vc inserir também em outra tabela coloque o codigo na parte que contém

    dim NomeResumidoTabela as recordset ' Declara A variável que vai Carregar a Tabela

    Set bco = CurrentDb()
    Set situacao = bco.OpenRecordset("tbl_Situação") ' Define a Variavel que recebe a tab
    set NomeResumidoTabela= bco.OpenRecordSet("NomeTabela") ' idem

    e na hora de inserir use o código

    NomeResumidoTabela.AddNew

    NomeResumidoTabela.Fields("NomeDoCampoDaTabela")=Valor que Vc Quiser

    NomeResumodoTabela.Update

    é só Colar o código ja Feito e substituir os Valores, lembra da parte

    situacao.AddNew 'Novo Registro

    sitacao.fields("IDD_Colaborador")=1

    situacao.Update ' Salva Registro

    então é só seguir essa lógica que não tem erro.

    Cumprimentos
    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 154
    Registrado : 28/02/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  MarceloSilva em 23/8/2012, 15:04

    Eis a questão

    O problema é o tamanho do código. Veja bem, posso ter várias funções...
    Alem disso sua programação diz que tenho que definir o cód para ID_Competência para aquela função (no seu exemplo foi o 100)

    Imagine atribuir todos os códigos de competência cadastrado no BD?

    Através do seu exemplo entendo o conceito, porem não consegui unificar no código para as várias possibilidade de registro que irão surgir.

    at.

    ronaldojr1
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  ronaldojr1 em 23/8/2012, 17:52

    boa tarde

    então quanto a isso não tem jeito pq seu banco de dados ta bem complexo tem muito dlookup pelas tabelas por isso o ID_Competencia tem que ser o ID e não o nome da competencia, na programação não tem jeito de automatiza pelo menos eu não sei fazer isso, realmente vc vai ter que fazer função a função, minha ideia pro código não ficar tão grande é fazer várias Function uma para cada função. exemplo:

    no modulo

    Function FuncaoAfiador(ID_Colaborador as long)

    Seu Codigo

    End Function

    Com isso O código vai ficar mais fácil fazer manutenção pq pra cada function vai ser uma função ou Competencia.


    e no formulario vc coloca

    if IDD_Funcao=1 then

    FuncaoAfiador(ID_Colaborador)

    elseif IDD_Funcao=2 then

    FuncaoAlmoxarife(ID_Colaborador)

    .
    .
    .
    endif

    Cumprimentos


    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 154
    Registrado : 28/02/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  MarceloSilva em 23/8/2012, 19:37

    Mesmo assim fica inviável, tendo em vista que terá possibilidade de novos cadastros, tanto de competência quando de Função.

    Mas enfim Ronaldo, agradeço sua atenção e esforço.

    Caso alguém no fórum tenha alguma solução para o caso, me posicione.

    at.
    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 154
    Registrado : 28/02/2011

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  MarceloSilva em 29/8/2012, 14:19

    sem solução ainda.....
    Estou encerrando....
    avatar
    Alesson
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo? Empty Re: [Resolvido]Lançar Vários Registros em Subformulário ao mesmo Tempo?

    Mensagem  Alesson em 19/7/2020, 00:24

    Prezados Mestres, boa noite.

    Alguém tem alguma idéia de como proceder na solicitação acima?
    Estou há algum tempo procurando algo nesse sentido, mas até o momento ainda não encontrei.
    Alguém pode dar uma dica de como fazer ou onde achar algum exemplo?

    Agradeço desde já.

      Data/hora atual: 11/8/2020, 14:39