BD ACCESS CAMPO SIM/NÃO

JORGESALES 14/11/2015 10:41:03
#453898
Pessoal estou utilizando o código abaixo para marcar ou desmarcar um campo no
BD mas nada acontece, alguém pode me dizer o que estou fazendo errado?
    Dim i As Integer
ConnectDB
rs.Open [Ô]select Ativo from TBNomeTabela[Ô], db, 3, 3
Do Until rs.EOF
For i = 1 To lstTabela.ListItems.Count
[ô]rs!Ativo.Value = lstTabela.ListItems.Item(i).Checked
If lstTabela.ListItems.Item(i).Checked = True Then
rs!Ativo.Value = True
Else
rs!Ativo.Value = False
End If
Next
rs.MoveNext
Loop
FechaBD

Acho que só a linha que está comentada já era pra funcionar
Desde já agradeço a todos que possam ajudar.
DS2T 14/11/2015 11:15:21
#453899
Você precisa executar uma instrução Update para isso.
Do jeito que está, você está apenas alterando um valor do Recordset na memória. Isso não tem efeito algum no banco de dados.

Use algo tipo:

db.Execute [Ô]Update minhaTabela SET meuCampo=meuvalor[Ô]

Abraços!
JORGESALES 14/11/2015 12:45:09
#453901
Amigo, obrigado pela ajuda mas não é isso, quando eu uso
o código abaixo ele funciona mesmo sem o update:
    Dim i As Integer
ConnectDB
rs.Open [Ô]select Ativo from TBNomeTabela[Ô], db, 3, 3
Do Until rs.EOF
For i = 1 To lstTabela.ListItems.Count
rs!Ativo.Value = False
Next
rs.MoveNext
Loop
FechaBD

ACCIOLLY 14/11/2015 18:16:21
#453908
geralmente quando é feita a gravação no banco (ainda mais se for access) vc deve gravar valor numerico (1 para verdadeiro e 0 para falso).. vc tentou fazer essa conversão?
DS2T 14/11/2015 19:08:11
#453912
Muito estranho esse código funcionar.
Porque até o momento, era pra ele está só está na memória. Pra poder fazer do jeito que você tá fazendo (sem instrução SQL), você teria que usar o método Update do Recordset.
Sem ele, nem imagino como os dados estão sendo persistidos.

Tenta meter um Update no outro exemplo.

Se não der, acho que o Accioly pode ter matado a questão.

MARIOANDRADE 16/11/2015 22:21:20
#454009
Resposta escolhida
Tente esse código, tenho certeza que vai funcionar:
    Dim i As Integer
Dim Valor As Boolean
lstTabela.Visible = False
For i = 1 To lstTabela.ListItems.Count
lstTabela.ListItems.Item(i).Selected = True
Valor = lstTabela.ListItems.Item(i).Checked
ConnectDB
rs.Open [Ô]select *from TBNomeTabela where Codigo=[Ô] & lstTabela.SelectedItem, db, 3, 3
rs!Ativo = Valor
rs.Update
FechaBD
Next
Tópico encerrado , respostas não são mais permitidas