SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: MindEye en Miércoles 5 de Noviembre de 2003, 16:34
-
- Estoy intentando actualizar el registro especifico, en la base de datos, pero los campos, editando, y estado civil, no me cambian. ( Los campo son texto )
- Por favor, si alguien ve lo que estoy haciendo mal, que me lo haga saber.
- Gracias compañeros, aqui hos dejo lo que yo hago.
Set db = OpenDatabase(Conectando.Coneccion, , False, ";pwd=1234")
db.Execute "UPDATE Clientes SET Cliente=" & Text1(0) & " , SG=" & Siglas.Text & " , Direccion=" & Text1(3) & " , Numero=" & Text1(4) & " , Piso=" & Text1(5) & " , Puerta=" & Text1(6) & " , CP=" & Text1(7) & _
" , Poblacion=" & Text1(8) & " ,Provincia=" & Text1(9) & " ,Pais=" & Text1(10) & " , NIF=" & Text1(19) & " , Email =" & Text1(11) & " , Web = " & Text1(12).Text & _
" , Editando=""No"" , [Sociedad Civil]=" & iif(option.value,"Si","No") & " , [Fecha Alta]=" & Text1(13) & " WHERE (SELECT * FROM Clientes WHERE Clientes.[Id Cliente] = " & CLng(Text3.Text) & ");"
-
Hola MindEye.
El fallo lo tienes en la cláusula WHERE que debería quedar de la siguiente forma:
" WHERE Clientes.[Id Cliente] = " & CLng(Text3.Text);"
Date cuenta que estabas utilizando una selección de registros como valor de comparación y sin compararla con nada. Algo como eso podría valer para filtrar registros comparando si están o no en una selección, por ejemplo:
WHERE Clientes.[Id Cliente] IN (SELECT OtraTabla.[Id Cliente] WHERE OtroCampo='El valor que sea')
Suerte, chao.
-
Disculpas MindEye.
Ahora que leo bien (y mira que me lo decían en el colegio...) dices que son dos los campos que no te cambian, por lo que supongo que el resto sí (a pesar del detalle que apuntaba del WHERE...). Yo probaría usando las comillas de esta forma:
... & " , Editando='No' , [Sociedad Civil]='" & iif(option.value,"Si","No") & "' , [Fecha Alta]=" ...
A ver si así... prueba y ya contarás.
Abur
-
Si en campo está declarado como numérico en la BD deberás hacer:
NombreDeCampo=valor
Si el campo está declarado como no numérico:
NombreDe Campo='valor'
Con una comilla simple a cada lado del valor.
Al usar comillas dobles,", estás terminando la cadena SQL
:good:
-
- Ya lo he probado pero no me funciona, no lo entiendo.
-
Hola a todos.
Yo no entiendo mucho de esto, pero habeis probado a quitar el "punto y coma" al final de la claúsula WHERE?
A mí a veces me dá problemas, lo quito y se soluciona.
WHERE Clientes.[Id Cliente] = " & CLng(Text3.Text) & ");"
Saludos
-
Prueba esto:
dim pp as string
if option.value then
pp="Si"
else
pp="No"
end if
db.Execute "UPDATE Clientes SET Cliente=" & Text1(0) & " , SG=" & Siglas.Text & " , Direccion=" & Text1(3) & " , Numero=" & Text1(4) & " , Piso=" & Text1(5) & " , Puerta=" & Text1(6) & " , CP=" & Text1(7) & _
" , Poblacion=" & Text1(8) & " ,Provincia=" & Text1(9) & " ,Pais=" & Text1(10) & " , NIF=" & Text1(19) & " , Email =" & Text1(11) & " , Web = " & Text1(12).Text & _
" , Editando='No' , [Sociedad Civil]='" & pp & " , [Fecha Alta]=" & Text1(13) & " WHERE (SELECT * FROM Clientes WHERE Clientes.[Id Cliente] = " & CLng(Text3.Text) & ");"