ATUALIZAR

USUARIO.EXCLUIDOS 06/06/2005 18:15:05
#87337
Olá pessoal.
Eu tenho um banco de dados que c atualiza sempre que seu registro tiver datas antigas, eu uso este codigo:

Private Sub btnRemove_Click()
Dim local as String
Dim con as ADODB.Connection
local = "c:\banco.mdb" 'Este é o local do banco .MDB
set con = new ADODB.Connection
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & local & ";Persist Security Info=False"
con.execute "DELETE FROM Teste WHERE Data < #" & (Now - 31) & "#"
set con = nothing
End sub

Mais este codigo ele apaga o registro inteiro e c eu quiser que ele apenas apageu alguns campos tipo campo da idade e o do estdo civil como eu poderia fazer:

Desde ja agradeço. T+
USUARIO.EXCLUIDOS 06/06/2005 18:55:01
#87346
Apenas altere o sql para o abaixo...
Private Sub btnRemove_Click() 
Dim local as String
Dim con as ADODB.Connection
local = "c:\banco.mdb" 'Este é o local do banco .MDB
set con = new ADODB.Connection
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & local & ";Persist Security Info=False"
con.execute "UPDATE FROM Teste SET [IDADE]='', [ESTADO_CIVIL]='' WHERE Data < #" & (Now - 31) & "#"
set con = nothing
End sub
USUARIO.EXCLUIDOS 06/06/2005 19:45:19
#87350
OI SIBEM neste codigo ele da erro de sintaxe:

Run-time error '-2147217900 (80040e14)':
Erro de sintaxe na instrução UPDATE

Na linha:

con.Execute "UPDATE FROM Banco_Dados SET [IDADE]='NULL' WHERE Data < #" & (Now - 31) & "#"

vc sabe o q pode ser:
USUARIO.EXCLUIDOS 06/06/2005 21:11:08
#87359
Pode ser um desses erros, tente o seguinte:

1) - tente sem as []
2) - NULL é diferente de 'NULL'
Ja que a constante NULL equivale a nulo em todos os campos e 'NULL' é uma string
3) - Verifique se os campos texto permitem valores nulos. Veja, no access, as propriedades do campo no modo estrutura, veja se a propriedade "Permitir comprimento zero" esta valorada com "sim"
4) - Você pode estar fazendo mistura de tipos.
Se seu campo é numerico, vc não deve seta-lo com '' (apostrofos vazios) e sim com 0 (zero)
Exemplos de setagem para tipos de campo:
TIPO SETAGEM
Texto campo='' (apostrofos fazios)
Númerico campo=0 (zero)
Data campo=#//#
Sim/Não campo=False
Memorando o mesmo que o Texto
USUARIO.EXCLUIDOS 06/06/2005 21:24:45
#87361
Caro Hailton.
Tentei os codigos mas não deu certo será que tem outro geito de fazer isto!!!
Desde ja agradeço
FABIO.ALEXANDRE 06/06/2005 23:12:02
#87372
Resposta escolhida
BOM TENTA ASSIM

C ESCLUIR
CON.EXECUTE "DELETE FROM Teste WHERE Data <= #" & DATEADD("d",-31,DATE) & "#"
C ALTERAR CAMPO
CON.EXECUTE "UPDATE Teste SET CAMPO1=NULL,CAMPO2=NULL WHERE Data <= #" & DATEADD("d",-31,DATE) & "#"

ESPERO TER AJUDADO
USUARIO.EXCLUIDOS 07/06/2005 18:38:54
#87561
Faleu galera deu tudo certo.
Brigaduuuuu a todos Valeu mesmo.
Abraços t+
Tópico encerrado , respostas não são mais permitidas