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]Salvar Registros selecionados no formulário continuo em outra tabela.

    avatar
    gtpsp
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 01/11/2013

    [Resolvido]Salvar Registros selecionados no formulário continuo em outra tabela. Empty [Resolvido]Salvar Registros selecionados no formulário continuo em outra tabela.

    Mensagem  gtpsp em 16/1/2019, 18:53

    Olá senhores,

    Encontrei o código abaixo aqui no forum, porem não estou conseguindo fazer com que funcione no meu projeto, ele não esta percorrendo todos os registros do formulário, fiz simulação sem a condição if (registro selecionado) e o código gerou 4 registros (numero total de registros do formulário) na tabela, porem os registros gerados são referente ao primeiro registro do formulário, quando deixo a condição if ativada se o campo seleciona do primeiro esta clicado ele cria somente esse registro na tabela, mesmo tendo outros selecionados.

    Imagem do Formulário com os registros
    Imagem do Formulário




    Código:
    Dim rs As DAO.Recordset
    Dim tbl As DAO.Recordset
    Dim strSQL As String

    strSQL = "SELECT * FROM cp02cotacaoitens"
    'Abre a tabela que receberá os dados
    Set tbl = CurrentDb.OpenRecordset(strSQL)
    'carrega os dados do sub formulário
    Set rs = Forms!cotacaoitensgerardojob.RecordsetClone

    'Percorre os registros do sub forumlário um a um
    Do While Not rs.EOF
       If Me.ve08_sel <> 0 Then
          'Copia os dados do sub formulário para a tabela
           tbl.AddNew
            tbl!cp02_idorc = Me.cp01_id
            tbl!cp02_idcredor1 = Me.cp01_idcredor1
            tbl!cp02_idcredor2 = Me.cp01_idcredor2
            tbl!cp02_idcredor3 = Me.cp01_idcredor3
            tbl!cp02_idcredor3 = Me.cp01_idcredor3
            tbl!cp02_nitemjob = Me.ve08_nitem
            tbl!cp02_idprod = Me.ve08_idprod
            tbl!cp02_qtde = Me.ve08_qtde
            tbl!cp02_ultpreco = Nz(DLookup("pr06_ultpreco", "pr06produtos", "pr06_id = " & Me.ve08_idprod))
            tbl!cp02_dtultpreco = Nz(DLookup("pr06_dataultimopreco", "pr06produtos", "pr06_id = " & Me.ve08_idprod))
            tbl!cp02_nitem = Nz(DMax("cp02_nitem", "cp02cotacaoitens", "cp02_idorc = " & Me.cp01_id)) + 1
            tbl.Update
            Me.ve08_sel.Value = 0
       End If
        'vai para o proximo registro do sub formulário
        rs.MoveNext
    Loop

    tbl.Close
    rs.Close
    Set tbl = Nothing
    Set rs = Nothing

    MsgBox "Registro(s) salvo(s) com SUCESSO!", , "Gerar Cotação"



    Obrigado pela Ajuda.


    Última edição por gtpsp em 17/1/2019, 01:27, editado 1 vez(es)
    avatar
    gtpsp
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 01/11/2013

    [Resolvido]Salvar Registros selecionados no formulário continuo em outra tabela. Empty Re: [Resolvido]Salvar Registros selecionados no formulário continuo em outra tabela.

    Mensagem  gtpsp em 17/1/2019, 01:24

    Problema resolvido, além do código tem o erro de chamada me ao invés de rs, o formulário tinha campos acoplados e campos desacoplados que estavam dando erro na chamada, o codigo final ficou conforme abaixo.

    Código:
    Dim rs As DAO.Recordset
    Dim tbl As DAO.Recordset
    Dim strSQL As String

    Forms!cotacaoitensgerardojob.Requery

    strSQL = "SELECT * FROM cp02cotacaoitens"
    'Abre a tabela que receberá os dados
    Set tbl = CurrentDb.OpenRecordset(strSQL)
    'carrega os dados do sub formulário
    Set rs = Forms!cotacaoitensgerardojob.RecordsetClone

    'Percorre os registros do sub forumlário um a um
    Do While Not rs.EOF
      If rs("ve08_sel") <> 0 Then
          'Copia os dados do sub formulário para a tabela
          tbl.AddNew
            tbl!cp02_idorc = DLookup("cp01_id", "cp01cotacao", "cp01_id = " & Me.cp01_id)
            tbl!cp02_idcredor1 = DLookup("cp01_idcredor1", "cp01cotacao", "cp01_id = " & Me.cp01_id)
            tbl!cp02_idcredor2 = DLookup("cp01_idcredor2", "cp01cotacao", "cp01_id = " & Me.cp01_id)
            tbl!cp02_idcredor3 = DLookup("cp01_idcredor3", "cp01cotacao", "cp01_id = " & Me.cp01_id)
            tbl!cp02_nitemjob = rs!ve08_nitem
            tbl!cp02_idprod = rs!ve08_idprod
            tbl!cp02_qtde = rs!ve08_qtde
            tbl!cp02_ultpreco = Nz(DLookup("pr06_ultpreco", "pr06produtos", "pr06_id = " & Me.ve08_idprod))
            tbl!cp02_dtultpreco = Nz(DLookup("pr06_dataultimopreco", "pr06produtos", "pr06_id = " & Me.ve08_idprod))
            tbl!cp02_nitem = Nz(DMax("cp02_nitem", "cp02cotacaoitens", "cp02_idorc = " & Me.cp01_id)) + 1
            tbl.Update
      End If
        'vai para o proximo registro do sub formulário
        rs.MoveNext
    Loop

    tbl.Close
    rs.Close
    Set tbl = Nothing
    Set rs = Nothing

    Grato

      Data/hora atual: 8/7/2020, 06:12