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] Update e Insert do excel para o Access não funciona

    Carvalho
    Carvalho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 249
    Registrado : 19/01/2013

    [Resolvido] Update e Insert do excel para o Access não funciona Empty [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  Carvalho 16/4/2018, 14:37

    Bom dia,

    Pessoal, estou a mais de 2 semanas tentando que o código que está em axeno funcione novamente, ele verifica se o excel tem itens que não tem na tabela inseri esses registros e depois atualiza tudo de acordo com o item da tabela e com a coluna do excel DB, quero entender porque não está funcionando mais, informa que o "o item da coleção não foi encontrado.

    Obs: Para melhor entendimento segue o Bd e o Excel que estou usando. pode abrir o Frm e apertar no botão "antes informar o Local do Excel".


    No aguardo.
    Anexos
    [Resolvido] Update e Insert do excel para o Access não funciona AttachmentInsertUpdate.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (927 Kb) Baixado 24 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] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  FabioPaes 16/4/2018, 15:29

    Item não encontrado na Coleção: Significa que ele não encontrou o Campo no Recordset!

    Erro esta na LInha: If CDbl(rs1("1").Value) < rs2("item").Value Then. O Erro acusado, é que não tem nenhum campo com o nome de "1" na tabela do Excel.

    Lembre-se: Se irá informar o Nome do campo, ele deve ficar rs2("NomeCampo") ou Assim: rs2!NomeCampo.
    Se pretende ignorar o nome do campo, mas informar a Coluna, 1,2,3,.., deve informar assim: rs1(1) para a SEGUNDA coluna do recordset. Basicamente esse é o seu problema! Acredito que o que pretende nesse caso é informar a coluna, certo?



    If CDbl(rs1(1).Value) < rs2("item").Value Then


    .................................................................................
    _____________________________________________________________________
    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!
    Carvalho
    Carvalho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 249
    Registrado : 19/01/2013

    [Resolvido] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  Carvalho 16/4/2018, 15:52

    Realmente fabio fiz a troca e rodou ,porem agora está dando erro na linha strCampo = fncEquivale(fld.Name) Tipos incompativeis "13" mais não estou conseguindo identificar o Campo que esta diferente.



    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] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  FabioPaes 16/4/2018, 18:54

    Tipos Incompatíveis ocorrem geralmente quando esta passando um valor Numero mas na verdade o campo é Texto. entende...

    Texto deve ser passado assim '" & Variavel & "' e Numero assim: " & Variavel & "

    Veja se não seria isso! 

    Eu não cheguei a lê seu código para descobrir o que ele faz, mas acredito que conseguira com essa dica!


    .................................................................................
    _____________________________________________________________________
    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!
    Carvalho
    Carvalho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 249
    Registrado : 19/01/2013

    [Resolvido] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  Carvalho 16/4/2018, 19:54

    Cara estou rodando a horas e não estou conseguindo ver onde está o erro, mesmo sabendo que é um campo que não está no formato correto.
    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] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  FabioPaes 16/4/2018, 21:05

    Amigo, o seu problema esta na funcão!

    strCampo = fncEquivale(fld.Name)



    Veja que nela, vc definiu o valor a ser informado como sendo Byte, e quando chamou ela strCampo = fncEquivale(fld.Name) está informando por exemplo Texto "BD" o primeiro campo!


    Ajuste-a que dará certo!


    .................................................................................
    _____________________________________________________________________
    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!
    Carvalho
    Carvalho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 249
    Registrado : 19/01/2013

    [Resolvido] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  Carvalho 16/4/2018, 23:18

    Fiz o que você me orientou e agora ele não atualiza e nem inseri... Sad
    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] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  FabioPaes 17/4/2018, 15:17

    Poste seu código comentado amigo, comentando o que pretende com ele... assim podemos entender o que precisa com ele e talvez adequarmos... Pois os erros no código foram sanados.


    Vamos ao problema que nao consegui entender no Seu codigo:

    Na linha:


                               strCampo = fncEquivale(fld.Name)
                                If strCampo <> "" Then rs2(strCampo) = fld.Value

    Nela vc esta adicionando um Registro naa tabela do access (RS2);

    rs2(strCampo) = fld.Value Aqui está dizendo que o campo que recebe o valor está na variavel strCampo Porem essa variável Não está recebendo o nome do campo...


    Última edição por FabioPaes em 17/4/2018, 15:50, editado 2 vez(es)


    .................................................................................
    _____________________________________________________________________
    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!
    Carvalho
    Carvalho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 249
    Registrado : 19/01/2013

    [Resolvido] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  Carvalho 17/4/2018, 15:46

    Eu tenho uma planilha em excel que é essa que está ai e o meu BD, tenho que atualizar toda semana os itens que foram acresentados sem repetir e depois atualizar todas as informações de acordo com o excel. que seria um Inset e um update.
    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] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  FabioPaes 17/4/2018, 15:50

    Editei a Mensagem anterior... Leia


    .................................................................................
    _____________________________________________________________________
    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!
    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] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  FabioPaes 17/4/2018, 16:17

    Acho que consegui desvendar sua Função e o que pretende amigo...


    Todo o Erro estava nessa LInha aqui: strCampo = fncEquivale(fld.Name)

    Veja, quando vc pede o .Name, vc obterá como resultado o NOME do campo "BD", SUB BLOCO... no caso da Tabela Excel.

    Na sua fncEquivale(), la esta configurado para receber a COLUNA do campo e converter a Coluna pelo NOME do campo da TABELA do ACCESS, Por isso o Erro anterios de conversão de Tipos, Ex:

    Se a fncEquivale() receber o valor 1, ela deverá devolver o nome do campo "SubBloco", que é o campo responsável por receber esse valor do Excel, Se olhar na Tabela do Excel, a coluna 1 é o Sub Bloco.

    Dessa forma, NÃO poderá pedir o NOME do campo, .Nmae, e sim a Coluna dele, que no caso ficaria assim:

    strCampo = fncEquivale(fld.OrdinalPosition)

    Siga as Instruções a Baixo para Obter o resultado que precisa:

    1º Mude sua Funcção  fncEquivale() Para essa:

    Veja que coloquei Alguns caso, devera completar os demais... Sempre vendo qual é a coluna do Excel. Ex: Caso 6 (Coluna 6 do Excel) refere-se a Quantidade, e qual é o nome do campo da tabela Access que receberá a quantidade??? "qnt"
    Código:
    Private Function fncEquivale(bytColuna As Byte) As String

        'função onde especifico o valor das colunas (primeira linha na planilha) que equivale com as colunas na tabela

        Select Case bytColuna
            Case 0: fncEquivale = "Item"
            Case 1: fncEquivale = "SubBloco"
            Case 6: fncEquivale = "qtd"
            Case Else: fncEquivale = ""
        End Select

    End Function

    2º Na função ImportaExcel, onde encontrar strCampo = fncEquivale(fld.Name) Substitua por: ( strCampo = fncEquivale(fld.OrdinalPosition) )

    Assim, obterá o Resultado que precisa.

    Deu Trabalho desvendar, mas acho que foi...


    .................................................................................
    _____________________________________________________________________
    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!
    Carvalho
    Carvalho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 249
    Registrado : 19/01/2013

    [Resolvido] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  Carvalho 17/4/2018, 17:34

    Caramba está quase lá Very Happy , fiz as alterações que você me solicitou e agora deu erro na linha
    If strCampo <> "" Then Rs2(strCampo).Value = fld.Value

    3021 - nenhum registro atual.

    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] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  FabioPaes 17/4/2018, 19:08

    Nessa Linha??? Não é ao mover-se entre os registros do recordset???
    Geralmente ocorre qnd vc manda mover para um registro que não existe!


    .................................................................................
    _____________________________________________________________________
    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!
    Carvalho
    Carvalho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 249
    Registrado : 19/01/2013

    [Resolvido] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  Carvalho 17/4/2018, 19:48

    mais é o que está aparecendo! e fica pintada nessa linha abaixo
    If strCampo <> "" Then Rs2(strCampo).Value = fld.Value
    Carvalho
    Carvalho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 249
    Registrado : 19/01/2013

    [Resolvido] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  Carvalho 18/4/2018, 00:22

    Boa noite Fabio, eu inseri a função em verde para ver se  resolvia, agora está o erro permanece na linha em vermelho, tá bronca...

    If Nz(Rs2(strCampo).Value) = 0 Then Exit For
                   If strCampo <> "" Then Rs2(strCampo).Value = fld.Value
               Next fld
           Rs2.Update
          Rs1.MoveNext
    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] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  FabioPaes 18/4/2018, 15:19

    Amigo, pelo que entendi, o codigo chega nessa linha:

            rs2.AddNew
                For Each fld In rs1.Fields
                
                    strCampo = fncEquivale(fld.OrdinalPosition)
                    If strCampo <> "" Then rs2(strCampo).Value = fld.Value
                Next fld
            rs2.Update
    já sem registros para percorrer! Ou seja, ja passou a ultima Linha, e qnd vc tenta buscar os valores fld.Value o rs1.EOF já é falso!

    Acredito que terá que add um tratamento ali... de Só Executar esse codigo se IF Not rs1.EOF then


    Experimente, e veja se realmente o Código faz o que pretende, add e atualiza os registros!


    .................................................................................
    _____________________________________________________________________
    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!
    Carvalho
    Carvalho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 249
    Registrado : 19/01/2013

    [Resolvido] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  Carvalho 19/4/2018, 00:00

    Show Fabio realmente a sua dica funcionou, coloquei o critério em marcado de azul e rodou liso, muito obrigado pela atenção. tópico resolvido. cheers

    rs2.AddNew
               For Each fld In rs1.Fields
               
                   strCampo = fncEquivale(fld.OrdinalPosition)
                      If Rs1.EOF Or Rs2.EOF Then Exit Do
                   If strCampo <> "" Then rs2(strCampo).Value = fld.Value
               Next fld
           rs2.Update
    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] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  FabioPaes 19/4/2018, 13:24

    Não esquece de Fazer um teste com todas as possibilidades... Pois tem muitos critérios, simule todas as possibilidades para que não seja perdido informações!
    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] Update e Insert do excel para o Access não funciona Empty Re: [Resolvido] Update e Insert do excel para o Access não funciona

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/11/2024, 21:15