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


3 participantes

    [Resolvido]Importar dados Excel

    abjinfo
    abjinfo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 02/07/2015

    [Resolvido]Importar dados Excel Empty [Resolvido]Importar dados Excel

    Mensagem  abjinfo 28/2/2018, 19:59

    Olá Forum!

    Eu peguei a contribuição do Alexandre Neves para importação de dados do Excel, que funcionou perfeitamente para uma tabela.
    Bom copiei e alterei os campos para importar para outra tabela e está dando este erro abaixo.
    Já conferi os campos e não tem erro. Será que tem limitação de campos?


    Erro em tempo de execução 3061
    Parâmetros insuficientes. Eram esperados2.

    Estou postando o código abaixo para ser analisado. Provavelmente eu não estou vendo o erro.

    Obrigado.

    Ps.. Vou posta em Zip, pois não consigo colar aqui.
    Anexos
    [Resolvido]Importar dados Excel AttachmentImportaçãoExcel.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (2 Kb) Baixado 35 vez(es)
    wearaujo
    wearaujo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 04/02/2010

    [Resolvido]Importar dados Excel Empty Re: [Resolvido]Importar dados Excel

    Mensagem  wearaujo 5/3/2018, 01:08

    Amigão eu vi que você tem muitos campos na tabela, confirme o nome de todos os campo este erro esta me parecendo que algum nome de campo da sua tabela esta invalido !!!

    Att.
    Wellington
    abjinfo
    abjinfo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 02/07/2015

    [Resolvido]Importar dados Excel Empty Re: [Resolvido]Importar dados Excel

    Mensagem  abjinfo 6/3/2018, 01:24

    Olá Wellington!

    Obrigado por responde.
    Realmente é muitos campos, mais eu já chequei campo por campo e os nomes estão todos certos, como são muitos eu fiz uma impressão da tabela e depois que montei o código usei localizar para cada campo e ver se estava correto.
    O engraçado que eu já tenho para outra tabela e roda normal, lógico que neste caso são 6 campos.
    Não podemos desistir, vou refazer todo a descrição novamente até ver a onde que eu errei, rsrsrs.
    Obrigado pela atenção.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Importar dados Excel Empty Re: [Resolvido]Importar dados Excel

    Mensagem  FabioPaes 6/3/2018, 13:01

    Amigo, vc tem que nos ajudar a descobrir o problema!
    Veja que citou apenas o Erro. Tá, mas quando dá o erro, ele aponta exatamente a linha onde ocorreu o erro! Porque não citou aqui pra nós?

    Outra coisa, um código que já funciona não possui erros passivos de serem achados apenas lendo o código! Se ocorre o erro em um a tabela e em outra não, o problema está no Campos da tabela!

    Então, com as informações que postou é impossível sabermos com certeza onde está o erro!

    Eu acredito que está mandando um Texto para um campo da tabela onde está configurado como Número! Mas como te falei, não da pra saber com essas informações! 

    Nos ajude a te ajudar! Poste o Exemplo!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    abjinfo
    abjinfo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 02/07/2015

    [Resolvido]Importar dados Excel Empty Re: [Resolvido]Importar dados Excel

    Mensagem  abjinfo 6/3/2018, 16:35

    Olá Fabio!

    Ok, vc tem razão e quero pedir desculpas a vc e ao Wellington.

    Segue DB.

    Obrigado.
    Anexos
    [Resolvido]Importar dados Excel AttachmentImpExpExcel.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (166 Kb) Baixado 39 vez(es)
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Importar dados Excel Empty Re: [Resolvido]Importar dados Excel

    Mensagem  FabioPaes 6/3/2018, 17:28

    Amigo, o código possui uma série de erros. Mas na Maioria ERROS Ortográficos mesmo! Nome de Campos que Não existem em sua tabela.

    O Erro mencionado no Tópico refere-se aos campos destacados a baixo, que não existiam na tabela:

    ccEnderecoTabccEnderecoTrab

    ccTelTabalho ccTelTrabalho


    Muita atenção na Escrita amigo!!!!


    Outra coisa, os campos de sua tabela, na sua maioria Não permitem Cumprimento Zero, ou seja tem que ter algo la... E sua Planilha Exemplo, boa parte dos campos Não estão preenchidos! Isso Ocasionará erros!

    Dica: Se vai utilizar todos os campos da tabela, então precisará listar campo a campo no SELECT, basta encurtar a Instrução e utilizar o SELECT * FROM NOMETABELA

    Veja o Código a Baixo, esta funcionando no exemplo enviado, ressalvo os campos em branco...




    Código:
    Private Sub btnImportarCli_Click()
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '   código criado por Alexandre Neves, do Fórum MaximoAccess                                                '
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Dim rst As DAO.Recordset, LivroExcel, Linha As Integer

    CurrentDb.Execute "DELETE * FROM tbl_Clientes;"
    Set rs = CurrentDb.OpenRecordset("tbl_Clientes")

    'criar ligação com excel
    Set LivroExcel = CreateObject("Excel.Application")
    LivroExcel.workbooks.Open CurrentProject.Path & "\TransmiteArquivo\tbl_Clientes.xlsx"

    'criar recordet
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM tbl_Clientes")
    'cria novo registo na tabela e importa do excel
    Linha = 2
    Do While LivroExcel.cells(Linha, 1)
    rst.AddNew
    rst("ccVarCli") = LivroExcel.cells(Linha, 1)
    rst("ccTipCli") = LivroExcel.cells(Linha, 2)
    rst("cvCodEmp") = LivroExcel.cells(Linha, 3)
    rst("ccIndustrial") = LivroExcel.cells(Linha, 4)
    rst("ccLimpeza") = LivroExcel.cells(Linha, 5)
    rst("ccDescriçãoPar") = LivroExcel.cells(Linha, 6)
    rst("ccNomCli") = LivroExcel.cells(Linha, 7)
    rst("ccNomFan") = LivroExcel.cells(Linha, 8)
    rst("ccNomCon") = LivroExcel.cells(Linha, 9)
    rst("ccEndereco") = LivroExcel.cells(Linha, 10)
    rst("ccBairro") = LivroExcel.cells(Linha, 11)
    rst("ccCidade") = LivroExcel.cells(Linha, 12)
    rst("ccCidadeCod") = LivroExcel.cells(Linha, 13)
    rst("ccNumero") = LivroExcel.cells(Linha, 14)
    rst("ccEstado") = LivroExcel.cells(Linha, 15)
    rst("ccCep") = LivroExcel.cells(Linha, 16)
    rst("ccTelefone") = LivroExcel.cells(Linha, 17)
    rst("ccCelular") = LivroExcel.cells(Linha, 18)
    rst("ccFax") = LivroExcel.cells(Linha, 19)
    rst("ccCGC") = LivroExcel.cells(Linha, 20)
    rst("ccInsEst") = LivroExcel.cells(Linha, 21)
    rst("ccInsMun") = LivroExcel.cells(Linha, 22)
    rst("ccCCP") = LivroExcel.cells(Linha, 23)
    rst("ccResponsavel") = LivroExcel.cells(Linha, 24)
    rst("ccCPFResp") = LivroExcel.cells(Linha, 25)
    'Tratamento para so tentar colocar valor se for data
    If IsDate(LivroExcel.cells(Linha, 26)) Then
        rst("cdDatNasc") = LivroExcel.cells(Linha, 26)
    End If
    rst("ccNaturalidade") = LivroExcel.cells(Linha, 27)
    rst("ccEstadoCivil") = LivroExcel.cells(Linha, 28)
    rst("ccNomConjugue") = LivroExcel.cells(Linha, 29)
    rst("ccEnderecoCob") = LivroExcel.cells(Linha, 30)
    rst("ccBairroCob") = LivroExcel.cells(Linha, 31)
    rst("ccTipoRes") = LivroExcel.cells(Linha, 32)
    rst("ccTempoRes") = LivroExcel.cells(Linha, 33)
    rst("ccTipoCon") = LivroExcel.cells(Linha, 34)
    rst("ccTempoCon") = LivroExcel.cells(Linha, 35)
    rst("ccEmail") = LivroExcel.cells(Linha, 36)
    rst("ccLocalTrabalho") = LivroExcel.cells(Linha, 37)
    'O campo estava errado aqui
    rst("ccEnderecoTrab") = LivroExcel.cells(Linha, 38)
    'O campo estava errado aqui
    rst("ccTelTrabalho") = LivroExcel.cells(Linha, 39)
    rst("ccCargo") = LivroExcel.cells(Linha, 40)
    rst("ccApelido") = LivroExcel.cells(Linha, 41)
    rst("ccSPC") = LivroExcel.cells(Linha, 42)
    rst("ccApresentado") = LivroExcel.cells(Linha, 43)
    rst("cdDatAdm") = LivroExcel.cells(Linha, 44)
    rst("ccCTPS") = LivroExcel.cells(Linha, 45)
    rst("ccRenda") = LivroExcel.cells(Linha, 46)
    rst("ccCPF") = LivroExcel.cells(Linha, 47)
    rst("ccRG") = LivroExcel.cells(Linha, 48)
    rst("ccNomPai") = LivroExcel.cells(Linha, 49)
    rst("ccNomMae") = LivroExcel.cells(Linha, 50)
    rst("ccInfCom") = LivroExcel.cells(Linha, 51)
    rst("ccExtras") = LivroExcel.cells(Linha, 52)
    rst("ccMensagem") = LivroExcel.cells(Linha, 53)
    'Aqui tambem foi corrigido
    If IsDate(LivroExcel.cells(Linha, 54)) Then
        rst("cdDatCad") = LivroExcel.cells(Linha, 54)
    End If
    If IsDate(LivroExcel.cells(Linha, 55)) Then
        rst("cdDatUlCom") = LivroExcel.cells(Linha, 55)
    End If
    rst("ccValorManut") = LivroExcel.cells(Linha, 56)
    rst("cvCodUsu") = LivroExcel.cells(Linha, 57)
    rst("ccBloqueio") = LivroExcel.cells(Linha, 58)
    'O campo estava errado aqui
    rst("ccAtivo") = LivroExcel.cells(Linha, 59)
    rst.Update
    Linha = Linha + 1
    Loop
    'fechaexcel
    LivroExcel.Activeworkbook.Close SaveChanges:=False
    Set LivroExcel = Nothing
    'fecha rst
    Set rst = Nothing
    ' DoCmd.OpenQuery "RemuveCertDupe", acViewNormal, acEdit
    MsgBox "Tabela Cliente Importada com Sucesso!"
    End Sub


    Veja os comentários e tratamentos que fiz!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    abjinfo
    abjinfo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 02/07/2015

    [Resolvido]Importar dados Excel Empty Re: [Resolvido]Importar dados Excel

    Mensagem  abjinfo 6/3/2018, 18:51

    Fabio!

    Muito obrigado pela dura, rsrsrs.

    Eu não sabia que tinha que dar tratamento em data, aprendi mais uma sobre os campos em brancos vou olhar melhor.

    Resolvido Embarassed

    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Importar dados Excel Empty Re: [Resolvido]Importar dados Excel

    Mensagem  FabioPaes 6/3/2018, 19:04

    A questão é que o Campo data, esta na tabela, setado como Data! Então, se vc pegar um valor da planilha do Excel, que possui qualquer coisa diferente de uma data (Texto, números ou Valores Nulos "") e tenta colocar nesse campo, dará problema de Conversão de valores, pois o Access testará converter esse valor para uma data! Então ocorre o Erro. Retire o Tratamento e faça um Teste para ver o Erro apresentado.

    Grato pelo retorno e até a próxima se Deus quiser!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    Conteúdo patrocinado


    [Resolvido]Importar dados Excel Empty Re: [Resolvido]Importar dados Excel

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 13:00