Notifications
Clear all

Base Incompleta na conexão Excel e Access

4 Posts
3 Usuários
0 Reactions
1,340 Visualizações
(@heliofaria)
Posts: 50
Trusted Member
Topic starter
 

Olá pessoal. Novamente estou com um problema e não consigo resolver.

Tenho um código que lança dados de uma tabela no Excel direto para o Access. Essa tabela é composta por 4 colunas ( Chave, Data,Meta e Realizado). Essa tabela corresponde aos 365 dias do ano, ou seja, cada linha recebe uma data.

O problema é que após o Excel transferir as informações para o Access, algumas linhas, ou datas, não são copiadas, ou seja, a tabela que deveria conter 365 linhas, sempre contém menos. Ja fiz diversos testes e não existe um número exato de linhas as quais não são copiadas, variam entre 1 e 40 linhas.

O código que uso é este aqui em baixo. Existe outros codigos para fazerem a conexão com o banco, mas isso está Ok. Alguem pode me ajudar com isso?

Sub Consolida_Diario()

'Cria variável que armazena os comandos SQL
    Dim ComandoSQL As String
    Dim Contador As Integer
      Sheets("Consolidado Diario").Select
ActiveWorkbook.RefreshAll
    
    'looping das colunas
    Sheets("Consolidado Diario").Range("A2").Select
                       
                  Contador = 0
                  
                   'lopping das linhas
                   Do While Contador < 365
                    
                    linha = ActiveCell.Row
                    
                    'Armazena na variável o comando que fará a consulta SQL no BD Access
                    ComandoSQL = "select * from Exatidao_trato_Diario_C"
                    
                    'Chama a rotina que faz a conexão com o BD
                    Call Conecta
                    
                    'Atribui a variável de Objeto de BD a execução dos comandos SQL
                    Set consulta = banco.OpenRecordset(ComandoSQL)
                     
                          With consulta
                                    'Abre o Recordset do BD para inserção
                                    .AddNew                             
                              
                                       ' LANÇAMENTO DE DADOS DiarioS DAS FAZENDAS
        .Fields("Chave_Data") = Sheets("Consolidado Diario").Cells(linha, 1) 'Chave_Data
        .Fields("Data") = Sheets("Consolidado Diario").Cells(linha, 2) 'Data
        .Fields("Meta_Conforto") = Sheets("Consolidado Diario").Cells(linha, 3) 'Meta_Conforto
        .Fields("Real_Conforto") = Sheets("Consolidado Diario").Cells(linha, 4) 'Real_Conforto
                          
                                                                     
                                     'Se houver erro
                                     On Error Resume Next
                                    
                                    'Efetiva a atualização do BD
                                    .Update
                                    
                                     'Fecha o Recorset e a conexão com o BD
                                     consulta.Close
                                     banco.Close
                                
                                'Chama a rotina que desconecta do BD (libera variáveis objeto de BD)
                                Call Desconecta
                                    
                                ActiveCell.Offset(1, 0).Select
                                                                 
                         End With
                        
                        Contador = Contador + 1
                      
                Loop

'ActiveWorkbook.Save
'Exibe mensagem de sucesso na inclusão do registro
 MsgBox "Os resultados diarios, semanais e mensais da Fazenda Conforto foram registrados no Banco de Dados Central com sucesso! ", vbDefaultButton1, "Fabrica Virtual"       
               
        'Abandona a subrotina
        Exit Sub
      
End Sub
 
Postado : 18/11/2015 12:43 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

HelioFaria,

Boa tarde!

Poste um arquivo exemplo compactado (com dados fictícios, porém o mesmo layout) aqui no fórum. Ficará mais fácil de depurar e identificar o que está ocorrendo.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 18/11/2015 2:31 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Como o colega Morel comentou, com seu modelo (planilha/banco de dados) poderemos tentar auxilia-lo com maior propriedade/direção;
porem enquanto isso procure executar essa operação com a linha "On Error Resume Next" comentada -->On 'Error Resume Next
Essa instrução "manda" ignorar um erro "partindo" para o próximo registro.
Então podemos intuir que algum ou alguns dados não são registrados por não atenderem as restrições do banco de dados.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/11/2015 8:34 am
(@heliofaria)
Posts: 50
Trusted Member
Topic starter
 

Pessoal obrigado pelas dicas.

Não sei se há alguma ligação, mas quando estava preparando o arquivo para enviar a voces, fiz um teste: Retirei minhas bases e meu banco de dados do Google Drive - aonde estava alocado, e coloquei no meu computador.

Apos isso o problema não apareceu mais.

Se voltar a perder as informações no banco de dados informo vocês. De qualquer forma muito obrigado.

 
Postado : 19/11/2015 1:38 pm