Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

BaD.oX

Erro no Inser into

Recommended Posts

Olha o iniciante currinho aqui outra vez gente....Bom dessa vez é o seguinte, criei um public sub que insere os dados do fornecedor no banco de dados é o seguinte, quando clico no botao incluir, ele da o seguinte erro:Run-time error "-2147217900 (80040e14)':Erro de sintaxe na instrução INSERT INTOja fiz de tudo e nao sei onde esta o erro, alguem pode me ajudar?? o codigo q eu fiz do commando insert into esta logo a baixo.. se alguem puder ajudar agradeço valeu..With adCmdFornecedor.ActiveConnection = cnnBD.CommandType = adCmdText'Inclusão:.CommandText = "INSERT INTO Fornecedor" & _ "(TipoServico, NomeFornecedor, PessoaContato, End, Bairro, " & _ "Cidade, Estado, Cep, Tel, Fax, Cel, Email, InsEst, Cnpj) VALUES ('" & _ cboServiços.Text & "','" & txtNomeFornecedor.Text & "','" & txtPessoaContato.Text & "','" & _ txtEnd.Text & "','" & txtBairro.Text & "','" & txtCidade.Text & "','" & _ txtEstado.Text & "', '" & txtCep.Text & "','" & txtTel.Text & "','" & _ txtFax.Text & "','" & txtcel.Text & "','" & txtEmail.Text & "','" & _ txtInsEst.Text & "','" & txtCnpj.Text & "');".ExecuteEnd With

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte tente ver o resultado de sua select antes de executar. Pois este erro indica que está sendo inserido algum caracter no campo que não é compatível, exemplo o seu campo CNPJ você de ter colocado como numero no banco e está passando ele formatado.

Para saber como ver o resultado de sua select, dê uma olhada neste post.

Resultado SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifica se você não esta inserindo os valores em forma de texto onde é campo numérico ou vice versa. Que nem o o luiz humberto falou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifica se você não esta inserindo os valores em forma de texto onde é campo numérico ou vice versa. Que nem o o luiz humberto falou.

<{POST_SNAPBACK}>

Luiz, eu também estou com um problema parecido...só que no meu caso, no mesmo formulário que eu incluo dados, eu também altero eles...

a inclusão não funciona só que a alteração sim.

O que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste sua string de Inclusão e Alteração e qual erro retorna na inclusão.

<{POST_SNAPBACK}>

Private Sub txtCodUsuario_LostFocus()

Dim cnnComando As New ADODB.Command

Dim rsSelecao As New ADODB.Recordset

On Error GoTo errSelecao

'Verifica se foi digitado um código válido:

If Val(txtCodUsuario.Text) = 0 Then

MsgBox "Não foi digitado um código válido, verifique.", vbExclamation + vbOKOnly + vbApplicationModal, "Erro"

txtCodUsuario.SetFocus

Exit Sub

End If

Screen.MousePointer = vbHourglass

With cnnComando

.ActiveConnection = cnnBiblio

.CommandType = adCmdText

'Monta o comando SELECT para selecionar o registro na tabela:

.CommandText = "SELECT * FROM Usuarios WHERE Codigo = " & txtCodUsuario.Text & ";"

Set rsSelecao = .Execute

End With

With rsSelecao

If .EOF And .BOF Then

'Identifica a operacao como Inclusão:

vInclusao = True

Else

'Senão, atribui aos campos os dados do registro:

txtNomeUsuario.Text = !Usuario

txtEndereco.Text = !Endereco

txtCidade.Text = !Cidade

txtEstado.Text = !Estado

txtCEP.Text = !CEP

txtTelefone.Text = Empty & !Telefone

'Identifica a operacao como Alteração:

vInclusao = False

'Habilita o botão Excluir:

Toolbar1.Buttons(3).Enabled = True

End If

End With

'Desabilita a digitação do campo código:

txtCodUsuario.Enabled = False

 

Saida:

'Elimina o command e o recordset da memória:

Set rsSelecao = Nothing

Set cnnComando = Nothing

Screen.MousePointer = vbDefault

Exit Sub

 

errSelecao:

With Err

If .Number <> 0 Then

MsgBox "Houve um erro na recuperação do registro solicitado.", vbExclamation + vbOKOnly + vbApplicationModal, "Aviso"

.Number = 0

GoTo Saida

End If

End With

End Sub

 

Private Sub GravarDados()

Dim cnnComando As New ADODB.Command

Dim vConfMsg As Integer

Dim vErro As Boolean

On Error GoTo errGravacao

'Inicializa as variáveis auxiliares:

vConfMsg = vbExclamation + vbOKOnly + vbSystemModal

vErro = False

'Verifica os dados digitados:

If txtNomeUsuario.Text = Empty Then

MsgBox "O campo Nome não foi preenchido.", vConfMsg, "Erro"

vErro = True

End If

If txtEndereco.Text = Empty Then

MsgBox "O campo Endereço não foi preenchido.", vConfMsg, "Erro"

vErro = True

End If

If txtCidade.Text = Empty Then

MsgBox "O campo Cidade não foi preenchido.", vConfMsg, "Erro"

vErro = True

End If

If txtEstado.Text = Empty Then

MsgBox "O campo Estado não foi preenchido.", vConfMsg, "Erro"

vErro = True

End If

If txtCEP.Text = Empty Then

MsgBox "O campo CEP não foi preenchido.", vConfMsg, "Erro"

vErro = True

End If

'Se aconteceu um erro de digitação, sai da sub sem gravar:

If vErro Then Exit Sub

Screen.MousePointer = vbHourglass

With cnnComando

.ActiveConnection = cnnBiblio

.CommandType = adCmdText

'Verifica a operação e cria o comando SQL correspondente:

If vInclusao Then

'Inclusão:

.CommandText = "INSERT INTO Usuarios (Codigo, Usuario, Endereco, Cidade, Estado, CEP, Telefone) VALUES ('" & txtCodUsuario.Text & "', '" & txtNomeUsuario.Text & "', '" & txtEndereco.Text & "', '" & txtCidade.Text & "', '" & txtEstado.Text & "', '" & txtCEP.Text & "', '" & txtTelefone.Text & "');"

Else

'Alteração:

.CommandText = "UPDATE Usuarios SET Usuario ='" & txtNomeUsuario.Text & "', Endereco ='" & txtEndereco.Text & "', Cidade ='" & txtCidade.Text & "', Estado ='" & txtEstado.Text & "', CEP ='" & txtCEP.Text & "', Telefone ='" & txtTelefone.Text & "' WHERE Codigo =" & txtCodUsuario.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:

LimparTela

End If

 

Saida:

Screen.MousePointer = vbDefault

Set cnnComando = Nothing

Exit Sub

 

errGravacao:

With Err

If .Number <> 0 Then

MsgBox "Houve um erro durante a gravação dos dados na tabela.", vbExclamation + vbOKOnly + vbApplicationModal, "Erro"

.Number = 0

GoTo Saida

End If

End With

End Sub

 

Ele identifica através de um If se é alteração ou Inclusão de registro...você pode me ajudar a separar os dois...pra ficar mais simples...é que este é de uma apostila de onde estou tentando aprender VB.... só que só a Alteração é que eu conesegui fazer com que funcionasse o resto, só limpar os dados e excluir...o único que sobrou foi o de Inclusão de Arquivos.

 

Muito Obrigado. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Inicialmente sujiro a você, estudar com base neste livro.

 

Livro Visual Basic

<{POST_SNAPBACK}>

Já estou baixando e agradeço a sua atenção.

 

Muito Obrigado...

mas você conseguiu ver alguma coisa diferente em meu código que possa estar fazendo com que ele não inclua os dados do formulário no BD???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifica isso:

...INSERT INTO...values ('" & txtCodUsuario.Text & "',...
Esse campo ñ é numérico? Se for tira os apóstrofos dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.