ERRO AO SALVAR TREE VIEW FIREBIRD

ADRIANOM 02/01/2011 00:02:13
#360837
VB6, FIREBIRD

Montar a treeview consegui...
Agora quero que me ajudem a decifrar e corrigir este erro da imagem...

O código que uso é este... mas não entendo o erro...ele grava os dados digitados, porém os valores 1 para marcado e 0 para não marcado, não estão sendo salvos...

Citação:


Sub Salvar()

If txtCodFun.Text = [Ô][Ô] Then GoTo erro
If txtFuncionario.Text = [Ô][Ô] Then GoTo erro
If txtCodigo.Text = [Ô][Ô] Then GoTo erro
If txtSenha.Text = [Ô][Ô] Then GoTo erro
If txtUsuario.Text = [Ô][Ô] Then GoTo erro
With ConConexao
.ActiveConnection = CONEXAO
.CommandType = adCmdText
.CommandText = [Ô]INSERT INTO LOGIN (CODIGO,USUARIO,SENHA,CODFUNC,FUNCIONARIO)values([ô][Ô] + txtCodigo.Text + [Ô][ô],[ô][Ô] + txtUsuario.Text + [Ô][ô],[ô][Ô] + txtSenha.Text + [Ô][ô],[ô][Ô] + txtCodFun + [Ô][ô],[ô][Ô] + txtFuncionario + [Ô][ô])[Ô]
.Execute
End With
For F = 1 To trvUsuarios.Nodes.Count
If trvUsuarios.Nodes(F).Checked = True Then
SQL = [Ô]UPDATE [LOGIN] SET [Ô] & trvUsuarios.Nodes(F).Key & [Ô] = 1 WHHERE CODIGO=[Ô] & txtCodigo.Text
CNN.Execute SQL
End If
Next
Unload Me
Call frmAcesso.PreencheLista
MsgBox [Ô]Usuário incluído com sucesso![Ô], vbInformation, [Ô]GWorks Softs[Ô]
[ô]Call LimpaCampos(Me)
Exit Sub
erro:
MsgBox [Ô]Todos os campos precisam ser preenchidos corretamente.[Ô], vbCritical, [Ô]GWorks Softs[Ô]

End Sub



Me ajudem a corrigir?
LLAIA 02/01/2011 11:34:52
#360849
Olhe a seta

Sub Salvar()

If txtCodFun.Text = [Ô][Ô] Then GoTo erro
If txtFuncionario.Text = [Ô][Ô] Then GoTo erro
If txtCodigo.Text = [Ô][Ô] Then GoTo erro
If txtSenha.Text = [Ô][Ô] Then GoTo erro
If txtUsuario.Text = [Ô][Ô] Then GoTo erro
With ConConexao
.ActiveConnection = CONEXAO
.CommandType = adCmdText
.CommandText = [Ô]INSERT INTO LOGIN (CODIGO,USUARIO,SENHA,CODFUNC,FUNCIONARIO)values([ô][Ô] + txtCodigo.Text + [Ô][ô],[ô][Ô] + txtUsuario.Text + [Ô][ô],[ô][Ô] + txtSenha.Text + [Ô][ô],[ô][Ô] + txtCodFun + [Ô][ô],[ô][Ô] + txtFuncionario + [Ô][ô])[Ô]
.Execute
End With
For F = 1 To trvUsuarios.Nodes.Count
If trvUsuarios.Nodes(F).Checked = True Then
SQL = [Ô]UPDATE [LOGIN] SET [Ô] & trvUsuarios.Nodes(F).Key & [Ô] = 1 [txt-color=#e80000]WHHERE [/txt-color]CODIGO=[Ô] & txtCodigo.Text
CNN.Execute SQL
End If
Next
Unload Me
Call frmAcesso.PreencheLista
MsgBox [Ô]Usuário incluído com sucesso![Ô], vbInformation, [Ô]GWorks Softs[Ô]
[ô]Call LimpaCampos(Me)
Exit Sub
erro:
MsgBox [Ô]Todos os campos precisam ser preenchidos corretamente.[Ô], vbCritical, [Ô]GWorks Softs[Ô]

End Sub
ADRIANOM 02/01/2011 19:00:45
#360876
Caro amigo LLAIA

Primeiramente obrigado pela Observação.... MAAAAAAASSSSSSSSSSS.... Deu o mesmo erro da imagem acima.. agora além daquela imagem postarei a do local onde ele manda o erro...

em um módulo publiquei estas variáveis... como..:
Citação:


Public CNN As New ADODB.Connection
Public ConConexao As New ADODB.Command
Public RSLOGIN As New ADODB.Recordset [ô]recordset da tabela Login
Public SQL, Ssql, SQLAcesso As String



e olha na imagem onde assinala o erro..
To sem saber o que fazer....!!!!!

ME AJUDEMMMMM!!!!???!?!?!?!!!!!
MARCELO.TREZE 02/01/2011 19:24:11
#360878
sql errada

[txt-color=#e80000]SQL = [Ô]UPDATE [LOGIN] SET [Ô] & trvUsuarios.Nodes(F).Key & [Ô] = 1  WHERE CODIGO=[Ô] & txtCodigo.Text[/txt-color]


ta faltando o nome do campo a ser atualizado, isso claro se login for o nome da tabela

seria algo assim

SQL = [Ô]UPDATE login SET usuario = [Ô] & trvUsuarios.Nodes(F).Key & [Ô]  WHERE CODIGO=[Ô] & txtCodigo.Text
MARCELO.TREZE 02/01/2011 19:43:00
#360880
caso contrario tenha certeza que [txt-color=#0000f0]trvUsuarios.Nodes(F).Key[/txt-color] está retornando o nome certo do campo

ADRIANOM 02/01/2011 22:15:42
#360894
MARCELO-TREZE, Vc estava com razão .. funcionou ... adicionou.. só que meu código deveria atribuir além do 1 para selecionado, o 0 para não selecionado...
o que está acontecendo é que os campos não selecionados, estão ficando vazio... em vez de preenchidos com 0....
Estava revendo a minha condição :

Citação:


For F = 1 To trvUsuarios.Nodes.Count
If trvUsuarios.Nodes(F).Checked = True Then
SQL = [Ô]UPDATE LOGIN SET [Ô] & trvUsuarios.Nodes(F).Key & [Ô] = 1 WHERE CODIGO=[Ô] & txtCodigo.Text
CNN.Execute SQL
End If
Next



Consegui escrever a treeview (trvUsuarios.Nodes(F).Checked = True) para preencher com 1, mas não estou conseguindo colocar o 0... como seria? você poderia tentar encaixar nesta linha ae para mim...
Lembre-se que ele tem que preencher de qualquer jeito, porém os valores (trvUsuarios.Nodes(F).Checked = True) selecionados tem que ser preenchidos com 1 e os não selecionados (trvUsuarios.Nodes(F).Checked = False) tem que ser preenchido com 0.

Ajuda ae:?!?
Abraços

LLAIA 03/01/2011 01:52:37
#360900
Resposta escolhida
A função IIf é excelente pra isso. Tiramos a condição If para o que estão False entrarem na string SQL.

For F = 1 To trvUsuarios.Nodes.Count

SQL = [Ô]UPDATE LOGIN SET [Ô] & trvUsuarios.Nodes(F).Key & [Ô] = [Ô] & IIf(trvUsuarios.Nodes(F).Checked, 1, 0) _
& [Ô] WHERE CODIGO=[Ô] & txtCodigo.Text
CNN.Execute SQL

Next
ADRIANOM 03/01/2011 08:48:17
#360907
Agradeço imensamente ao Marcelo Treze e em especial o LLaia...

Cara vc resolveu meu problema... Muito obrigado... Deu certinho

Muito obrigado!
Tópico encerrado , respostas não são mais permitidas