PROBLEMAS COM O INSERT INTO
Amigos do forum ontem postei este problema, tive muito retorno e agradeci pela ajuda sabe poste atarde e foi mexer a noite com as dicas dos programadores mas infelismente o caminho do programador é ardo fiz como todos me falaram ontem mas continua ainda com o mesmo problema no insert into sabe ate mudei para tipo como vcs me falaram e nada como vc podem me ajudar resolver vou postar todo codigo para vcs analizarem
conexao em um form proprio
Set cnnPDV = New ADODB.Connection
With cnnPDV
.Provider = [Ô]Microsoft.JET.OLEDB.4.0[Ô]
.ConnectionString = App.Path & [Ô]\Db\PDV.mdb[Ô]
.Open
End With
adora o module
Global cnnPDV As New ADODB.Connection
Private Sub cmdSalvar_Click()
Dim cnnComando As New ADODB.Command
Dim vConfMsg As Integer
Dim vErro As Boolean
[ô]Verifica os dados digitados:
If txtu2.Text = Empty Then
MsgBox [Ô]O campo usuário não foi preenchido.[Ô], vConfMsg, [Ô]Erro[Ô]
vErro = True
End If
If txtu3.Text = Empty Then
MsgBox [Ô]O campo Senha não foi preenchido.[Ô], vConfMsg, [Ô]Erro[Ô]
vErro = True
End If
Screen.MousePointer = vbHourglass
With cnnComando
.ActiveConnection = cnnPDV
.CommandType = adCmdText
[ô]Verifica a operação e cria o comando SQL correspondente:
If vInclusao Then
[ô]Inclusão:
.CommandType = [Ô]INSERT INTO USUARIO [Ô] & _
[Ô](U1, U2, U3) VALUES ([Ô] & _
txtu1.Text = [Ô][ô],[ô][Ô] & _ essa não funciona da a mesagem que o gravado no banco mas quando vai olhar não tem nada
txtu2.Text = [Ô][ô],[ô][Ô] & _
txtu3.Text = [Ô][ô]);[Ô]
Else
.CommandText = [Ô]UPDATE USUARIO SET [Ô] & _
[Ô]U1 = [ô][Ô] & txtu1.Text & [Ô][ô],[Ô] & _ Esta parte funciona normal
[Ô]U2 = [ô][Ô] & txtu2.Text & [Ô][ô],[Ô] & _
[Ô]U3 = [ô][Ô] & txtu3.Text & [Ô][ô][Ô] & _
[Ô]WHERE U1 = [Ô] & txtu1.Text & [Ô];[Ô]
End If
.Execute
End With
MsgBox [Ô]Gravação concluÃda com sucesso.[Ô], _
vbApplicationModal + vbInformation + vbOKOnly, _
[Ô]Gravação OK[Ô]
[ô]Chama a sub que limpa os dados do formulário:
txtu1.Text = [Ô][Ô]
txtu2.Text = [Ô][Ô]
txtu3.Text = [Ô][Ô]
Saida:
Screen.MousePointer = vbDefault
Set cnnComando = Nothing
Exit Sub
End Sub
Banco access 2000
refeencia ado Microsdoft activex data objects 2,6 libray
Tabela = USUARIO
ID = Auto numeração com chave primaria
U1 = numero
U2 = texto
U3 = numero
3 textbox no form
txtU1 = U1 que é o codigo
txtU2 = U2 que é o usuario
txtu3 = U3 que senha
Nome da tabela usuario
obs seu eu excluir a parte do upadate nao funiona da erro txtu3.Text = [Ô][ô]);[Ô]
erro fala
ru-time 13 type mismatch e fica amarelo todo o insert into e marca com um seta amarela o txtu3.Text = [Ô][ô]);[Ô]
amigos que misterio é esse por favor me de um help
agradeço a todos pela atenção
conexao em um form proprio
Set cnnPDV = New ADODB.Connection
With cnnPDV
.Provider = [Ô]Microsoft.JET.OLEDB.4.0[Ô]
.ConnectionString = App.Path & [Ô]\Db\PDV.mdb[Ô]
.Open
End With
adora o module
Global cnnPDV As New ADODB.Connection
Private Sub cmdSalvar_Click()
Dim cnnComando As New ADODB.Command
Dim vConfMsg As Integer
Dim vErro As Boolean
[ô]Verifica os dados digitados:
If txtu2.Text = Empty Then
MsgBox [Ô]O campo usuário não foi preenchido.[Ô], vConfMsg, [Ô]Erro[Ô]
vErro = True
End If
If txtu3.Text = Empty Then
MsgBox [Ô]O campo Senha não foi preenchido.[Ô], vConfMsg, [Ô]Erro[Ô]
vErro = True
End If
Screen.MousePointer = vbHourglass
With cnnComando
.ActiveConnection = cnnPDV
.CommandType = adCmdText
[ô]Verifica a operação e cria o comando SQL correspondente:
If vInclusao Then
[ô]Inclusão:
.CommandType = [Ô]INSERT INTO USUARIO [Ô] & _
[Ô](U1, U2, U3) VALUES ([Ô] & _
txtu1.Text = [Ô][ô],[ô][Ô] & _ essa não funciona da a mesagem que o gravado no banco mas quando vai olhar não tem nada
txtu2.Text = [Ô][ô],[ô][Ô] & _
txtu3.Text = [Ô][ô]);[Ô]
Else
.CommandText = [Ô]UPDATE USUARIO SET [Ô] & _
[Ô]U1 = [ô][Ô] & txtu1.Text & [Ô][ô],[Ô] & _ Esta parte funciona normal
[Ô]U2 = [ô][Ô] & txtu2.Text & [Ô][ô],[Ô] & _
[Ô]U3 = [ô][Ô] & txtu3.Text & [Ô][ô][Ô] & _
[Ô]WHERE U1 = [Ô] & txtu1.Text & [Ô];[Ô]
End If
.Execute
End With
MsgBox [Ô]Gravação concluÃda com sucesso.[Ô], _
vbApplicationModal + vbInformation + vbOKOnly, _
[Ô]Gravação OK[Ô]
[ô]Chama a sub que limpa os dados do formulário:
txtu1.Text = [Ô][Ô]
txtu2.Text = [Ô][Ô]
txtu3.Text = [Ô][Ô]
Saida:
Screen.MousePointer = vbDefault
Set cnnComando = Nothing
Exit Sub
End Sub
Banco access 2000
refeencia ado Microsdoft activex data objects 2,6 libray
Tabela = USUARIO
ID = Auto numeração com chave primaria
U1 = numero
U2 = texto
U3 = numero
3 textbox no form
txtU1 = U1 que é o codigo
txtU2 = U2 que é o usuario
txtu3 = U3 que senha
Nome da tabela usuario
obs seu eu excluir a parte do upadate nao funiona da erro txtu3.Text = [Ô][ô]);[Ô]
erro fala
ru-time 13 type mismatch e fica amarelo todo o insert into e marca com um seta amarela o txtu3.Text = [Ô][ô]);[Ô]
amigos que misterio é esse por favor me de um help
agradeço a todos pela atenção
obs
esta em um form proprio
Private Sub cmdSalvar_Click()
esta em um form proprio
Private Sub cmdSalvar_Click()
.CommandType = [Ô]INSERT INTO USUARIO [Ô] & _
[Ô](U1, U2, U3) VALUES ([Ô] & _
txtu1.Text = [Ô][ô],[ô][Ô] & _ essa não funciona da a mesagem que o gravado no banco mas quando vai olhar não tem nada
txtu2.Text = [Ô][ô],[ô][Ô] & _
txtu3.Text = [Ô][ô]);[Ô]
Bom, vejo duas situações:
1-Qual é o tipo do campo U1. No insert vc está acrescentando haspas simples só no final;
2-no update vc não está colocando haspas simples na cláusula WHERE [Ô]WHERE U1 = [Ô] & txtu1.Text & [Ô];[Ô]
Se for varchar, falta colocar haspas simpes no u1 do insert. Se for integer, precisa retirar o que está no final do U1.
[Ô](U1, U2, U3) VALUES ([Ô] & _
txtu1.Text = [Ô][ô],[ô][Ô] & _ essa não funciona da a mesagem que o gravado no banco mas quando vai olhar não tem nada
txtu2.Text = [Ô][ô],[ô][Ô] & _
txtu3.Text = [Ô][ô]);[Ô]
Bom, vejo duas situações:
1-Qual é o tipo do campo U1. No insert vc está acrescentando haspas simples só no final;
2-no update vc não está colocando haspas simples na cláusula WHERE [Ô]WHERE U1 = [Ô] & txtu1.Text & [Ô];[Ô]
Se for varchar, falta colocar haspas simpes no u1 do insert. Se for integer, precisa retirar o que está no final do U1.
isso da a mensagem que gravou mas quando vou olhar não tem nada no banco
Campo U1 é numerico porque é o código
no update está assim [Ô]WHERE U1 = [Ô] & txtu1.Text & [Ô];[Ô] este é o update
oque devo fazer amigo
Campo U1 é numerico porque é o código
no update está assim [Ô]WHERE U1 = [Ô] & txtu1.Text & [Ô];[Ô] este é o update
oque devo fazer amigo
[Ô]INSERT INTO USUARIO [Ô] & _
[Ô](U1, U2, U3) VALUES ([Ô] & _
txtu1.Text = [Ô][ô],[ô][Ô] & _ essa não funciona da a mesagem que o gravado no banco mas quando vai olhar não tem nada
txtu2.Text = [Ô][ô],[ô][Ô] & _
txtu3.Text = [Ô][ô]);[Ô]
Tira essa haspa simples. Se for autoincrement, não precisa informar o campo
[Ô]INSERT INTO USUARIO [Ô] & _
[Ô](U1, U2, U3) VALUES ([Ô] & _
txtu1.Text = [Ô],[ô][Ô] & _ essa não funciona da a mesagem que o gravado no banco mas quando vai olhar não tem nada
txtu2.Text = [Ô][ô],[ô][Ô] & _
txtu3.Text = [Ô][ô]);[Ô]
ou
[Ô]INSERT INTO USUARIO [Ô] & _
[Ô]( U2,U3) VALUES ([ô][Ô] & _ essa não funciona da a mesagem que o gravado no banco mas quando vai olhar não tem nada
txtu2.Text = [Ô][ô],[ô][Ô] & _
txtu3.Text = [Ô][ô]);[Ô]
[Ô](U1, U2, U3) VALUES ([Ô] & _
txtu1.Text = [Ô][ô],[ô][Ô] & _ essa não funciona da a mesagem que o gravado no banco mas quando vai olhar não tem nada
txtu2.Text = [Ô][ô],[ô][Ô] & _
txtu3.Text = [Ô][ô]);[Ô]
Tira essa haspa simples. Se for autoincrement, não precisa informar o campo
[Ô]INSERT INTO USUARIO [Ô] & _
[Ô](U1, U2, U3) VALUES ([Ô] & _
txtu1.Text = [Ô],[ô][Ô] & _ essa não funciona da a mesagem que o gravado no banco mas quando vai olhar não tem nada
txtu2.Text = [Ô][ô],[ô][Ô] & _
txtu3.Text = [Ô][ô]);[Ô]
ou
[Ô]INSERT INTO USUARIO [Ô] & _
[Ô]( U2,U3) VALUES ([ô][Ô] & _ essa não funciona da a mesagem que o gravado no banco mas quando vai olhar não tem nada
txtu2.Text = [Ô][ô],[ô][Ô] & _
txtu3.Text = [Ô][ô]);[Ô]
nudei do jeito que vc me falou e nada o problema eu acho que é o else se tirar ele e upadate todo da erro type minitch 13 no insert into
Então o que está ocorrendo é que a sua variável If vInclusao Then está sempre com False.
Veja na chamada no form se vc está indicando a variável para True.
Agora, como há a haspa simples informada indevidamente, está retornando o erro.
Então, veja a variável e corija a sintaxe da sql como lhe indiquei.
Veja na chamada no form se vc está indicando a variável para True.
Agora, como há a haspa simples informada indevidamente, está retornando o erro.
Então, veja a variável e corija a sintaxe da sql como lhe indiquei.
vou tentar mais tarde para ver se vai dar certo amigo qualquer eu volto há postar muito obrigado
o problema é a té simples, porém niguém se atentou para o mesmo, e a unica coisa que está errada é a como vc escreveu a string.
veja o correto
você estava colocando um sinal de igual, isso não existe
VEJA OS SINAIS EM VERMELHO
veja o correto
.CommandType = [Ô]INSERT INTO USUARIO [Ô] & _
[Ô](U1, U2, U3) VALUES ([Ô] & _
txtu1.Text & [Ô][ô],[ô][Ô] & _
txtu2.Text & [Ô][ô],[ô][Ô] & _
txtu3.Text & [Ô][ô]);[Ô]
você estava colocando um sinal de igual, isso não existe
[txt-color=#e80000]'FORMA QUE ESTAVA ERRADA[/txt-color]
.CommandType = [Ô]INSERT INTO USUARIO [Ô] & _
[Ô](U1, U2, U3) VALUES ([Ô] & _
txtu1.Text [txt-color=#e80000]=[/txt-color] [Ô][ô],[ô][Ô] & _
txtu2.Text [txt-color=#e80000]=[/txt-color] [Ô][ô],[ô][Ô] & _
txtu3.Text[txt-color=#e80000] =[/txt-color] [Ô][ô]);[Ô]
VEJA OS SINAIS EM VERMELHO
Olá amigos do forum bom dia
Depois de muita ajuda de vcs do forum e muita pesquisa consegui achei o problema do insert into
era essa variavel com problema não transferia os dados para a tabela
If vInclusao Then assim que retirei essa varivel funcionou perfeitamente
muito obrigado a todos que me ajudaram aqui no forum
a vida de um programador é arduo e com muitas pedras no caminho estude muito e pesquise muito obrigado amigos
Depois de muita ajuda de vcs do forum e muita pesquisa consegui achei o problema do insert into
era essa variavel com problema não transferia os dados para a tabela
If vInclusao Then assim que retirei essa varivel funcionou perfeitamente
muito obrigado a todos que me ajudaram aqui no forum
a vida de um programador é arduo e com muitas pedras no caminho estude muito e pesquise muito obrigado amigos
ai em baixo está o codigo funciomando perfeitamente
Para os que quiserem estudar nele está todo funcional está e minha contribuição
Private Sub cmdNovo_Click()
txtu1.Enabled = True
txtu2.Enabled = True
txtu3.Enabled = True
cmdSalvar.Enabled = True
cmdNovo.Enabled = False
txtu1.Text = [Ô][Ô]
txtu2.Text = [Ô][Ô]
txtu3.Text = [Ô][Ô]
txtu1.SetFocus
End Sub
Private Sub cmdSair_Click()
Unload Me
End Sub
Private Sub cmdSalvar_Click()
Dim cnnComando As New ADODB.Command
Dim vConfMsg As Integer
Dim vErro As Boolean
[ô]Verifica os dados digitados:
If txtu2.Text = Empty Then
MsgBox [Ô]O campo usuário não foi preenchido.[Ô], vConfMsg, [Ô]Erro[Ô]
vErro = True
End If
If txtu3.Text = Empty Then
MsgBox [Ô]O campo Senha não foi preenchido.[Ô], vConfMsg, [Ô]Erro[Ô]
vErro = True
End If
Screen.MousePointer = vbHourglass
With cnnComando
.ActiveConnection = cnnPDV
.CommandType = adCmdText
[ô]cria um comando sql para inclusao de cliente[ô]
.CommandText = [Ô]INSERT INTO USUARIO [Ô] & _
[Ô](U1, U2, U3) VALUES ([Ô] & _
txtu1.Text & [Ô],[ô][Ô] & _
txtu2.Text & [Ô][ô],[ô][Ô] & _
txtu3.Text & [Ô][ô]);[Ô]
.Execute
End With
MsgBox [Ô]Gravação concluÃda com sucesso.[Ô], _
vbApplicationModal + vbInformation + vbOKOnly, _
[Ô]Gravação OK[Ô]
[ô]Chama a sub que limpa os dados do formulário:
txtu1.Text = [Ô][Ô]
txtu2.Text = [Ô][Ô]
txtu3.Text = [Ô][Ô]
txtu1.Enabled = False
txtu2.Enabled = False
txtu3.Enabled = False
cmdSalvar.Enabled = False
cmdNovo.Enabled = True
Saida:
Screen.MousePointer = vbDefault
Set cnnComando = Nothing
Exit Sub
End Sub
Private Sub Form_Load()
txtu1.Enabled = False
txtu2.Enabled = False
txtu3.Enabled = False
cmdSalvar.Enabled = False
End Sub
Private Sub txtu1_LostFocus()
Dim cnnComando As New ADODB.Command
Dim rsSelecao As New ADODB.Recordset
Screen.MousePointer = vbHourglass
With cnnComando
.ActiveConnection = cnnPDV
.CommandType = adCmdText
[ô]Monta o comando SELECT para selecionar o registro na tabela:
.CommandText = [Ô]SELECT * FROM USUARIO WHERE U1 = [Ô] & _
txtu1.Text & [Ô];[Ô]
Set rsSelecao = .Execute
End With
With rsSelecao
If .EOF And .BOF Then
[ô]Se o recordset está vazio, não retornou registro com esse código:
[ô]Identifica a operacao como Inclusão:
vInclusao = True
Else
[ô]Senão, atribui aos campos os dados do registro:
txtu1.Text = !U1
txtu2.Text = !U2
txtu3.Text = !U3
MsgBox [Ô]Informe um novo Código para fazer o cadastro[Ô], vbInformation, [Ô]Aviso[Ô]
txtu1.Enabled = False
txtu2.Enabled = False
txtu3.Enabled = False
cmdSalvar.Enabled = False
cmdNovo.Enabled = True
vInclusao = False
End If
End With
[ô]Elimina o command e o recordset da memória:
Set rsSelecao = Nothing
Set cnnComando = Nothing
Screen.MousePointer = vbDefault
Exit Sub
End Sub
Private Sub txtu1_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
KeyAscii = 0
SendKeys [Ô]{TAB}[Ô]
End If
End Sub
Private Sub txtu2_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
KeyAscii = 0
SendKeys [Ô]{TAB}[Ô]
End If
End Sub
Private Sub txtu3_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
KeyAscii = 0
SendKeys [Ô]{TAB}[Ô]
End If
End Sub
Private Sub txtu4_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
KeyAscii = 0
SendKeys [Ô]{TAB}[Ô]
End If
End Sub
Para os que quiserem estudar nele está todo funcional está e minha contribuição
Private Sub cmdNovo_Click()
txtu1.Enabled = True
txtu2.Enabled = True
txtu3.Enabled = True
cmdSalvar.Enabled = True
cmdNovo.Enabled = False
txtu1.Text = [Ô][Ô]
txtu2.Text = [Ô][Ô]
txtu3.Text = [Ô][Ô]
txtu1.SetFocus
End Sub
Private Sub cmdSair_Click()
Unload Me
End Sub
Private Sub cmdSalvar_Click()
Dim cnnComando As New ADODB.Command
Dim vConfMsg As Integer
Dim vErro As Boolean
[ô]Verifica os dados digitados:
If txtu2.Text = Empty Then
MsgBox [Ô]O campo usuário não foi preenchido.[Ô], vConfMsg, [Ô]Erro[Ô]
vErro = True
End If
If txtu3.Text = Empty Then
MsgBox [Ô]O campo Senha não foi preenchido.[Ô], vConfMsg, [Ô]Erro[Ô]
vErro = True
End If
Screen.MousePointer = vbHourglass
With cnnComando
.ActiveConnection = cnnPDV
.CommandType = adCmdText
[ô]cria um comando sql para inclusao de cliente[ô]
.CommandText = [Ô]INSERT INTO USUARIO [Ô] & _
[Ô](U1, U2, U3) VALUES ([Ô] & _
txtu1.Text & [Ô],[ô][Ô] & _
txtu2.Text & [Ô][ô],[ô][Ô] & _
txtu3.Text & [Ô][ô]);[Ô]
.Execute
End With
MsgBox [Ô]Gravação concluÃda com sucesso.[Ô], _
vbApplicationModal + vbInformation + vbOKOnly, _
[Ô]Gravação OK[Ô]
[ô]Chama a sub que limpa os dados do formulário:
txtu1.Text = [Ô][Ô]
txtu2.Text = [Ô][Ô]
txtu3.Text = [Ô][Ô]
txtu1.Enabled = False
txtu2.Enabled = False
txtu3.Enabled = False
cmdSalvar.Enabled = False
cmdNovo.Enabled = True
Saida:
Screen.MousePointer = vbDefault
Set cnnComando = Nothing
Exit Sub
End Sub
Private Sub Form_Load()
txtu1.Enabled = False
txtu2.Enabled = False
txtu3.Enabled = False
cmdSalvar.Enabled = False
End Sub
Private Sub txtu1_LostFocus()
Dim cnnComando As New ADODB.Command
Dim rsSelecao As New ADODB.Recordset
Screen.MousePointer = vbHourglass
With cnnComando
.ActiveConnection = cnnPDV
.CommandType = adCmdText
[ô]Monta o comando SELECT para selecionar o registro na tabela:
.CommandText = [Ô]SELECT * FROM USUARIO WHERE U1 = [Ô] & _
txtu1.Text & [Ô];[Ô]
Set rsSelecao = .Execute
End With
With rsSelecao
If .EOF And .BOF Then
[ô]Se o recordset está vazio, não retornou registro com esse código:
[ô]Identifica a operacao como Inclusão:
vInclusao = True
Else
[ô]Senão, atribui aos campos os dados do registro:
txtu1.Text = !U1
txtu2.Text = !U2
txtu3.Text = !U3
MsgBox [Ô]Informe um novo Código para fazer o cadastro[Ô], vbInformation, [Ô]Aviso[Ô]
txtu1.Enabled = False
txtu2.Enabled = False
txtu3.Enabled = False
cmdSalvar.Enabled = False
cmdNovo.Enabled = True
vInclusao = False
End If
End With
[ô]Elimina o command e o recordset da memória:
Set rsSelecao = Nothing
Set cnnComando = Nothing
Screen.MousePointer = vbDefault
Exit Sub
End Sub
Private Sub txtu1_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
KeyAscii = 0
SendKeys [Ô]{TAB}[Ô]
End If
End Sub
Private Sub txtu2_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
KeyAscii = 0
SendKeys [Ô]{TAB}[Ô]
End If
End Sub
Private Sub txtu3_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
KeyAscii = 0
SendKeys [Ô]{TAB}[Ô]
End If
End Sub
Private Sub txtu4_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii = 13 Then
KeyAscii = 0
SendKeys [Ô]{TAB}[Ô]
End If
End Sub
Tópico encerrado , respostas não são mais permitidas