INSERT INTO
Estou tentando atualizar os campos do formulario, puxando de um BD.
Esta assim:
Conect.Execute ("Insert into tabx x1 = " & Text1.Text & ",x2 = " & Text2.Text & ", x3 = " & Text3.Text & ",x4 = " & Text4.Text & ",x5 = " & Text5.Text & ",x6 = " & Text6.Text & ",x7 = " & Text7.Text & ",x8 = " & Text8.Text & ",x9 = " & Text9.Text & ",x10 = " & Text10.Text & ",x11 = " & Text11.Text & ",x12 = " & Text43.Text & ", x13 = " & Text44.Text & ",x14 = " & Text45.Text & ",x15 = " & Text46.Text & ",x16 = " & Text47.Text & ",x17 = " & Text48.Text & ",x18 = " & Text49.Text & ",x19 = " & Text50.Text & ",x20 = " & Text51.Text _
& ",y1 = " & yy1 & ",y2 = " & yy2 & ",y3 = " & yy3 & ",y4 = " & yy4 & ",y5 = " & yy5 & ",y6 = " & yy6 & ",y7 = " & yy7 & ",y8 = " & yy8 & ",y9 = " & yy9 & ",y10 = " & yy10 & ",y11 = " & yy11 & ",y12 = " & yy12 & ",y13 = " & yy13 & ",y14 = " & yy14 & ",y15 = " & yy15 & ",y16 = " & yy16 & ",y17 = " & yy17 & ",y18 = " & yy18 & ",y19 = " & yy19 & ",y20 = " & yy20 & ", c1='" & Text23.Text & "', c2='" & Text24.Text & "', c3='" & Text25.Text & "', c4='" & Text26.Text & "', c5='" & Text27.Text & "', c6='" & Text28.Text & "', c7='" & Text29.Text & "', c8='" & Text30.Text & "', c9='" & Text31.Text & "', c10='" & Text32.Text & "', c11='" & Text33.Text & "', c12='" & Text34.Text & "', c13='" & Text35.Text & "', c14='" & Text36.Text & "', c15='" & Text37.Text & "', c16='" & Text38.Text & "', c17='" & Text39.Text & "', c18='" & Text40.Text & "', c19='" & Text41.Text & "', c20='" & Text42.Text & "'")
Da esse erro: Syntax error in Insert Into statement
Alguem pode me ajudar?
Esta assim:
Conect.Execute ("Insert into tabx x1 = " & Text1.Text & ",x2 = " & Text2.Text & ", x3 = " & Text3.Text & ",x4 = " & Text4.Text & ",x5 = " & Text5.Text & ",x6 = " & Text6.Text & ",x7 = " & Text7.Text & ",x8 = " & Text8.Text & ",x9 = " & Text9.Text & ",x10 = " & Text10.Text & ",x11 = " & Text11.Text & ",x12 = " & Text43.Text & ", x13 = " & Text44.Text & ",x14 = " & Text45.Text & ",x15 = " & Text46.Text & ",x16 = " & Text47.Text & ",x17 = " & Text48.Text & ",x18 = " & Text49.Text & ",x19 = " & Text50.Text & ",x20 = " & Text51.Text _
& ",y1 = " & yy1 & ",y2 = " & yy2 & ",y3 = " & yy3 & ",y4 = " & yy4 & ",y5 = " & yy5 & ",y6 = " & yy6 & ",y7 = " & yy7 & ",y8 = " & yy8 & ",y9 = " & yy9 & ",y10 = " & yy10 & ",y11 = " & yy11 & ",y12 = " & yy12 & ",y13 = " & yy13 & ",y14 = " & yy14 & ",y15 = " & yy15 & ",y16 = " & yy16 & ",y17 = " & yy17 & ",y18 = " & yy18 & ",y19 = " & yy19 & ",y20 = " & yy20 & ", c1='" & Text23.Text & "', c2='" & Text24.Text & "', c3='" & Text25.Text & "', c4='" & Text26.Text & "', c5='" & Text27.Text & "', c6='" & Text28.Text & "', c7='" & Text29.Text & "', c8='" & Text30.Text & "', c9='" & Text31.Text & "', c10='" & Text32.Text & "', c11='" & Text33.Text & "', c12='" & Text34.Text & "', c13='" & Text35.Text & "', c14='" & Text36.Text & "', c15='" & Text37.Text & "', c16='" & Text38.Text & "', c17='" & Text39.Text & "', c18='" & Text40.Text & "', c19='" & Text41.Text & "', c20='" & Text42.Text & "'")
Da esse erro: Syntax error in Insert Into statement
Alguem pode me ajudar?
Caramba...
Que codigo gigante...
Alguns são totalmente contra, mas, a "limpeza de código" que um simples Rs.AddNew proporciona não tem valor....
Faz assim...
Rs.AddNew
Rs!x1 = Text1.Text
Rs!x2 = Text2.Text
Rs!x3 = Text3.Text
Rs.Update
Tenta aÃ....
EU acho bem melhor....
Que codigo gigante...
Alguns são totalmente contra, mas, a "limpeza de código" que um simples Rs.AddNew proporciona não tem valor....
Faz assim...
Rs.AddNew
Rs!x1 = Text1.Text
Rs!x2 = Text2.Text
Rs!x3 = Text3.Text
Rs.Update
Tenta aÃ....
EU acho bem melhor....
eu subistituo a conect.execute?
sim,
dim Rec as new adodb.recordset
dim sqlRec as string
sqlrec = "SELECT * FROM TABELA"
rec.open sqlrec, Conect
rec.addnew
res.fields("campo1") = text1.text
rec.fields("campo2") = text2.text
rec.update
set Rec = nothing
dim Rec as new adodb.recordset
dim sqlRec as string
sqlrec = "SELECT * FROM TABELA"
rec.open sqlrec, Conect
rec.addnew
res.fields("campo1") = text1.text
rec.fields("campo2") = text2.text
rec.update
set Rec = nothing
Atenção que existem diferenças entre as duas hipóteses:
1. Quando você diz Conexão.Execute(qualquer coisa), você está a fazer algo na própria base de dados;
2. Quando você diz Recordset.Quaqluer coisa, você está a trabalhar apenas sobre a Recordset. As actualicações são feitas depois(ou na hora) nas tabelas, deoendendo do cursor que utiliza.
Por isto, atenção de o método utilizado para fazer este insert pode brigar com o resto da estrutura da aplicação.
De caminho só mais uma dica, a estrutura do comando insert é a seguinte:
"INSERT into Tabela tal(campo1,campo2,campo3)VALUES(valor a inserir no campo1,valor a inserir no campo2,valor a inserir no campo3).
Agora olhe para o seu insert e veja se está de acordo com estas regras.
1. Quando você diz Conexão.Execute(qualquer coisa), você está a fazer algo na própria base de dados;
2. Quando você diz Recordset.Quaqluer coisa, você está a trabalhar apenas sobre a Recordset. As actualicações são feitas depois(ou na hora) nas tabelas, deoendendo do cursor que utiliza.
Por isto, atenção de o método utilizado para fazer este insert pode brigar com o resto da estrutura da aplicação.
De caminho só mais uma dica, a estrutura do comando insert é a seguinte:
"INSERT into Tabela tal(campo1,campo2,campo3)VALUES(valor a inserir no campo1,valor a inserir no campo2,valor a inserir no campo3).
Agora olhe para o seu insert e veja se está de acordo com estas regras.
Concordo com o João Matheus,
Das duas uma:
1- ou você continua com a string gigantesca do Conect.Execute
- ou -
2- Declare o recordset que nem o RODRIGOMARCHESE falou, com a seguinte alteração:
sqlrec = "SELECT * FROM TABX"
rec.open sqlrec, Conect, adOpenKeyset, adLockOptimistic
e faça os outros comandos normalmente,
Rs.AddNew
(...)
ok?
Das duas uma:
1- ou você continua com a string gigantesca do Conect.Execute
- ou -
2- Declare o recordset que nem o RODRIGOMARCHESE falou, com a seguinte alteração:
sqlrec = "SELECT * FROM TABX"
rec.open sqlrec, Conect, adOpenKeyset, adLockOptimistic
e faça os outros comandos normalmente,
Rs.AddNew
(...)
ok?
Deu erro nessa linha agora:
Dim Rec As New adodb.Recordset
(User-defined type not definet)
Dim Rec As New adodb.Recordset
(User-defined type not definet)
Andre, você fez referencia ao ADO, em project /references...?
Microsoft ADO Ext 2.7 for DLL and...
Fiz quando li a sua resposta e ainda deu erro
Fiz quando li a sua resposta e ainda deu erro
Não, desfaça esta referencia.... a que vc fez...
Faça referencia para esta biblioteca
Entendeu?
Faça referencia para esta biblioteca
Microsoft ActiveX Data Object 2.1 Library
Entendeu?
Agora da erro nessa linha
rec.open sqlrec, Conect
(Os argumentos sao incorretos, estao fora de um intervalo aceitavel ou estao...)
rec.open sqlrec, Conect
(Os argumentos sao incorretos, estao fora de um intervalo aceitavel ou estao...)
Tópico encerrado , respostas não são mais permitidas