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]Copiar formulario e sub formulario

    scandinavo
    scandinavo
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 799
    Registrado : 11/11/2009

    [Resolvido]Copiar formulario e sub formulario Empty [Resolvido]Copiar formulario e sub formulario

    Mensagem  scandinavo em 11/4/2020, 13:42

    Tenho um código (a parte que faz a copia do sub frm é do Avelino Sampaio) que faz a copias dos dados do form e do sub form esta funcionando perfeitamente.
    Mas acontece o seguinte caso eu tenha que fazer duas copias em seguida os dados do  formulário são copiados mas os dados do sub  formulário não.

    Volta a funcionar se eu fechar o formulário e reabrir.



    Segue o banco de dados para analise.
    Anexos
    [Resolvido]Copiar formulario e sub formulario AttachmentDuplicar form e sub form.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (65 Kb) Baixado 34 vez(es)
    scandinavo
    scandinavo
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 799
    Registrado : 11/11/2009

    [Resolvido]Copiar formulario e sub formulario Empty Re: [Resolvido]Copiar formulario e sub formulario

    Mensagem  scandinavo em 11/4/2020, 17:34

    Resolvi
    Estava faltando uma linha no código (rsP.MoveFirst 'para começar do inicio)

    'faz a copia dos dados do subformulario
    Dim rsP As DAO.Recordset
    Dim tbl As DAO.Recordset
    'Abre a tabela que receber? os dados
    Set tbl = CurrentDb.OpenRecordset("tblRecProduto")
    'carrega os dados do subformul?rio
    Set rsP = subfrmRecProduto.Form.RecordsetClone
    'Percorre os registros do subformul?rio um a um
    rsP.MoveFirst 'Informo para come?ar do inicio'******************Esta aqui
    Do While Not rsP.EOF
    'Copia os dados do subformul?rio para a tabela
    tbl.AddNew
    tbl!Receituario1 = Me!txtNumeroCopia
    tbl!Produto = rsP!Produto
    tbl!Dose = rsP!Dose
    tbl!Unid = rsP!Unid
    tbl.Update
    'vai para o pr?ximo registro do subformul?rio
    rsP.MoveNext

    Loop
    rs.Close
    tbl.Close
    rsP.Close
    Set tbl = Nothing
    Set rsP = Nothing
    Set db = Nothing
    MsgBox "Dados copiados...", vbInformation, "Duplica??o de Receituario"
    '*******************************************
    avatar
    kasa1982
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 06/12/2018

    [Resolvido]Copiar formulario e sub formulario Empty Re: [Resolvido]Copiar formulario e sub formulario

    Mensagem  kasa1982 em 1/9/2020, 16:22

    Scandinavo, boa tarde

    Eu usei teu código no botão btn_novo, que eu criei dentro do form FRM_Fitracao_Dt, ficando assim:

    Código:
    Private Sub btnNovo_Click()
    'Criado por: Scandinavo
    'Fonte: MaximusAcces
    'Data: 11/04/2020

    'Adiciono um novo ciclo ao registro da tablela tbl_filtracao_dt
    'faz a copia dos dados do formulário corrente FRM_Filtracao_Dt
    Dim rsP As DAO.Recordset
    Dim tbl As DAO.Recordset
    Dim cnt As Integer

    'Contador de ciclos, busco o último ciclo e adiciono 1
    cnt = DMax("[numciclo]", "tbl_filtracao_dt", "[numoper]=" & Me.numoper & "") + 1

    'Abre a tabela que receberá os dados
        Set tbl = CurrentDb.OpenRecordset("tbl_filtracao_dt")
    'carrega os dados do subformulário
        Set rsP = Me.Form.RecordsetClone
    'Percorre os registros do subformul?rio um a um
        rsP.MoveFirst 'Informo para começar do inicio'
        Do While Not rsP.EOF
    'Copia os dados do formulário para a tabela
        tbl.AddNew
            tbl!numoper = rsP!numoper
            tbl!idarea = rsP!idarea
            tbl!numciclo = cnt
            tbl!volume = rsP!volume
            tbl!operador = rsP!operador
            tbl!data_i = rsP!data_i
            tbl!hora_i = rsP!hora_i
            tbl!status = 0
            tbl!datahora_inclusao = Now()
            tbl!usuario_inclusao = getUsuarioAtual()
        tbl.Update
    'vai para o próximo registro
        rsP.MoveNext [b]'Não está indo para o registro que acabei de duplicar[/b]
    Loop
        'RS.Close [b]'Pra MIM, aqui aparece a mensagem de erro, então eu comentei essa linha[/b]
        tbl.Close
        rsP.Close
        Set tbl = Nothing
        Set rsP = Nothing
        Set db = Nothing
        
    'Atualizo o formulário de Filtro
    Forms!FRM_Filtracao_Filtro_Dt.Refresh

    End Sub

    Como corrigir os erros comentados acima? Pois preciso que assim que eu criar o registro duplicado o formulário vá para esse registro e sinceramente não sei o que o comando RS.Close faz nesse caso, poderia me auxiliar pf?
    scandinavo
    scandinavo
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 799
    Registrado : 11/11/2009

    [Resolvido]Copiar formulario e sub formulario Empty Re: [Resolvido]Copiar formulario e sub formulario

    Mensagem  scandinavo em 1/9/2020, 22:15

    ola
    o rsP.MoveNext [b]' vai o proximo registro dentro do conjunto de registros que estao sendo copiados.
    agora o que voce precisa é por fim do codigo mais uma linha que ao acabar a copia o formulario va para este novo registro copiado. por ex docmd.gotrecodset, ac last que vai para o último registro. mais ou mesmo isto se nao consegui amanhã vejo para voce.
    avatar
    kasa1982
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 06/12/2018

    [Resolvido]Copiar formulario e sub formulario Empty Re: [Resolvido]Copiar formulario e sub formulario

    Mensagem  kasa1982 em 2/9/2020, 01:47

    Caro companheiro,

    Tentei fazer assim conforme sugeriu:

    Código:
    Private Sub btnNovo_Click()
    Me.Form.AllowAdditions = True
    Dim rsP As Recordset 'Dados da linha prévia
    Dim tbl As Recordset 'Dados da tabela que será adicionado os dados
    Dim cnt As Integer   'Contador do número de Ciclos

    'Contador do Ciclo
    cnt = DMax("[numciclo]", "tbl_filtracao_dt", "[numoper]=" & Me.numoper & "") + 1

    'Abrir a tabela que receberá os dados
    Set tbl = CurrentDb.OpenRecordset("tbl_filtracao_dt")

    'Carrega os dados a serem duplicados
    Set rsP = Me.Form.RecordsetClone

    'Percorre os registros do subformulário um a um
    rsP.MoveFirst 'Informo para começar do inicio'

    Do While Not rsP.EOF

    'Copia os dados do formulário para a tabela
        tbl.AddNew
            tbl!numoper = rsP!numoper
            tbl!idarea = rsP!idarea
            tbl!numciclo = cnt
            tbl!volume = rsP!volume
            tbl!operador = rsP!operador
            tbl!data_i = rsP!data_i
            tbl!hora_i = rsP!hora_i
            tbl!status = 0
            tbl!datahora_inclusao = Now()
            tbl!usuario_inclusao = getUsuarioAtual()
        tbl.Update
    'Vai para o próximo registro
        rsP.MoveNext
    Loop
    'Fecho as conexões
        tbl.Close
        rsP.Close
        Set tbl = Nothing
        Set rsP = Nothing
        Set db = Nothing
        
    'Atualizo o formulário de Filtro
    Forms!FRM_Filtracao_Filtro_Dt.Refresh

    DoCmd.GoToRecord , , acLast

    End Sub

    Porém, acontece que o registro fica na mesma posição e não vai para o registro que acabei de clonar.
    Como efeito, eu tbm alterei esse código para [DoCmd.GoToRecord , , acNext], porém, ele foi para um registro vazio, conforme imagem abaixo

    [Resolvido]Copiar formulario e sub formulario T118

    Esse formulário [FRM_Filtracao_Dt], é filtrado no seguinte formulário antes de ser carregado:

    [Resolvido]Copiar formulario e sub formulario T216

    Após clicar em avançar nesse filtro, os dados da "tbl_filtracao_dt", são carregados no [FRM_Filtracao_Dt] com a seguinte consulta na [Fonte de Registro]:

    [Resolvido]Copiar formulario e sub formulario T316
    scandinavo
    scandinavo
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 799
    Registrado : 11/11/2009

    [Resolvido]Copiar formulario e sub formulario Empty Re: [Resolvido]Copiar formulario e sub formulario

    Mensagem  scandinavo em 2/9/2020, 14:36

    Utilizei isto em outro sistema para i para o registro especifico

    'criei uma variavel para retornar ao registro que foi editado
    Dim NContador As Integer
    NContador = Me.Contador 'captura qual ? o contador

    Me.FilterOn = False 'remove filtro
    DoCmd.OpenForm "frmCaixa", , , "Filial = '" & Forms!frmRelatorios!cmbLoja & "'" 'reabre o formm para navega??o
    'Depois de remover o filtro e liberar a navega??o volta para o registro que foi editado
    'para recalcular os lan?amentos posteriores o ADM vai ter que navegar ate o ultimo lan?amento para a loja en quest?o
    DoCmd.GoToRecord , , acGoTo, NContador

    eu acho que você poderia fazer assim

    DoCmd.GoToRecord , , acGoTo, NContador +1

    Também deve ter algum filtro ai atrapalhando ir para o registro

    Se possível posta uma parte do seu banco de dados para analise.
    avatar
    kasa1982
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 06/12/2018

    [Resolvido]Copiar formulario e sub formulario Empty Re: [Resolvido]Copiar formulario e sub formulario

    Mensagem  kasa1982 em 2/9/2020, 20:28

    Boa tarde Scandinavo,

    Segue o banco para análise.

    Abs
    Anexos
    [Resolvido]Copiar formulario e sub formulario AttachmentSIG.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.5 Mb) Baixado 2 vez(es)
    scandinavo
    scandinavo
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 799
    Registrado : 11/11/2009

    [Resolvido]Copiar formulario e sub formulario Empty Re: [Resolvido]Copiar formulario e sub formulario

    Mensagem  scandinavo em 3/9/2020, 14:07

    Inseri mais uma linha de código veja se é isto


    'Atualizo o formulário de Filtro
    Forms!FRM_Filtracao_Filtro_Dt.Refresh
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Mando o novo numero para o formulário de Filtro para a cmb txtCiclo
    'porque este formulario é vinculado a ele para a abertura
    Forms!FRM_Filtracao_Filtro_Dt!txtCiclo = cnt
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Atualizo o form e vou para o registro criado
    Forms!Frm_Filtracao_Dt.Form.Requery
    Anexos
    [Resolvido]Copiar formulario e sub formulario AttachmentSIG.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.5 Mb) Baixado 5 vez(es)
    avatar
    kasa1982
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 06/12/2018

    [Resolvido]Copiar formulario e sub formulario Empty Re: [Resolvido]Copiar formulario e sub formulario

    Mensagem  kasa1982 em 3/9/2020, 14:25

    Perfeito mestre,

    Funcionou aqui, muito obrigado pela sua ajuda.
    scandinavo
    scandinavo
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 799
    Registrado : 11/11/2009

    [Resolvido]Copiar formulario e sub formulario Empty Re: [Resolvido]Copiar formulario e sub formulario

    Mensagem  scandinavo em 3/9/2020, 15:02

    Valeu pelo retorno

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