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

    [Resolvido]Dados da Tabela A na Tabela B

    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 9/8/2013, 00:21

    Boa noite a todos
    Estive pesquisando mas não consegui resolver este problema


    Este é só parte de um BD. Na tabela B posso fazer alterções, inclusões e exclusões, pois
    a tabela A só importa dados de arquivos externos. Mas quando insiro os dados de acordo com
    o código abaixo na primeira vez funciona certo, mas quando faço alterções,
    exclusões ou inclusões a tabela B me duplica os registros ou não me deixa inserir novos registros
    recebidos na tabela A.
    Obrigado a quem puder me ajudar


    Private Sub cmdInserir_Click()

    Dim rs As DAO.Recordset
    Dim rs2 As DAO.Recordset

    Set rs = CurrentDb.OpenRecordset("tblNotasFiscaisImpostos")
    Set rs2 = CurrentDb.OpenRecordset("tblNotasFiscais")

    'Aqui verifica se já existe registros

    If DLookup("Doc", "tblNotasFiscaisImpostos", "doc=" & [Doc] & " and Cliente='" & [Cliente] & "'") Then
       'MsgBox "Registro Existente"
       Exit Sub
    Else

       
    Do While Not rs2.EOF

           
               rs.AddNew
               rs("CNPJ") = rs2("CNPJ")
               rs("Cliente") = rs2("Cliente")
               rs("Emissao") = rs2("Emissao")
               rs("Doc") = rs2("Doc")
               rs("Receita") = rs2("Receita")
               rs.Update
           

          rs2.MoveNext


    Loop
    End If
       rs.Close
       rs2.Close
    Set rs = Nothing
    Set rs2 = Nothing
    End Sub
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 9/8/2013, 00:35

    AddNew...
    Insere novos registros..

    Deves colocar uma condição para verificar se na tabela receptora tem o registros.. caso tenha direciona para uma parte do código que ao invés do AddNew.. seja Edit


    Cumprimentos.
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 9/8/2013, 00:57

    Piloto obrigado pelo seu interesse, poderia me ajudar neste código?
    Mais um detalhe estou tentando
    anexar o arquivo em zip e está me dando um aviso de "O arquivo adicionado não é valido"
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 9/8/2013, 01:08

    Deve estar compactando com .rar.. a extensão deve ser .zip


    Cumprimentos.
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 9/8/2013, 12:10

    Estou tentanto anexar o arquivo zip e está dando a mensagem "O arquivo adicionado não é valido." e tentei outros.

    Ja´ aconteceu isso com alguém?
    Obrigado
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  JPaulo 9/8/2013, 12:41

    O fórum está com um problema de anexar em .zip, terá de utilizar um hospedeiro externo, como por exemplo o Google Docs
    ou http://www.filedropper.com/



    .................................................................................
    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

    [Resolvido]Dados da Tabela A na Tabela B Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Dados da Tabela A na Tabela B Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Dados da Tabela A na Tabela B Folder_announce_new Instruções SQL como utilizar...
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 9/8/2013, 13:41

    João Paulo, obrigado pelo retorno,
    não sei se eu consegui anexar direito

    segue o link do arquivo em anexo,
    Obrigado a quem puder me ajudar



    https://docs.google.com/file/d/0BwQLBBUpSLONTkIweXdZcTgtNEU/edit
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  JPaulo 9/8/2013, 14:13

    Link sem permissão para download.


    .................................................................................
    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

    [Resolvido]Dados da Tabela A na Tabela B Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Dados da Tabela A na Tabela B Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Dados da Tabela A na Tabela B Folder_announce_new Instruções SQL como utilizar...
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 9/8/2013, 14:31

    J Paulo
    mais uma vez obrigado, vê se agora consegue
    fazer o download



    https://docs.google.com/file/d/0BwQLBBUpSLONTkIweXdZcTgtNEU/edit
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 10/8/2013, 13:39

    Bom dia a todos,

    Estáva com o Link travado e acho que agora consegui disponibilzar o aquivo
    para quem puder me ajudar

    Obrigado



    https://docs.google.com/file/d/0BwQLBBUpSLONTkIweXdZcTgtNEU/edit
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 10/8/2013, 15:00

    Não estou conseguindo baixar.. envie-me no e-mail por gentileza./.

    Harysohn@hotmail.com


    Cumprimentos.
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 10/8/2013, 15:09

    Piloto,

    mandei para seu e-mail
    Obs.: Eu estou conseguindo baixar, alguém já consegui?
    Obrigado
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 11/8/2013, 00:13

    Veja se é isto:


    Dim rs As DAO.Recordset
    Dim rs2 As DAO.Recordset

    Set rs = CurrentDb.OpenRecordset("tblNotasFiscaisImpostos")
    Set rs2 = CurrentDb.OpenRecordset("tblNotasFiscais")

    'If DLookup("Doc", "tblNotasFiscaisImpostos", "doc=" & [Doc] & " and Cliente='" & [Cliente] & "'") Then
        'MsgBox "Registro Existente"
    '    Exit Sub
    'Else
    Do While Not rs2.EOF
                'Verifica se na tabela tblNotasFiscais existe o registro, caso positivo edita, caso contrário adicona novo
                If DCount("*", "tblNotasFiscais", "Doc = " & rs2!Doc & " And Cliente='" & rs!Cliente & "'") > 0 Then
                    rs.Edit
                Else
                    rs.AddNew
                End If
                    rs("CNPJ") = rs2("CNPJ")
                    rs("Cliente") = rs2("Cliente")
                    rs("Emissao") = rs2("Emissao")
                    rs("Doc") = rs2("Doc")
                    rs("Receita") = rs2("Receita")
                    rs.Update
           rs2.MoveNext
    Loop
    'End If
        rs.Close
        rs2.Close
    Set rs = Nothing
    Set rs2 = Nothing


    Cumprimentos
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 12/8/2013, 11:42

    Piloto,
    Obrigado pela sua ajuda, mas está acontecendo o seguinte:


    -Se a tblNotasFiscaisImpostos estiver vazia da uma mensagem " (Erro 3021) Não há registro atual."
    e não atualiza e não edita.
    -Se inserido manualmente algum registro na tblNotasFiscaisImpostos, so transfere
    da tblNotasFiscais o último registro.

    Postei o arquivo novamente no google docs e tenta se consegue baixar

    Obrigado

    Arquivo em anexo:

    https://docs.google.com/file/d/0BwQLBBUpSLONbHBrVlpNV2JKNXc/edit?usp=sharing
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 13/8/2013, 04:04

    Trate o erro:


    Private Sub cmdInserir_Click()
    On Error GoTo TrataErro
    Dim rs As DAO.Recordset
    Dim rs2 As DAO.Recordset

    Set rs = CurrentDb.OpenRecordset("tblNotasFiscaisImpostos")
    Set rs2 = CurrentDb.OpenRecordset("tblNotasFiscais")

    'If DLookup("Doc", "tblNotasFiscaisImpostos", "doc=" & [Doc] & " and Cliente='" & [Cliente] & "'") Then
        'MsgBox "Registro Existente"
    '    Exit Sub
    'Else
    Do While Not rs2.EOF
          'Verifica se na tabela tblNotasFiscais existe o registro, caso positivo edita, caso contrário adicona novo
          If DCount("*", "tblNotasFiscais", "Doc = " & rs2!Doc & " And Cliente='" & rs!Cliente & "'") > 0 Then
              rs.Edit
          Else
              rs.AddNew
          End If
              rs("CNPJ") = rs2("CNPJ")
              rs("Cliente") = rs2("Cliente")
              rs("Emissao") = rs2("Emissao")
              rs("Doc") = rs2("Doc")
              rs("Receita") = rs2("Receita")
              rs.Update
     rs2.MoveNext
    Loop
    'End If
        rs.Close
        rs2.Close
    Set rs = Nothing
    Set rs2 = Nothing
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
        DoCmd.Hourglass False
        DoCmd.Echo True
    Exit Sub
    TrataErro:
        Select Case Err.Number
            Case 3021
                Resume Next
            Case Else
                DoCmd.Hourglass False
                DoCmd.Echo True
                    MsgBox "Erro Gerado no: frmNotasFiscais" _
                    & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
                    & vbNewLine & "Erro Número: " & Err.Number _
                    & vbNewLine & "linha: " & Erl _
                    & vbNewLine & "Descrição: " & Err.Description _
                    & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, Err.Number & ", linha:" & Erl
        End Select

    End Sub


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 13/8/2013, 04:18

    Havia um erro de digitação na instrução Dcount onde se refere ao cliente..
    estava Rs!Cliente quando deveria ser Rs2!Cliente, portanto não estava contando corretamente a tabela

    Eis:


    Private Sub cmdInserir_Click()
    On Error GoTo TrataErro
    Dim rs As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("tblNotasFiscaisImpostos")
    Set rs2 = CurrentDb.OpenRecordset("tblNotasFiscais")

    Do While Not rs2.EOF
          'Verifica se na tabela tblNotasFiscais existe o registro, caso positivo edita, caso contrário adicona novo
          If DCount("*", "tblNotasFiscaisImpostos", "Doc = " & rs2!Doc & " And Cliente='" & rs2!Cliente & "'") > 0 Then
              rs.Edit
          Else
              rs.AddNew
          End If
              rs("CNPJ") = rs2("CNPJ")
              rs("Cliente") = rs2("Cliente")
              rs("Emissao") = rs2("Emissao")
              rs("Doc") = rs2("Doc")
              rs("Receita") = rs2("Receita")
              rs.Update
     rs2.MoveNext
    Loop
    'End If
        rs.Close
        rs2.Close
    Set rs = Nothing
    Set rs2 = Nothing
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
        DoCmd.Hourglass False
        DoCmd.Echo True
    Exit Sub
    TrataErro:
        Select Case Err.Number
            Case 3021
                Resume Next
            Case Else
                DoCmd.Hourglass False
                DoCmd.Echo True
                    MsgBox "Erro Gerado no: frmNotasFiscais" _
                    & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
                    & vbNewLine & "Erro Número: " & Err.Number _
                    & vbNewLine & "linha: " & Erl _
                    & vbNewLine & "Descrição: " & Err.Description _
                    & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, Err.Number & ", linha:" & Erl
        End Select


    Cumprimentos.
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 13/8/2013, 16:15

    Piloto, obrigado pela sua ajuda, o código está quase certo,
    porém quando excluo algúm registro da "tblNotasFiscaisImpostos"
    e volto a inserir novamente ele está me duplicando um registro
    do meio da tabela "tblNotasFiscaisImpostos".

    Poderia mandar o BD para seu email para ser analizado?

    Obrigado
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 13/8/2013, 16:21

    Piloto,
    enviei ao seu email conforme resposta acima, me confirma se chegou

    Obrigado
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 14/8/2013, 03:13

    Cite o passo a passo que fez.. para que eu reproduza aqui.

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 14/8/2013, 03:36

    Estranho isso.. nem eu mesmo compreendi o porque..
    No entando faça assim..

    Sua tabela tem que ter um campo de chave primária.
    Coloque na tblNotaFiscal.. um campo de Numeração Atomática com o Nome ID_NF.. coloque-o como chave primária.
    Faça o mesmo para outra tabela com o nome do campo ID_NFImp

    E coloque mais um critério.. Emissao no Dcount

    On Error GoTo TrataErro
    Dim rs As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("tblNotasFiscaisImpostos")
    Set rs2 = CurrentDb.OpenRecordset("tblNotasFiscais")
    Do While Not rs2.EOF      'Verifica se na tabela tblNotasFiscais existe o registro, caso positivo edita, caso contrário adicona novo
    If DCount("*", "tblNotasFiscaisImpostos", "Doc = " & rs2!Doc & " And Cliente='" & rs2!Cliente & "' And Emissao = #" & Format(rs2!Emissao, "mm/dd/yyyy") & "#") > 0 Then
    rs.Edit
    Else
    rs.AddNew
    End If
    rs("CNPJ") = rs2("CNPJ")
    rs("Cliente") = rs2("Cliente")
    rs("Emissao") = rs2("Emissao")
    rs("Doc") = rs2("Doc")
    rs("Receita") = rs2("Receita")
    rs.Update
    rs2.MoveNext
    Loop '
    'End If
    rs.Close
    rs2.Close
    Set rs = Nothing
    Set rs2 = Nothing
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case Err.Number
    Case 3021
    Resume Next
       Case Else
       DoCmd.Hourglass False
       DoCmd.Echo True
       MsgBox "Erro Gerado no: frmNotasFiscais" _
       & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
       & vbNewLine & "Erro Número: " & Err.Number _
       & vbNewLine & "linha: " & Erl _
       & vbNewLine & "Descrição: " & Err.Description _
       & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, Err.Number & ", linha:" & Erl
       End Select




    Cumprimentos.
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 14/8/2013, 03:41

    Piloto, boa noite,

    O que está acontecendo é quando exclui algum registro no meio do
    frmNotasFiscaisImpostos e é inserido novamente de acordo com o
    código que foi passado ele está incluido um registro repetido
    no meio do frmNotasFiscaisImpostos


    Obrigado pela sua ajuda
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 14/8/2013, 04:03

    Piloto,
    coloquei os campos conforme me sugeriu e ainda continua duplicando um registro,
    o estranho que duplica só um e quando é excluido no meio do frmNotasFiscais Impostos


    Obrigado
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 14/8/2013, 04:05

    Testou o último código que enviei?


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 14/8/2013, 04:20

    Vamos retirar esse famigerado Dcount dai.

    Utilizaremos o método FindFirst do Recordset.. encontrando registro o edita caso contrário adiciona



    On Error GoTo TrataErro
    Dim rs As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim StrSQL As String
    'Carrega a variável com a SQL baseada na tblNotasFiscaisImpostos
    StrSQL = "SELECT * From tblNotasFiscaisImpostos"
    'Carrega o Recordset com a SQL
    Set rs = CurrentDb.OpenRecordset(StrSQL)
    Set rs2 = CurrentDb.OpenRecordset("tblNotasFiscais")
    Do While Not rs2.EOF      'Verifica se na tabela tblNotasFiscais existe o registro, caso positivo edita, caso contrário adicona novo
        rs.FindFirst "Doc = " & rs2!Doc & " And Cliente='" & rs2!Cliente & "' And Emissao = #" & Format(rs2!Emissao, "mm/dd/yyyy") & "#"
        If rs.NoMatch Then
            rs.AddNew
        Else
            rs.Edit
        End If
    rs("CNPJ") = rs2("CNPJ")
    rs("Cliente") = rs2("Cliente")
    rs("Emissao") = rs2("Emissao")
    rs("Doc") = rs2("Doc")
    rs("Receita") = rs2("Receita")
    rs.Update
    rs2.MoveNext
    Loop '
    'End If
    rs.Close
    rs2.Close
    Set rs = Nothing
    Set rs2 = Nothing
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case Err.Number
    Case 3021
    Resume Next
       Case Else
       DoCmd.Hourglass False
       DoCmd.Echo True
       MsgBox "Erro Gerado no: frmNotasFiscais" _
       & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
       & vbNewLine & "Erro Número: " & Err.Number _
       & vbNewLine & "linha: " & Erl _
       & vbNewLine & "Descrição: " & Err.Description _
       & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, Err.Number & ", linha:" & Erl
       End Select


    Cumprimentos.
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 14/8/2013, 12:13

    Piloto, bom dia!

    O código está ficando perfeito, não esta mais repetindo registros
    mas só um problema que eu encontrei:

    - Na "tblNotasFiscaisImpostos" posso alterar, excluir e inseri dados pelo "frmNotasFiscaisImpostos"
    - Uma vez alterado, inserido ou excluidos estes dados, preciso preservar estes dados.
    - A "tblNotasFiscais" recebe um arquivos importados xml que não edito nela
    - O que preciso é que ao incluir novos dados na "tblNotasFiscaisImpostos" que
    vierem a ser importados na "tblNotasFiscais" preservar estes dados alterados e não
    sobrepor os que já existem.
    - Quando altero um vlr na "tblNotasFiscaisImpostos" pelo formulário e executo o código
    novamente ele me sobrepões os registros alterados e preciso manté-los sem alterção

    Espero ter explicado corretamente

    Mais uma vez

    Muito Obrigado

    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 14/8/2013, 16:09

    Crie um campo do tipo Sim/não na tblNotasFiscais... Nomeie como Exportacao


    On Error GoTo TrataErro
    Dim rs As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim StrSQL As String
    Dim StrSQL1 As String
    'Carrega a variável com a SQL baseada na tblNotasFiscaisImpostos
    StrSQL = "SELECT * From tblNotasFiscaisImpostos"
    StrSQL1 = "SELECT * From tblNotasFiscais"
    'Carrega o Recordset com a SQL
    Set rs = CurrentDb.OpenRecordset(StrSQL)
    Set rs2 = CurrentDb.OpenRecordset(StrSQL1)
    Do While Not rs2.EOF      'Verifica se na tabela tblNotasFiscais existe o registro, caso positivo edita, caso contrário adicona novo
        If rs2!Exportado = 0 Then
            rs.FindFirst "Doc = " & rs2!Doc & " And Cliente='" & rs2!Cliente & "' And Emissao = #" & Format(rs2!Emissao, "mm/dd/yyyy") & "#"
            rs2.Edit
                rs2!Exportado = 1
            rs2.Update
            If rs.NoMatch Then
                rs.AddNew
            Else
                rs.Edit
            End If
            rs("CNPJ") = rs2("CNPJ")
            rs("Cliente") = rs2("Cliente")
            rs("Emissao") = rs2("Emissao")
            rs("Doc") = rs2("Doc")
            rs("Receita") = rs2("Receita")
            rs.Update
        rs2.MoveNext
    Else
        rs2.MoveNext
    End If
    Loop
    rs.Close
    rs2.Close
    Set rs = Nothing
    Set rs2 = Nothing
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case Err.Number
    Case 3021
    Resume Next
       Case Else
       DoCmd.Hourglass False
       DoCmd.Echo True
       MsgBox "Erro Gerado no: frmNotasFiscais" _
       & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
       & vbNewLine & "Erro Número: " & Err.Number _
       & vbNewLine & "linha: " & Erl _
       & vbNewLine & "Descrição: " & Err.Description _
       & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, Err.Number & ", linha:" & Erl
       End Select


    End Sub


    Cumprimentos.
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 14/8/2013, 18:09

    Piloto, boa tarde!
    Estou verificando está linha do código:

    Do While Not rs2.EOF      'Verifica se na tabela tblNotasFiscais existe o registro, caso positivo edita, caso contrário adicona novo

    Não teria que ser ao contrario, verificar na tabela "tblNotasfiscaisApuracao" e não na "tblNotasfiscais" se o registro exite ou não para poder editá-lo ou adicioná-lo?, pois é nela que faço as alterções. Acho que eu tenho que verificar é na "tblNotasfiscaisApuracao" se já exite o registro ou não para poder receber os dados a primeira tabela
    O primeiro código sem o "Dcount" funciona bem só não está mantendo os registros na tblNotasFiscaisApuração alterados.

    Obrigado
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 14/8/2013, 18:36

    Apenas o texto explicativo está no local errado...

    O exemplo está fazendo como deseja... Veja o texto abaixo totalmente explicativo..
    Já dá pra você ter com o que brincar



    On Error GoTo TrataErro
    Dim rs As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim StrSQL As String
    Dim StrSQL1 As String
    '---------------------------------------------------------------
    'Carrega a variável com a SQL baseada na tblNotasFiscaisImpostos
    '---------------------------------------------------------------
    StrSQL = "SELECT * From tblNotasFiscaisImpostos"
    StrSQL1 = "SELECT * From tblNotasFiscais"
    '----------------------------------------------------
    'Carrega o Recordset com a SQL da tblNNotasFiscaisImpostos
    '----------------------------------------------------
    Set rs = CurrentDb.OpenRecordset(StrSQL)
    '----------------------------------------------------
    'Carrega o Recordset com a SQL da tblNNotasFiscais
    '----------------------------------------------------
    Set rs2 = CurrentDb.OpenRecordset(StrSQL1)
    '----------------------------------------------------
    'Executa Loop pelo Recordset da tblNNotasFiscais
    'Para lançar seus valores na tblNostasFiscaisImpostos
    '----------------------------------------------------
    Do While Not rs2.EOF
        '--------------------------------------------------------------------------------------
        'Verifica se o registro já foi exportato. Caso esteja marcado como Não executa a rotina
        'Caso contrário vai para o próximo registro
        '--------------------------------------------------------------------------------------
        If rs2!Exportado = 0 Then
            '---------------------------------------------------------------------------------------------------------
            'Verifica se na tabela tblNotasFiscais existe o registro, caso positivo edita, caso contrário adicona novo
            '---------------------------------------------------------------------------------------------------------
            rs.FindFirst "Doc = " & rs2!Doc & " And Cliente='" & rs2!Cliente & "' And Emissao = #" & Format(rs2!Emissao, "mm/dd/yyyy") & "#"
            '-------------------------------------------------------------
            'Como o registro ainda não foi exprtado marca o mesmo como Sim
            '-------------------------------------------------------------
            rs2.Edit
                rs2!Exportado = 1
            rs2.Update
            '-------------------------------------------------------------
            'Se o registro não foi encontrado na tblNotasFiscaisImpostos
            'Adiciona novo, caso contrário o edita
            '-------------------------------------------------------------
            If rs.NoMatch Then
                rs.AddNew
            Else
                rs.Edit
            End If
            '-------------------------------------------------------------
            'Laça os dados na tblNotasFiscsaisImpostos
            '-------------------------------------------------------------
            rs("CNPJ") = rs2("CNPJ")
            rs("Cliente") = rs2("Cliente")
            rs("Emissao") = rs2("Emissao")
            rs("Doc") = rs2("Doc")
            rs("Receita") = rs2("Receita")
            '-------------------------------------------------------------
            'Atualiza o recordset
            '-------------------------------------------------------------
            rs.Update
        '-------------------------------------------------------------
        'Vai para o próximo registro
        '-------------------------------------------------------------
        rs2.MoveNext
    Else
        rs2.MoveNext
    End If
    Loop
    rs.Close
    rs2.Close
    Set rs = Nothing
    Set rs2 = Nothing
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case Err.Number
    Case 3021
    Resume Next
       Case Else
       DoCmd.Hourglass False
       DoCmd.Echo True
       MsgBox "Erro Gerado no: frmNotasFiscais" _
       & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
       & vbNewLine & "Erro Número: " & Err.Number _
       & vbNewLine & "linha: " & Erl _
       & vbNewLine & "Descrição: " & Err.Description _
       & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, Err.Number & ", linha:" & Erl
       End Select


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 14/8/2013, 18:40

    Agora.. se vai alterar na tblNostasFIscaisImpstos.. por exemplo o valor..

    Adicione este critério na instrução FindFirst...
    Porque ai  se for diferente adiciona novamente...
    Mas para isto terá que retirar o código que marca o registro na tblNotasFiscais no campo exportado
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 14/8/2013, 18:59

    Piloto, boa tarde!


    Estive analisando o código e estou pensando se não teria outro jeito com
    o primeiro código para evitar o campo "sim/não", pois o BD de origem deste tem
    +- 2500 registros na tblNotasFiscais e com tendência a cada dia aumentar mais
    assim que chega os arquivos XML do cliente. E no BD de origem antes de importar
    novos registros para tblNotasFiscais está tabela é deletada antes de receber as
    novas importações.

    Anexei o arquivo no Dropbox para você ter uma idéia
    Pelo meu pouco conhecimento em VB acho que o primeiro
    código só está faltando algúm detalhe que não estou conseguindo
    perceber para que ele funcione perfeitamente.


    https://www.dropbox.com/s/zzgksshq8orpdt3/Bdteste.zip?m


    Mais uma vez, obrigado mesmo
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 14/8/2013, 20:19

    AMigo.. Eu ja fiz de todas as formas..

    Para utilizar o primeiro código.. o DCount não está identificando corretamente..

    Apenas substitui pelo findFirst..

    Sinceramente.. não sei mais o que fazer..

    Vou fazer mais uma aqui retirando o Campo Sim/Não..

    Ai te envio e tente adaptar por ai.


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 14/8/2013, 22:38

    Agora por gentileza... efetue os teste que te falarei abaixo.

    1 - Apague os registros da tblNotaFiscaisImpostos
    2 - Exporte os registros..
    >>> Serão exportados todos os registros da tblNotasFiscais para a tblNotasFiscaisImpostos
     Verifique

    1 - Apague um dos registros da tblNostasFiscaisImpsotos
    2 - Exporte os registros
    >>>> Será exportado apenas o registro excluído
    Verifique


    1 - Altere o valor receita de um dos registros
    2 - Exporte os registros
    >>>> Será mantido o registro alterado na tblNotasFiscaisImpostos e será acrescido o registro original da tblNotasFiscais
    Verifique




    On Error GoTo TrataErro
    Dim rs As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim StrSQL As String
    Dim StrSQL1 As String
    Dim nCount As Long
    '---------------------------------------------------------------
    'Carrega a variável com a SQL baseada na tblNotasFiscaisImpostos
    '---------------------------------------------------------------
    StrSQL = "SELECT * From tblNotasFiscaisImpostos"
    StrSQL1 = "SELECT * From tblNotasFiscais"
    '----------------------------------------------------
    'Carrega o Recordset com a SQL da tblNNotasFiscaisImpostos
    '----------------------------------------------------
    Set rs = CurrentDb.OpenRecordset(StrSQL)
    '----------------------------------------------------
    'Carrega o Recordset com a SQL da tblNNotasFiscais
    '----------------------------------------------------
    Set rs2 = CurrentDb.OpenRecordset(StrSQL1)
    '----------------------------------------------------
    'Executa Loop pelo Recordset da tblNNotasFiscais
    'Para lançar seus valores na tblNostasFiscaisImpostos
    '----------------------------------------------------
    Do While Not rs2.EOF
            '---------------------------------------------------------------------------------------------------------
            'Verifica se na tabela tblNotasFiscais existe o registro, caso positivo edita, caso contrário adicona novo
            '---------------------------------------------------------------------------------------------------------
            rs.FindFirst "Doc = " & rs2!Doc & " And Cliente='" & rs2!Cliente & "' And Emissao = #" & Format(rs2!Emissao, "mm/dd/yyyy") & "# And Receita = " & rs2!Receita & ""
            '-------------------------------------------------------------
            'Se o registro não foi encontrado na tblNotasFiscaisImpostos
            'Adiciona novo, caso contrário o edita
            '-------------------------------------------------------------
            If rs.NoMatch Then
                rs.AddNew
                nCount = nCount + 1
            Else
                rs.Edit
            End If
            '-------------------------------------------------------------
            'Laça os dados na tblNotasFiscsaisImpostos
            '-------------------------------------------------------------
            rs("CNPJ") = rs2("CNPJ")
            rs("Cliente") = rs2("Cliente")
            rs("Emissao") = rs2("Emissao")
            rs("Doc") = rs2("Doc")
            rs("Receita") = rs2("Receita")
            '-------------------------------------------------------------
            'Atualiza o recordset
            '-------------------------------------------------------------
            rs.Update
        '-------------------------------------------------------------
        'Vai para o próximo registro
        '-------------------------------------------------------------
        rs2.MoveNext
    Loop
    rs.Close
    rs2.Close
    Set rs = Nothing
    Set rs2 = Nothing
    MsgBox "" & nCount & " Registros exportados."
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub
    TrataErro:
    Select Case Err.Number
    Case 3021
    Resume Next
       Case Else
       DoCmd.Hourglass False
       DoCmd.Echo True
       MsgBox "Erro Gerado no: frmNotasFiscais" _
       & vbNewLine & "No Procedimento: " & Screen.ActiveControl.Name & "" _
       & vbNewLine & "Erro Número: " & Err.Number _
       & vbNewLine & "linha: " & Erl _
       & vbNewLine & "Descrição: " & Err.Description _
       & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, Err.Number & ", linha:" & Erl
       End Select



    Cumprimentos.
    avatar
    Junior Meireles
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 14/08/2010

    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Junior Meireles 15/8/2013, 00:22

    Grande Piloto,

    Ficou perfeito!

    funcionou muito bem

    Muito obrigado pela sua ajuda e sua paciência com quem
    quer aprender

    Um abraço
    avatar
    Convidado
    Convidado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Convidado 15/8/2013, 01:20

    Não se esqueça de clicar no Joinha da mensagem que o auxiliou.

    Cumprimentos.

    Conteúdo patrocinado


    [Resolvido]Dados da Tabela A na Tabela B Empty Re: [Resolvido]Dados da Tabela A na Tabela B

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 17/5/2024, 06:34