SQL 001
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
. . .
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.
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.
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)
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
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
. . .
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 . . .
Apostas_PrimeiraDezena
Apostas_ApostaNumero
Apostas_SegundaDezena
Apostas_TerceiraDezena
Apostas_QuartaDezena
Apostas_QuintaDezena
Apostas_SextaDezena
Campos corretos
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.
. . .
Tente assim:
Valeu, FFCOUTO... já corrigi a QUERY.
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.
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.
P.S: Na instrução do Tecla faltou um apóstrofo antes do ) no final.
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