Guest Aaron Godoy Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 (editado) È 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 Março 13, 2008 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 webdeveloper Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 Como assim?Nesta Query que você está usando, ele faz update na tabela inteira, qual banco você está usando? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 highmax Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 (editado) 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 completaDim 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 Março 13, 2008 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 webdeveloper Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 Na minha opinião está faltando a cláusula WHERE, para alterar somente a cidade referida. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 highmax Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 beleza, mas então no caso eu colocaria where no lugar do set? como ficaria a linha de comando? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 webdeveloper Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 strsql2 = "Update cidades set nome = " & "'" & txt_nome & "', estado = '" & cmb_estado & "', populacao = " & txt_pop & ", renda_per_capta = " & txt_rpc & " where ...." Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 highmax Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 (editado) 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 Março 13, 2008 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 webdeveloper Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 raphael_suporte Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 é impressão minha ou em uma linha está cmb_estado e no outro está cmb_est?? isso foi só aqui ou no projeto tb está assim?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 highmax Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 O erro que aparece é na sintaxe do update, simplesmente isso. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 webdeveloper Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 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 strsqlVá 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 highmax Postado Março 14, 2008 Denunciar Share Postado Março 14, 2008 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 webdeveloper Postado Março 14, 2008 Denunciar Share Postado Março 14, 2008 Que bom! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 highmax Postado Março 14, 2008 Denunciar Share Postado Março 14, 2008 obrigado pelas dicas, as vezes confundo os comandos de sql... Citar Link para o comentário Compartilhar em outros sites More sharing options...
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:
Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados
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.