SQL 001

MICROSCHEME 27/03/2010 10:33:15
#338029

Seguinte:

Tô precisando progredir (atualmente uso VB6 e Access) e sinceramente, quanto a sql eu sou muito fraco, principalmente
e ainda mais quando diz respeito a aspas simples junto com aspas duplas (cara, eu sou uma negação no assunto), e
vou precisar e agradecer muito toda a ajuda que tiver pra aprender. Vou usar um projeto antigo meu, que vai servir pro aprendizado, desde que consiga encontrar ajuda com os amigos, é claro, pois com mateiral didático somente, fica difícil entender a razão de sintaxes longas.

Blz . .

Meu primeiro problema

Com ado funciona mas tá dando erro de sintaxe no execute:

Meu código:

Dim strGravaApostaSql As String
Dim strConcurso As String
Dim strAposta As String
Dim strPrimeiraAposta As String
Dim strSegundaDezena As String
Dim strTerceiraDezena As String
Dim strQuartaDezena As String
Dim strQuintaDezena As String
Dim strSextaDezena As String

Function GravaAposta()

[ô] ApostasRecSet.AddNew
[ô] ApostasRecSet([Ô]Apostas_Concurso[Ô]) = Format(intConcurso, [Ô]0000[Ô])
[ô] ApostasRecSet([Ô]Apostas_ApostaNumero[Ô]) = Format(intConcurso, [Ô]0000[Ô])
[ô] ApostasRecSet([Ô]Apostas_PrimeiraDezena[Ô]) = Format(Text0002.Text, [Ô]00[Ô])
[ô] ApostasRecSet([Ô]Apostas_SegundaDezena[Ô]) = Format(Text003.Text, [Ô]00[Ô])
[ô] ApostasRecSet([Ô]Apostas_TerceiraDezena[Ô]) = Format(Text004.Text, [Ô]00[Ô])
[ô] ApostasRecSet([Ô]Apostas_QuartaDezena[Ô]) = Format(Text005.Text, [Ô]00[Ô])
[ô] ApostasRecSet([Ô]Apostas_QuintaDezena[Ô]) = Format(Text006.Text, [Ô]00[Ô])
[ô] ApostasRecSet([Ô]Apostas_SextaDezena[Ô]) = Format(Text007.Text, [Ô]00[Ô])
[ô] ApostasRecSet.Update

strGravaApostaSql = [Ô]Insert Into Apostas([Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_Concurso,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_ApostaNumero,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_PrimeiraDezena,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_SegundaDezena,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_TerceiraDezena,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_QuartaDezena,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_QuintaDezena,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_SextaDezena)[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô] Value[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô](strConcurso,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]strAposta,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]strPrimeiraDezena,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]strSegundaDezena,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]strTerceiraDezena,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]strQuartaDezena,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]strQuintaDezena,[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]strSextaDezena)[Ô]
MegaSenaDBConnect.Execute strGravaApostaSql

End Function

As variaveis vem de textbox

. . .



TECLA 27/03/2010 11:42:35
#338035
Resposta escolhida
1. Poste no tópico a ESTRUTURA da tabela APOSTAS
2. Ante da linha MegaSenaDBConnect.Execute strGravaApostaSql acrescente o comando Debug.Print strGravaApostaSql, rode o código e poste aqui a QUERY que apareceu no IMMEDIATE WINDOW.
MICROSCHEME 27/03/2010 12:16:56
#338039

o Debug:

Insert Into Apostas(Apostas_Concurso,Apostas_ApostaNumero,Apostas_PrimeiraDezena,Apostas_SegundaDezena,Apostas_TerceiraDezena,Apostas_QuartaDezena,Apostas_QuintaDezena,Apostas_SextaDezena) Value(strConcurso,strAposta,strPrimeiraDezena,strSegundaDezena,strTerceiraDezena,strQuartaDezena,strQuintaDezena,strSextaDezena)
FFCOUTO 27/03/2010 14:54:36
#338043
O erro aqui é óbvio. Você está passando o nome da variável no lugar do valor da variável. Abaixo está a SQL corrigida

Function GravaAposta()

[ô] ApostasRecSet.AddNew
[ô] ApostasRecSet([Ô]Apostas_Concurso[Ô]) = Format(intConcurso, [Ô]0000[Ô])
[ô] ApostasRecSet([Ô]Apostas_ApostaNumero[Ô]) = Format(intConcurso, [Ô]0000[Ô])
[ô] ApostasRecSet([Ô]Apostas_PrimeiraDezena[Ô]) = Format(Text0002.Text, [Ô]00[Ô])
[ô] ApostasRecSet([Ô]Apostas_SegundaDezena[Ô]) = Format(Text003.Text, [Ô]00[Ô])
[ô] ApostasRecSet([Ô]Apostas_TerceiraDezena[Ô]) = Format(Text004.Text, [Ô]00[Ô])
[ô] ApostasRecSet([Ô]Apostas_QuartaDezena[Ô]) = Format(Text005.Text, [Ô]00[Ô])
[ô] ApostasRecSet([Ô]Apostas_QuintaDezena[Ô]) = Format(Text006.Text, [Ô]00[Ô])
[ô] ApostasRecSet([Ô]Apostas_SextaDezena[Ô]) = Format(Text007.Text, [Ô]00[Ô])
[ô] ApostasRecSet.Update

strGravaApostaSql = [Ô]Insert Into Apostas ([Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_Concurso, [Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_ApostaNumero, [Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_PrimeiraDezena, [Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_SegundaDezena, [Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_TerceiraDezena, [Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_QuartaDezena, [Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_QuintaDezena, [Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]Apostas_SextaDezena[Ô]
strGravaApostaSql = strGravaApostaSql & [Ô]) Value ([Ô]
strGravaApostaSql = strGravaApostaSql & strConcurso & [Ô], [Ô]
strGravaApostaSql = strGravaApostaSql & strAposta & [Ô], [Ô]
strGravaApostaSql = strGravaApostaSql & strPrimeiraDezena & [Ô], [Ô]
strGravaApostaSql = strGravaApostaSql & strSegundaDezena & [Ô], [Ô]
strGravaApostaSql = strGravaApostaSql & strTerceiraDezena & [Ô], [Ô]
strGravaApostaSql = strGravaApostaSql & strQuartaDezena & [Ô], [Ô]
strGravaApostaSql = strGravaApostaSql & strQuintaDezena & [Ô], [Ô]
strGravaApostaSql = strGravaApostaSql & strSextaDezena & [Ô])[Ô]
MegaSenaDBConnect.Execute strGravaApostaSql

End Function


MICROSCHEME 27/03/2010 17:19:17
#338047

Blz . . . Mano.

Mas . . .

Continua dando com a tua instrução, exatamanete o mesmo erro que dava com a minha:

Run-Time Error [ô]-2147217900 (80040e14)[ô]:
Erro de sintaxe na Instrução INSERT INTO.

Continua exatamente igual

. . .
MICROSCHEME 27/03/2010 17:41:37
#338050

Seguinte:

a variavel estava como Dim strPrimeiraAposta as String e na verdade é Dim strPrimeiraDezena as String.

Até ai tudo bem. Consertado o erro e colando a sintaxe do amigo FFCouto continua dando o mesmo erro, porém,
o debug.print retorna:

Insert Into Apostas (Apostas_Concurso, Apostas_ApostaNumero, Apostas_PrimeiraDezena, Apostas_SegundaDezena, Apostas_TerceiraDezena, Apostas_QuartaDezena, Apostas_QuintaDezena, Apostas_SextaDezena) Value (0001, 001, 01, 02, 03, 04, 05, 06)

A tabela é Apostas

Os campos são:
Apostas_PrimeiraDezena
Apostas_SegundaDezena
Apostas_TerceiraDezena
Apostas_QuartaDezena
Apostas_QuintaDezena
Apostas_SextaDezena

Os valores retornados no debug são:

0001, 001, 01, 02, 03, 04, 05 e 06

Isto significa que pelo debug está retornando corretamente os valores a serem gravados, porém não
grava e retorna o erro acima.

FFCouto obrigado pela dica, mas ainda está faltando algo que não sei o que é.

Blz . . .

MICROSCHEME 27/03/2010 17:43:03
#338051

Apostas_PrimeiraDezena
Apostas_ApostaNumero
Apostas_SegundaDezena
Apostas_TerceiraDezena
Apostas_QuartaDezena
Apostas_QuintaDezena
Apostas_SextaDezena

Campos corretos
MICROSCHEME 27/03/2010 17:45:54
#338052

Desculpa, errei novamente.

Os campos corretos são:

Apostas_Concurso
Apostas_ApostaNumero
Apostas_PrimeiraDezena
Apostas_SegundaDezena
Apostas_TerceiraDezena
Apostas_QuartaDezena
Apostas_QuintaDezena
Apostas_SextaDezena

Opa, agora sim.

. . .

TECLA 27/03/2010 17:47:27
#338053
Tente assim:

sSQL = [Ô]Insert Into Apostas(Apostas_Concurso,[Ô] 
sSQL = sSQL & [Ô]Apostas_ApostaNumero,[Ô]
sSQL = sSQL & [Ô]Apostas_PrimeiraDezena,[Ô]
sSQL = sSQL & [Ô]Apostas_SegundaDezena,[Ô]
sSQL = sSQL & [Ô]Apostas_TerceiraDezena,[Ô]
sSQL = sSQL & [Ô]Apostas_QuartaDezena,[Ô]
sSQL = sSQL & [Ô]Apostas_QuintaDezena,[Ô]
sSQL = sSQL & [Ô]Apostas_SextaDezena) [Ô]
sSQL = sSQL & [Ô] Values ([Ô]
sSQL = sSQL & [Ô][ô][Ô] & strConcurso & [Ô][ô], [Ô]
sSQL = sSQL & [Ô][ô][Ô] & strAposta & [Ô][ô], [Ô]
sSQL = sSQL & [Ô][ô][Ô] & strPrimeiraDezena & [Ô][ô], [Ô]
sSQL = sSQL & [Ô][ô][Ô] & strSegundaDezena & [Ô][ô], [Ô]
sSQL = sSQL & [Ô][ô][Ô] & strTerceiraDezena & [Ô][ô], [Ô]
sSQL = sSQL & [Ô][ô][Ô] & strQuartaDezena & [Ô][ô], [Ô]
sSQL = sSQL & [Ô][ô][Ô] & strQuintaDezena & [Ô][ô], [Ô]
sSQL = sSQL & [Ô][ô][Ô] & strSextaDezena & [Ô][ô])[Ô]
MegaSenaDBConnect.Execute sSQL


Valeu, FFCOUTO... já corrigi a QUERY.
FFCOUTO 27/03/2010 18:26:01
#338055
Opa, vacilo meu, faltaram os apóstrofos que o Tecla inseriu na instrução. Não me atentei para o fato de você usar strings no lugar de números.

P.S: Na instrução do Tecla faltou um apóstrofo antes do ) no final.
MICROSCHEME 27/03/2010 21:49:19
#338059

Blz . . .

Resolvido.

Estou encerrando o tópico, agradecendo a ajuda do Tecla e do FFCouto, mas deixando também registrado
que ao escolher a resposta de um posso estar sendo injusto com o outro.

Me desculpem se isto acontecer, mas escolherei a resposta que finalmente me ajudou a resolver o problema
e que agora posso procurar entender e aprender o porque das aspas simpes e duplas e tentar saber onde elas vão
nas query's futuras, adiantando que como leigo, outras perguntas virão e com certeza contarei mais uma
vêz com o saber dos amigos.

Obrigado.

. . .
Tópico encerrado , respostas não são mais permitidas