Ir para conteúdo
Fórum Script Brasil
  • 0

Erro de sintaxe no comando update do sql


Guest Aaron Godoy

Pergunta

Guest Aaron Godoy

È o seguinte, quando eu mando alterar está dando erro, o sistema grava uma vez mas na hora que eu tenho mudar um campo e gravar de novo da erro nessa linha:

strsql = "Update cidades Set (nome = " & "'" & txt_nome & "', estado = '" & cmb_estado & "', populacao  = " & txt_pop & ",  renda_per_capta = " & txt_rpc & ")"
            db.Execute strsql

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Estou usando um dao connection , ele está fazendo tudo certo, incluindo excluindo, o problema é no alterar, estou usando um boolean e programando o gravar e alterar no mesmo botão entendeu? Por exemplo quando eu clico no botão incluir ele manda para a tela de cadastro e o boolean é true, mas quando eu clico no cadastro diretamente pelo dblclick no flexgrid o boolean muda para false e o gravar para update!

Bem, pra facilitar vou mandar a linha de código completa

Dim strsql As String
    Dim strsql2 As String
    
    If validacaodoscampos = True Then

    
        If blnIncluir = True Then
            
            If txt_pop = "" Then txt_pop = 0
            
            If txt_rpc = "" Then txt_rpc = 0
                
            strsql = "Insert Into cidades (nome,estado,populacao,renda_per_capta)"
            strsql = strsql & " Values (" & "'" & txt_nome & "','" & cmb_est & "'," & txt_pop & "," & txt_rpc & ")"
            db.Execute strsql
        Else
             
            strsql2 = "Update cidades set (nome = " & "'" & txt_nome & "', estado = '" & cmb_estado & "', populacao  = " & txt_pop & ", renda_per_capta = " & txt_rpc & ")"
            db.Execute strsql2 'O erro aparece nessa linha'

            
            
        End If
        fra_cad.Visible = False
        PreencherMSFlexGrid
        cmd_exc.Visible = True
        habilitapes
    Else
        txt_nome.SetFocus
    
    End If
End Sub

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

Cara tá difícil eu entendi, pus o where e mesmo assim acusa erro de sintaxe, eis a linha que está dando problema:

strsql = "Update cidades set (nome = " & "'" & txt_nome & "', estado = '" & cmb_estado & "', populacao  = " & txt_pop & ",     renda_per_capta = " & txt_rpc & ")where  codigo = " & txt_cod & " "
            db.Execute strsql

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

Pode ser por causa dos parenteses, e pela falta de espaço entre o fechamento do parentese e o where:

strsql = "Update cidades set nome = " & "'" & txt_nome & "', estado = '" & cmb_estado & "', populacao = " & txt_pop & ", renda_per_capta = " & txt_rpc & " where codigo = " & txt_cod & " "
db.Execute strsql

Link para o comentário
Compartilhar em outros sites

  • 0

highmax, sempre poste a descricao do erro porque assim fica mais facil de a gente entender do q se trata.

se a dica do webdeveloper não resolver, tente checar os tipos de campos, porque texto tem q ir entre ' e numeros não. e no caso de você gravar decimais, grave com ponto e não com virgula.

caso você ainda tenha problemas, poste pra nos a descricao do erro q aparece na mensagem.

Link para o comentário
Compartilhar em outros sites

  • 0

Tente isso:

strsql = "Update cidades set nome = " & "'" & txt_nome & "', estado = '" & cmb_estado & "', populacao = " & txt_pop & ", renda_per_capta = " & txt_rpc & " where codigo = " & txt_cod & " "
Debug.Print sql
'db.Execute strsql

Vá no menu View e clique em Immediate Window, execute o programa, quando fizer o update volte no VB e copie o conteúdo da Immediate Window, abra o Access e crie uma consulta SQL, cole este conteúdo e veja onde ele aponta o erro.

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui, o problema era por causa dos parenteses que não existem na instrução update, a linha de comando correta ficou assim:

strsql = "Update cidades set nome = " & "'"

strsql = strsql & txt_nome & "', estado = '"

strsql = strsql & cmb_est & "', populacao = "

strsql = strsql & txt_pop & ", renda_per_capta = " & txt_rpc & " "

strsql = strsql & " WHERE codigo =" & txt_cod.Text

db.Execute strsql

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...