ALTERANDO A POSICAO DO CHECKBOX NA TABELA MDB

SOUZA 07/02/2014 18:02:57
#434423
Pessoal preciso saber como proceder a alteração do checkbox quando ele for marcado e desmarcado para que altera no banco de dados do access. Utilizo para fazer as alterações em minha tabela da seguinte forma mas nao funciona com checkbox.

Dim db As Database
Dim query As String
Dim dyn As Recordset


Set db = OpenDatabase([Ô]c:SistemaCadastro.Mdb[Ô], False, False, [Ô];PWD=Senha[Ô])
query = [Ô]Select * From Tabela where CODIGO = [ô][Ô] & CODIGO & [Ô][ô][Ô]
Set dyn = db.OpenRecordset(query, dbOpenDynaset)

If Not dyn.EOF Then
dyn.Edit
dyn([Ô]CODIGO[Ô]) = CODIGO
dyn([Ô]EMPRESA[Ô]) = EMPRESA
dyn([Ô]ENDERECO[Ô]) = ENDERECO

dyn(AT1.Value) = CStr(AT1.Value) [ô] NAO ALTERA!

dyn.Update
MsgBox [Ô]Alteração Registrada com (SUCESSO).![Ô], vbExclamation, PASTA
End If
db.Close
MARSOLIM 07/02/2014 18:33:34
#434424
tente sem converter para string com cstr. checkbox é numérica e não string
FILMAN 07/02/2014 19:25:01
#434425
Cara faça simplesmente assim

if AT1.Value = checked then
dyn([Ô]checkbox[Ô]) = True
else
dyn([Ô]checkbox[Ô]) = False
end if
SOUZA 07/02/2014 20:30:00
#434426
Obrigado pela força pessoal mas nao deu certo de nenhum dos sois jeitos

If AT1.Value = False Then
dyn(AT1.Value) = False
End If
ssim ai ele coloca falso no primeiro campo da tabela que é o campo codigo!
fiz a
SOUZA 07/02/2014 21:05:44
#434427
Deu certo fiz assim:

If AT1.Value = 0 Then
dyn([Ô]AT1[Ô]) = CStr(AT1.Value)
ElseIf AT1.Value = 1 Then
dyn([Ô]AT1[Ô]) = CStr(AT1.Value)
End If

Agora to com problema para trazer a informação para tela para conferir usando o lostfocus

CODIGO= dyn([Ô]CODIGO[Ô]) & [Ô][Ô]

AT1.Value = CStr(AT1.Value) & [Ô][Ô] NÃO TRAZ A INFORMAÇÃO TICANDO COMO 1 / 0 O CHECKBOX
MARCELO.TREZE 07/02/2014 21:27:40
#434428
Resposta escolhida
Conversões colega toma cuidado

CStr = Convert To String

então o checkbox le um valor inteiro 0 e 1, então usa-se

CInt = Convert To Integer

na pratica

AT1.Value = CInt(AT1.Value)

SOUZA 07/02/2014 21:38:26
#434429
Marcelo obrigado pela resposta mas tentei fazer como vc explicou e nao deu certo!

usei assim:

Private Sub CODIGO_LostFocus()

Dim db As Database
Dim query As String
Dim dyn As Recordset

Set db = OpenDatabase([Ô]c:\sistema\Cadastro.Mdb[Ô], False, False, [Ô];PWD=senha[Ô])
query = [Ô]Select * From tabela where CODIGO = [ô][Ô] & CODIGO & [Ô][ô][Ô]
Set dyn = db.OpenRecordset(query, dbOpenDynaset)
If Not dyn.EOF Then

CODIGO = dyn([Ô]CODIGO[Ô]) & [Ô][Ô]

AT1.Value = CInt(AT1.Value) (nao colocou o checkbox na situação de 1 como esta na tabela!

db.Close
End If
End If
End Sub
MARCELO.TREZE 07/02/2014 23:56:14
#434433
colega as vezes me confundo com seu código não deveria ser

AT1.Value = CInt(Dyn([Ô]checkbox[Ô])) 


deduzo que AT1 seja o nome do seu checkbox
e que [Ô]checkbox[Ô] seja o nome do campo na tabela, de onde virá a condição 0 ou 1

SOUZA 08/02/2014 07:58:34
#434437
Hehehe Marcelo peço desculpa pelo codigo pois aprendi o pouco que sei de vb em livros e forum!

o AT1 e o nome do meu checkbox e tb o nome que dei para meu campo na tabela para nao me confundir depois que nome coloquei no componente e na tabela.

Entao o 0 e 1 vira do AT1 mesmo!
SOUZA 08/02/2014 09:23:07
#434438
Marcelo so lembrado é que eu estou querendo trazer os dados para tela de cadastro para possivel alteração nos dados ok e nao estou conseguindo fazer o checkbox me falar se esta opcao esta ou nao marcada ou seja 0/1
MARCELO.TREZE 08/02/2014 09:27:20
#434439
tá mas que na tabela seja AT1 também, o certo não seria isto:

AT1.Value = dyn([Ô]AT1[Ô]) [txt-color=#007100] [ô] o AT1 da tabela deve ser lido como um campo e não como um componente[/txt-color]


se você colocar

[txt-color=#e80000]AT1.Value[/txt-color] = CInt([txt-color=#e80000]AT1.Value[/txt-color])

AT1 (checkbox) vai pegar o valor dele mesmo assim nunca será alterado.


Ahh, esqueci de dizer se o campo AT1 da tabela retornar true e false vc tem que tratar isso.

AT1.Value = IIF(dyn([Ô]AT1[Ô]) = True, 1, 0)

Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas