Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ueifous

INSERT via VBA do Excel para Access

Recommended Posts

Olá,

 

Estou tentando me virar para criar um formulário no excel cujos dados preenchidos são formatados com VBA e depois é enviado uma instrução SQL para uma base de dados num arquivo access, utilizando ADODB Connection.

 

Eu testei o meu insert manualmente no access e ele funciona, porém quando tento enviar pelo VBA recebo a seguinte mensagem de erro: Erro em tempo de execução '-2147217833 (80040e57)': O campo é muito pequeno para acitar a quantidade de dados que você tentou adicionar. Tente inserir ou colar menos dados.

 

Tentei dar uma pesquisada no que pode estar acontecendo mas não estou conseguindo achar nada.

 

Segue o trecho onde monto a instrução SQL:

------------------------------------------------------------

sql = "INSERT INTO FUP_Launch_Projects (" _

& "trademark,trademark_status_ID,country_ID,BASCODE,pack,register,registered_pack,register_estimated," _

& "project_types_ID,crops,AI1_ID,AI2_ID,AI3_ID,AI4_ID,usage1,usage2,usage3,usage4,formulation_site," _

& "toller_site,first_year,second_year,third_year,comments,date_nof)" _

& "VALUES ('" & NOF(1) & "'," & NOF(2) & "," & NOF(3) & ",'" & NOF(4) & "','" & NOF(5) & "'," & NOF(6) & "," & NOF(7) & ",'" & NOF(8) & "'," & NOF(9) & ",'" & NOF(10) & "'," & NOF(11) & "," & NOF(12) & "," & NOF(13) & ", " & NOF(14) & ",'" & NOF(15) & "','" & NOF(16) & "','" & NOF(17) & "','" & NOF(18) & "','" & NOF(19) & "','" & NOF(20) & "'," & NOF(21) & "," & NOF(22) & "," & NOF(23) & ",'" & NOF(24) & "'," & NOF(25) & ");"

 

con.Execute sql

 

---------------------------------------------------

 

Já testei a exibição da sintaxe do SQL e funciona perfeitamente se eu utilizar direto no access. Mas por algum motivo dá esse erro quando eu tento enviar via VBA do excel.

 

Há algum problema em utilizar toda a instrução dentro de apenas uma variável (sql)?

 

Podem me ajudar por favor?

 

Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Ueifous

 

Esta mensagem de erro esta falando que tem uma coluna que você esta tentando grava esta com o numero de carateres menor que você esta enserindo na mesma.

 

ou Seja

 

VoCê tem a Coluna Nome com tamanho de 50 digitos,e esta tentando gravar 51 digitos.

 

a e conta os espaços tambem.

 

o erro é este, basta você indentificar quel é a coluna que esta menor.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Nilson,

 

Eu estava estranhando por ter rodado a query direto no access e não ter tido nenhum problema.

Mas verifiquei que o problema era esse mesmo e consegui corrigir.

 

A questão é que o access não alertou e simplesmente inseriu a string até o limite de caractes e ignorou o resto. Já pelo VBA ele trava com erro dizendo que você está excedendo o limite. O campo excedeu 1 caractere e por isso não notei logo de cara.

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.