COMANDO GRAVAR EM MYSQL

ATILAJUNQUEIRA 09/01/2012 10:03:12
#392713
bom dia a todos!

Estou com um probleminha no vb com mysql espero que me ajudem...
acho que o problema é na instrução insert algum erro de sintaxe nao sei o que pode ser, deem uma olhada ai >>

[Ô]Private Sub Command2_Click()
Dim razao As String
Dim sexo As String
Dim vendedor As String
Dim inscest As String
Dim apelido As String
Dim cgc As String
Dim cep As String
Dim dtnasc As String
Dim endereco As String
Dim numero As String
Dim bairro As String
Dim codcidade As String
Dim cidade As String
Dim codestado As String
Dim estado As String
Dim codpais As String
Dim nomepais As String
Dim contato As String
Dim natural As String
Dim email As String
Dim telefone As String
Dim telefone2 As String
Dim dtcadastro As String
Dim obs As String

razao = [Ô][ô][Ô] & Combo1.Text & [Ô][ô][Ô]
sexo = IIf(Len(combo2.Text) > 0, [Ô][ô][Ô] & combo2.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
vendedor = IIf(Len(combo3.Text) > 0, [Ô][ô][Ô] & combo3.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
inscest = IIf(Len(text3.Text) > 0, [Ô][ô][Ô] & text3.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
apelido = IIf(Len(text6.Text) > 0, [Ô][ô][Ô] & text6.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
cgc = IIf(Len(Text2.Text) > 0, [Ô][ô][Ô] & Text2.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
cep = IIf(Len(masked1.Text) > 0, [Ô][ô][Ô] & masked1.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
dtnasc = IIf(Len(masked5.Text) > 0, [Ô][ô][Ô] & masked5.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
endereco = IIf(Len(text5.Text) > 0, [Ô][ô][Ô] & text5.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
numero = IIf(Len(Text7.Text) > 0, [Ô][ô][Ô] & Text7.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
bairro = IIf(Len(Text8.Text) > 0, [Ô][ô][Ô] & Text8.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
codcidade = IIf(Len(text9.Text) > 0, [Ô][ô][Ô] & text9.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
cidade = IIf(Len(text10.Text) > 0, [Ô][ô][Ô] & text10.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
codestado = IIf(Len(text11.Text) > 0, [Ô][ô][Ô] & text11.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
estado = IIf(Len(text12.Text) > 0, [Ô][ô][Ô] & text12.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
codpais = IIf(Len(text13.Text) > 0, [Ô][ô][Ô] & text13.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
nomepais = IIf(Len(text14.Text) > 0, [Ô][ô][Ô] & text14.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
contato = IIf(Len(text15.Text) > 0, [Ô][ô][Ô] & text15.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
natural = IIf(Len(text16.Text) > 0, [Ô][ô][Ô] & text16.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
email = IIf(Len(text18.Text) > 0, [Ô][ô][Ô] & text18.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
telefone = IIf(Len(text21.Text) > 0, [Ô][ô][Ô] & text21.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
telefone2 = IIf(Len(text22.Text) > 0, [Ô][ô][Ô] & text22.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
dtcadastro = IIf(Len(text23.Text) > 0, [Ô][ô][Ô] & text23.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])
obs = IIf(Len(list1.Text) > 0, [Ô][ô][Ô] & list1.Text & [Ô][ô][Ô], [Ô][ô]*[ô][Ô])

If Command2.Caption = [Ô]Gravar[Ô] Then
SQL = [Ô]insert into nome (razao,sexo,vendedor,inscest,apelido,cgc,cep,dtnasc,endereco,numero,bairro,codcidade,cidade,codestado,estado,codpais,nomepais,contato,natural,email,telefone,telefone2,dtcadastro,obs) values ([Ô] & razao & [Ô],[Ô] & sexo & [Ô],[Ô] & vendedor & [Ô],[Ô] & inscest & [Ô],[Ô] & apelido & [Ô],[Ô] & cgc & [Ô],[Ô] & cep & [Ô],[Ô] & dtnasc & [Ô],[Ô] & endereco & [Ô],[Ô] & numero & [Ô],[Ô] & bairro & [Ô],[Ô] & codcidade & [Ô],[Ô] & cidade & [Ô],[Ô] & codestado & [Ô],[Ô] & estado & [Ô],[Ô] & codpais & [Ô],[Ô] & nomepais & [Ô],[Ô] & contato & [Ô],[Ô] & natural & [Ô],[Ô] & email & [Ô],[Ô] & telefone & [Ô],[Ô] & telefone2 & [Ô],[Ô] & dtcadastro & [Ô],[Ô] & obs & [Ô])[Ô]
Else
SQL = [Ô]update codigo set [Ô]
SQL = SQL & [Ô]codigo = [Ô] & codigo
SQL = SQL & [Ô] ,endereco = [Ô] & endereco
SQL = SQL & [Ô] ,bairro = [Ô] & bairro
SQL = SQL & [Ô] ,cidade = [Ô] & cidade
SQL = SQL & [Ô] ,estado = [Ô] & estado
SQL = SQL & [Ô] where codigo = [Ô] & Registro
End If


Set rs = gConexao.Execute(SQL)
Set rs = Nothing
Call limpacampos

End Sub[Ô]

quando ele passa pelo [Ô] Set rs = gConexao.Execute(SQL) [Ô] me retorna a seguinte mensagem de erro:
[Ô] run-time error [ô]-2147217900(80040e14)[ô]:
[mysql][odbc 3.51 driver][mysqld-5.0.27-community-log] Você tem
um erro de sintaxe no seu sql próximo a
[ô]natural,email,telefone,telefone2,dtcadastro,obs) values ( [ô]CARMEN
LUCIA DOS SA[ô] na linha 1[Ô]


set rs = gconexao.execute(SQL) = Set gConexao = New ADODB.Connection
gConexao.ConnectionTimeout = 60
gConexao.CommandTimeout = 400
gConexao.CursorLocation = adUseClient
gConexao.Open [Ô]DRIVER={MySQL ODBC 3.51 Driver};[Ô] _
& [Ô]user=[Ô] & txtNomeUsuario _
& [Ô];password=[Ô] & txtPassword _
& [Ô];database=[Ô] & cmbBancoDados _
& [Ô];server=[Ô] & txtHost _
& [Ô];option=[Ô] & (3)




desde já agradeço abraços
MARCELO.TREZE 09/01/2012 11:26:00
#392718
para mysql todos os campos devem estar entre aspas simples ou apostrofos

exemplo

([txt-color=#e80000][ô][/txt-color][Ô] & razao & [Ô][txt-color=#e80000][ô][/txt-color],[txt-color=#e80000][ô][/txt-color][Ô] & sexo & [Ô][txt-color=#e80000][ô][/txt-color],[ô][Ô] .
..
ATILAJUNQUEIRA 09/01/2012 16:17:51
#392741
agradeço a cooperação de todos mais ainda nao foi resolvido.... eu usava banco de dados access , to querendo mudar para mysql preciso de algumas instruções por exemplo insert, update e delete que eu estou meio embramado nisso vlw ...
FILMAN 09/01/2012 17:32:37
#392751
Resposta escolhida
Primeiro se vc usava ADO para se conectar com ACCESS não esta longe de conseguir conectar com MYSQL

Primeiro declare as variáveis em um modulo
Public gConexao as New ADODB.Connection
public rs as New ADODB.RecordSet


Crie a Conexão
Public Sub Conectar()
gConexao.CursorLocation = adUseClient
gConexao.Open [Ô]DRIVER={MySQL ODBC 3.51 Driver};user=[Ô] & txtNomeUsuario & [Ô];password=[Ô] & txtPassword & [Ô];database=[Ô] & cmbBancoDados & [Ô];server=[Ô] & txtHost & [Ô];option=[Ô] & (3)
End Sub


Evite criar muitas variáveis, pois elas utilizam memórias para com isso o seu sistema pode deixar o comutador lento
faça o processo direto
Private Sub Command2_Click()
Dim SQL as String

SQL = [Ô]INSERT INTO nome (razao,sexo,vendedor,inscest,apelido,cgc,cep,dtnasc,endereco,[Ô]
SQL = SQL & [Ô]numero,bairro,codcidade,cidade,codestado,estado,codpais,nomepais,[Ô]
SQL = SQL & [Ô]contato,natural,email,telefone,telefone2,dtcadastro,obs) VALUES ([ô][Ô]
SQL = SQL & Combo1.Text & [Ô][ô],[ô][Ô] & IIf(Len(combo2.Text) > 0, combo2.Text, [Ô]*[Ô]) & [Ô][ô],[ô][Ô]
SQL = SQL & IIf(Len(combo3.Text) > 0, combo3.Text , [Ô]*[Ô]) & [Ô][ô],[ô][Ô] & IIf(Len(text3.Text) > 0, text3.Text, [Ô]*[Ô]) & [Ô][ô],[ô][Ô]

...

rs.Open SQL, gConexao, 2, 3
End Sub


Lembrasse que nada empede de criar variáveis para controlar seu sistema somente dei minha opinião.

Lembrando tambem que é importante verificar se os nomes das colunas de sua tabela estão corretos no SQL e faça como
o amigo MARCELO TREZE falou:
Citação:

para mysql todos os campos devem estar entre aspas simples ou apostrofos

exemplo

([ô][Ô] & razao & [Ô][ô],[ô][Ô] & sexo & [Ô][ô],[ô][Ô] .

..



No entanto vc esta tratando isso nas variáveis acima tenta tratar no SQL igual cito acima

Qualquer duvida posta ai que iremos te ajudar!!!
XXXANGELSXXX 10/01/2012 00:14:43
#392765
com esse topico vc começa facim, facim... trabalhar com mysql.

  
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=9117

MARCELO.TREZE 10/01/2012 09:08:55
#392774
estive analizando e acho que o erro não está na sintaxe e sim no conector ODBC, acredito que esteja usando o MySQL 5.0 e o conector ODBC seja o 3.51, quando deveria ser 5.1

tente isso
ATILAJUNQUEIRA 10/01/2012 10:43:05
#392793
pessoal consegui, pala minha msmo erro de sintaxe... mais eu abri a conexao e a tabela para gravar deem uma olhada ae ...


Sub pf_grava()
Me.MousePointer = vbHourglass
Set CNN = CreateObject([Ô]ADODB.Connection[Ô])
CNN.ConnectionTimeout = 60
CNN.CommandTimeout = 400
CNN.CursorLocation = adUseClient
CNN.Open [Ô]DRIVER={MySQL ODBC 3.51 Driver};[Ô] _
& [Ô]user=root[Ô] _
& [Ô];password=[Ô] _
& [Ô];database=mysql[Ô] _
& [Ô];server=localhost[Ô] _
& [Ô];option=3[Ô]

Me.MousePointer = vbNormal

Set rs = CreateObject([Ô]ADODB.RecordSet[Ô])

Set rs.ActiveConnection = CNN
rs.Open [Ô]select * from clientes[Ô]

SSQL = [Ô]insert into clientes (razao,sexo,vendedor) values ([ô][Ô] & Combo1.Text & [Ô][ô], [ô][Ô] & combo2.Text & [Ô][ô],[ô][Ô] & combo3.Text & [Ô][ô])[Ô]
CNN.Execute (SSQL)

End Sub

mais uma ves agradeço a atenção pessoal flow!
Tópico encerrado , respostas não são mais permitidas