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

    Tipos Incompatíveis - VBA

    avatar
    Moma
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/09/2016

    Tipos Incompatíveis - VBA Empty Tipos Incompatíveis - VBA

    Mensagem  Moma 8/2/2017, 18:18

    Boa tarde pessoal.

    Estou com uma macro que deve jogar dados do excel para um banco access, porém dá o erro de Dados Incompatíveis. Alguém pode me ajudar?

    Sub TransfereDados()

    'Cria variável que armazena os comandos SQL
    Dim ComandoSQL As String

    'looping das colunas

    Sheets("BaseGeral").Select
    Range("A2").Activate


    'lopping das linhas
    Do While ActiveCell <> ""

    linha = ActiveCell.Row

    'Armazena na variável o comando que fará a consulta SQL no BD Access

    ComandoSQL = "select * from TB_Base_Banco_geral"

    '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) - O Erro acontece nessa linha

    With consulta
    'Abre o Recordset do BD para inserção

    .AddNew

    .Fields("Contratada") = Sheets("BaseGeral").Cells(linha, 1)
    .Fields("OS") = Sheets("BaseGeral").Cells(linha, 2)
    .Fields("Tecnologia") = Sheets("BaseGeral").Cells(linha, 3)
    .Fields("Sistema") = Sheets("BaseGeral").Cells(linha, 4)



    '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

    Loop

    'Abandona a subrotina
    Exit Sub

    End Sub
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    Tipos Incompatíveis - VBA Empty Re: Tipos Incompatíveis - VBA

    Mensagem  Noobezinho 8/2/2017, 19:31

    Olá Aline

    Não tenho muito conhecimento dos comandos/códigos do Excell.

    Mas, olhando teu código, vejo que a estrutura da função está um tanto errada.

    Vou deixar aqui como deve ser a estrutura dela, e acredito que entenderá.

    Por exemplo, o loop que estava sendo feito na planilha do excel, abria e fechava

    a tabela toda vez que pegava um dado na planilha e transferia pra tabela.

    É o mesmo que ter um cofre e você o abre coloca uma cédula dentro, fecha,
    pega outra cédula, abre o cofre, coloca a cédula dentro, fecha, e o loop
    continua até colocar todos o dinheiro dentro do cofre.
    Cansativo, né?

    Isso eu arrumei.

    Abre-se a tabela uma vez somente.
    Faz o loop na planilha e transfere os dados para a tabela.
    Fecha a tabela
    Fecha o BD.

    Leia as observações em verde no código (ficará verde no Access).


    [ ]'s

    Código:

    Sub TransfereDados()
    'Cria variável que armazena os comandos SQL
    Dim ComandoSQL As String

    'Chama a rotina que faz a conexão com o BD

    Call Conecta ' Primeiro, conectar banco de dados

    'Armazena na variável o comando que fará a consulta SQL no BD Access

    ComandoSQL = "select * from TB_Base_Banco_geral"


    'Abre o Recordset do BD para inserção

    Set consulta = banco.OpenRecordset(ComandoSQL)

    With consulta

         'looping das colunas

         Sheets("BaseGeral").Select
         Range("A2").Activate


         'lopping das linhas
         Do While ActiveCell <> ""

            linha = ActiveCell.Row

            AddNew

            .Fields("Contratada") = Sheets("BaseGeral").Cells(linha, 1)
            .Fields("OS") = Sheets("BaseGeral").Cells(linha, 2)
            .Fields("Tecnologia") = Sheets("BaseGeral").Cells(linha, 3)
            .Fields("Sistema") = Sheets("BaseGeral").Cells(linha, 4)

            'Se houver erro, tem que mostrar o erro pra podermos consertar então
            'On Error Resume Next  '<--- isso não pode

            'Efetiva a atualização do BD
            .Update
      
            ActiveCell.Offset(1, 0).Select '<----- Esse comando não conheço,se for pra mudar de linha, fica ai mesmo
     
         loop

    End With

    Consulta.Close

    Banco.close

    Call Desconecta

    End sub


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    Moma
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/09/2016

    Tipos Incompatíveis - VBA Empty Re: Tipos Incompatíveis - VBA

    Mensagem  Moma 9/2/2017, 10:53

    Noobezinho, fiz as alterações que vc sugeriu, porém continua com o erro de dados incompatíveis na linha:

    Set consulta = banco.OpenRecordset(ComandoSQL)
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    Tipos Incompatíveis - VBA Empty Re: Tipos Incompatíveis - VBA

    Mensagem  Noobezinho 9/2/2017, 11:00

    Aline

    Anexe aqui, a tabela, consulta, formulário e a planilha do excel, para eu analisar, ok?

    Lembrando que o site só aceita arquivos.zip.

    Se tiver o winrar, veja ali embaixo na minha assinatura como fazer zip com ele.

    Aguardo


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    Moma
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/09/2016

    Tipos Incompatíveis - VBA Empty Re: Tipos Incompatíveis - VBA

    Mensagem  Moma 9/2/2017, 11:04

    Planilha
    Anexos
    Tipos Incompatíveis - VBA AttachmentBase_Banco_Backlog.xlsm
    Você não tem permissão para fazer download dos arquivos anexados.
    (49 Kb) Baixado 3 vez(es)
    avatar
    Moma
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/09/2016

    Tipos Incompatíveis - VBA Empty Re: Tipos Incompatíveis - VBA

    Mensagem  Moma 9/2/2017, 11:09

    Não estou conseguindo subir o arquivo do banco em .zip Sad
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    Tipos Incompatíveis - VBA Empty Re: Tipos Incompatíveis - VBA

    Mensagem  Noobezinho 9/2/2017, 11:16

    O tamanho máximo é 4.98 Mb

    Se estiver ultrapassando isso, faça assim:

    Abra o aplicativo segurando o Shift.

    Na primeira opção do menu Ferramentas de Banco de Dados, clique nela (compactação e rest....)

    Depois compacte com o zip.

    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    Moma
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/09/2016

    Tipos Incompatíveis - VBA Empty Re: Tipos Incompatíveis - VBA

    Mensagem  Moma 9/2/2017, 11:25

    Segue o banco
    Anexos
    Tipos Incompatíveis - VBA AttachmentBD_Backlog.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (32 Kb) Baixado 3 vez(es)
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    Tipos Incompatíveis - VBA Empty Re: Tipos Incompatíveis - VBA

    Mensagem  Noobezinho 9/2/2017, 11:46

    Só com as tabelas, não posso fazer nada

    Cade teu código,consultas, etc?


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    Moma
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/09/2016

    Tipos Incompatíveis - VBA Empty Re: Tipos Incompatíveis - VBA

    Mensagem  Moma 9/2/2017, 11:49

    O código está no excel, no access só tenho as tabelas... e a única consulta que criei é esta que segue em anexo, porém não a utilizo no código uso apenas para unir as informações que preciso no excel que anexei aqui.
    Anexos
    Tipos Incompatíveis - VBA AttachmentSelect_Backlog.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1 Kb) Baixado 1 vez(es)
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    Tipos Incompatíveis - VBA Empty Re: Tipos Incompatíveis - VBA

    Mensagem  Noobezinho 9/2/2017, 12:05

    Sinto Aline Crying or Very sad

    Sou programador de Access e não de excel.

    E como pode ver, o fórum só atende sobre Access.

    Aguarde, talvez tenha alguém que entenda de Excel possa  te ajudar.

    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

    Tipos Incompatíveis - VBA Empty Re: Tipos Incompatíveis - VBA

    Mensagem  FabioPaes 9/2/2017, 14:52

    Uma coisa que não consegui achar foi o momento em que a variavel "Banco" recebe/conecta a um banco de dados...

    ...banco.OpenRecordset(ComandoSQL)

    Verifique se realmente esta passando o banco de dados correto para essa Variável.



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


    Tipos Incompatíveis - VBA Empty Re: Tipos Incompatíveis - VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 00:17