Usuário com melhor resposta
Alterar a partir de Formulário

Pergunta
-
Pessoal,
Eu estou com uma dúvida que está me deixando com a cara no chão. Isso pelo fato de o problema ser muito simples, porém, até agora eu não consegui resolvê-lo.
É o seguinte: eu tenho um Form criado no Access onde eu preciso fazer Consulta, Alteração e Exclusão. O problema é que eu não estou conseguindo satisfazer uma condição, por exemplo, para alteração.
Eu estou usando o seguinte código:
Dim valorantigo As String
Dim valornovo As String
valorantigo = Forms!Manter_Unidades!listUnidades.Value
valornovo = Forms!Manter_Unidades!txtUnidade.Value
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT * FROM TbUnidades WHERE TbUnidades.Unidade = valorantigo")
rst.Edit
rst!Unidade = valornovo
rst.UpdateNão sei se o problema está na condição "Where" que estou utilizando na linha em vermelho.
Se alguém puder me passar um modelo de código para a realização dessas operações, ficaria muitíssimo grato.
quarta-feira, 23 de abril de 2008 00:13
Respostas
-
Wagner,
Acho que está faltando os "plics" no valor da clausula where
Code SnippetSELECT * FROM TbUnidades WHERE Unidade=" & "'" & valorantigo & "'"Mais uma dica:
Eu normalmente utilizo uma função que já concatena a string
Code SnippetSELECT * FROM TbUnidades WHERE Unidade=" & ToString(valorantigo)
Code SnippetPublic Function ToString(vntCampo As Variant) As String
'--------------------------------------------------
'Descrição : Concatena uma String, para gravação no Sql Server
'Parametros:
' vntCampo : Valor a ser concatenado
'Exemplo: ToString("VB")
' Retorno: 'VB'
' ToString("")
' Retorno: Null
'------------------------------------------------------------
If IsNull(vntCampo) Or IsEmpty(vntCampo) Then
ToString = "NULL"
ElseIf vntCampo = "" Then
ToString = "NULL"
Else
ToString = "'" & ValorCampo(Trim(vntCampo), TEXTO, False) & "'"
End If
End Function
Ajude a melhorar o nosso Fórum!
Não esqueça de marca a mensagem como "útil", caso tenha ajudado.quinta-feira, 24 de abril de 2008 18:07 -
Como seu valor antigo é um texto (e não um número), tem que cercá-lo com apóstrofos:
"SELECT * FROM TbUnidades WHERE Unidade='" & valorantigo & "'"
quinta-feira, 24 de abril de 2008 21:51Moderador
Todas as Respostas
-
"SELECT * FROM TbUnidades WHERE Unidade=" & valorantigoquarta-feira, 23 de abril de 2008 01:28Moderador
-
Luiz,
Eu fiz conforme me informou e me parece que tive uma evolução, porém, o a´plicativo me apresentou a seguinte mensagem de erro:
Erro de sintaxe (Operador faltando) na expressão de consulta 'Unidade=1ºBI'.
O que você acha que eu ainda estou fazendo de errado?
quinta-feira, 24 de abril de 2008 17:30 -
Wagner,
Acho que está faltando os "plics" no valor da clausula where
Code SnippetSELECT * FROM TbUnidades WHERE Unidade=" & "'" & valorantigo & "'"Mais uma dica:
Eu normalmente utilizo uma função que já concatena a string
Code SnippetSELECT * FROM TbUnidades WHERE Unidade=" & ToString(valorantigo)
Code SnippetPublic Function ToString(vntCampo As Variant) As String
'--------------------------------------------------
'Descrição : Concatena uma String, para gravação no Sql Server
'Parametros:
' vntCampo : Valor a ser concatenado
'Exemplo: ToString("VB")
' Retorno: 'VB'
' ToString("")
' Retorno: Null
'------------------------------------------------------------
If IsNull(vntCampo) Or IsEmpty(vntCampo) Then
ToString = "NULL"
ElseIf vntCampo = "" Then
ToString = "NULL"
Else
ToString = "'" & ValorCampo(Trim(vntCampo), TEXTO, False) & "'"
End If
End Function
Ajude a melhorar o nosso Fórum!
Não esqueça de marca a mensagem como "útil", caso tenha ajudado.quinta-feira, 24 de abril de 2008 18:07 -
Como seu valor antigo é um texto (e não um número), tem que cercá-lo com apóstrofos:
"SELECT * FROM TbUnidades WHERE Unidade='" & valorantigo & "'"
quinta-feira, 24 de abril de 2008 21:51Moderador -
Laercio e Luiz,
Muito obrigado pelas respostas.
A solução que funcionou legal foi a seguinte:
SELECT * FROM TbUnidades WHERE Unidade=" & "'" & valorantigo & "'"
Mais uma vez, muito obrigado.
sexta-feira, 25 de abril de 2008 02:43