USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  80040e14 - Erro filho de uma $%&#@
Ruivens
TAGUATINGA
DF - BRASIL
ENUNCIADA !
Postada em 22/09/2008 22:22 hs            
Galera, eu não sei o que está causando esse erro. Sinceramente, eu não sou o tipo de cara que acha que nunca erra, mas nesse caso não tem nada errado, mas o erro insiste em aparecer.
No mesmo sistema, eu tenho um código idêntico em outro form funcionando, mas no form que eu to criando agora, o INSERT simplesmente não funciona.
A string de conexão é a mesma, o INSERT INTO é similar.
Alguém, por favor, me dá uma luz do que eu preciso fazer pra resolver isso...
 
Segue a parte do código problemático. Ele está no evento cmdOk_Click():
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & App.Path & "PES2008Manager.accdb;"
Set rs = New ADODB.Recordset
Set rs = conn.Execute("INSERT INTO Participantes (nome, fone, celular, email, time, pago) VALUES ('" & varnome & "', '" & varfone & "', '" & varcelular & "', '" & varemail & "', '" & vartime & "', '" & varpago & "')")
conn.Close
Set conn = Nothing

Programador por hobbie  ^^
TÓPICO EDITADO
 
Alexandre Patos
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
ENUNCIADA !
Postada em 23/09/2008 08:12 hs            
Ruivens, e qual é a mensagem de erro, vc nao postou ? e qual a linha que da o erro?
   
DeFreitas
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 23/09/2008 08:38 hs            
Bom dia.
 
Ruivens,
 
Verifique se a variável varpago contém vírgula, isto é, se ela está formatada como moeda. Se esse for o caso, basta informar Replace(varpago, ",", ".") que resolve o problema. Verifique também se o campo que receberá esse valor é do tipo moeda e caso seja, você não deve passar essa informação a ele entre apóstrofos.
 
Estamos aí.
 
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 23/09/2008 15:53 hs            
tenta esta pequena modificação
 
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & App.Path & "\PES2008Manager.accdb;Persist Security Info=False;"
 
   
Ruivens
não registrado
ENUNCIADA !
Postada em 23/09/2008 19:19 hs   
Alexandre Patos:
A mensagem de erro apresentada é a seguinte:
Run-time error '-2147217900 (80040e14)':
 
[Microsoft][Driver ODBC Microsoft Access] Erro de sintaxe na instrução INSERT INTO.
 
E a linha que ele acusa o erro é a
Set rs = conn.Execute("INSERT INTO Participantes (nome, fone, celular, email, time, pago) VALUES ('" & varnome & "', '" & varfone & "', '" & varcelular & "', '" & varemail & "', '" & vartime & "', '" & varpago & "')")
 
DeFreitas:
A variável varpago contém uma letra S ou uma letra N, apenas indicando se foi pago (S) ou não (N). O campo no BD é um campo texto, assim como todos os outros.
 
Treze:
Eu estava usando essa string de conexão quando o erro começou a aparecer. Eu mudei pra que eu estou usando agora e, embora o erro ainda persista, eu percebi um ganho enorme de velocidade no meu sistema. Interessante né  ^^
 
Um detalhe que eu não falei e talvez faça diferença é o seguinte:
Eu estou usando Windows Vista Ultimate com Visual Basic 6.0.
Embora eu não tenho tanta certeza que isso seja um problema realmente, uma vez que eu consigo efetuar a mesma instrução em outros formulários com sucesso.
Um outro detalhe: No formulário problemático eu tenho algumas instruções no evento load do form que acessa o banco de dados, e depois encerra a conexão, pra ser criada novamente no evento click do botão. Em nenhum outro formulário do meu sistema (até agora) eu usei conexão no load do form. Pensando nisso, eu desabilitei a conexão no evento load do form apenas para testar, e também não tive sucesso. O erro continuou o mesmo.
 
Desculpa por escrever tanto, e muito obrigado por gastarem o seu tempo tentando me ajudar.
Quem conseguir resolver esse problema pra mim vai ganhar um prêmio ^^ Vai ganhar uma versão gratuita do meu sistema tão logo ele fique pronto  =D
Brincadeiras a parte, me ajudem, please!!!!!!!!!!!!
   
Ruivens
não registrado
ENUNCIADA !
Postada em 23/09/2008 19:47 hs   
Ae galera, vivendo e aprendendo  ^^
Depois de muito mecher, matutar, quebrar a cabeça, socar a mesa, e etc.. eu achei o problema.
E de tão idiota, eu to me sentindo um idiota.
 
O negócio é o seguinte: No meu banco de dados, eu tenho um campo pra especificar o time de escolha do cara. Só que como o mundo da programação se baseia no bom e velho inglês, a palavra "time" tem um outro significado  ^^
Ao usar essa palavra como nome do meu campo no BD, a instrução SQL no meu sistema entendia o "time" como a função Time(). Foi só mudar a $%&#@ do nome que resolveu.
 
Muito obrigado a todos que se dispuseram a me ajudar e leram esse tópico!!!
E se surgir outro problema insolucionável como esse eu corro pra chorar pra vcs de novo  ^^
 
Vlw
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página