QUEM UTILIZA O LYNXGRID...
Olá, pessoal, estou começando a utilizar o LynxGrid, por sinal é uma grid muito bom. Mas estou tentando realizar uma operação com ele e não estou conseguindo. O Grid é CheckBoxes=True. O usuário selecionará vários registros e os registros selecionados serão gravados no BD com o status [Ô]OK[Ô].
Tentei assim:
For lRow = 0 To GridTitulos.ItemCount - 1
sqltitulos = [Ô]Select * From Titulos Where codigo Like [ô][Ô] & GridTitulos.CellText(GridTitulos.Row, 0) & [Ô][Ô][Ô]
Set rstitulos= db.OpenRecordset(sqltitulos)
If Gridtitulos.ItemChecked(lRow) = True Then
rstitulos.Edit
rstitulos([Ô]status[Ô]) = [Ô]OK[Ô]
ElseIf GridTitulos.ItemChecked(lRow) = False Then
rstitulos.Edit
rstitulos([Ô]STATUS[Ô]) = [Ô][Ô]
End If
rstitulos.Update
rstitulos.MoveNext
Next
Mas sem sucesso. Alguém pode me ajudar?
Até mais.
Tentei assim:
For lRow = 0 To GridTitulos.ItemCount - 1
sqltitulos = [Ô]Select * From Titulos Where codigo Like [ô][Ô] & GridTitulos.CellText(GridTitulos.Row, 0) & [Ô][Ô][Ô]
Set rstitulos= db.OpenRecordset(sqltitulos)
If Gridtitulos.ItemChecked(lRow) = True Then
rstitulos.Edit
rstitulos([Ô]status[Ô]) = [Ô]OK[Ô]
ElseIf GridTitulos.ItemChecked(lRow) = False Then
rstitulos.Edit
rstitulos([Ô]STATUS[Ô]) = [Ô][Ô]
End If
rstitulos.Update
rstitulos.MoveNext
Next
Mas sem sucesso. Alguém pode me ajudar?
Até mais.
Não é mais fácil fazer isso já no carregamento de dados para o Grid? Poderia criar uma subquery na tua query principal indicando 0/1 para ausência/presença de tÃtulos... assim, já ao preencher, vc coloca se está ok o status. Assim, não precisa percorrer o grid duas vezes. Aliás, boa escolha, lynxgrid é realmente muito bom
Obrigado, Kerplunk. Eu coloquei só um exemplo. No meu caso é diferente. Vou explicar corretamente.
No Grid estão os nomes dos dependentes de um funcionário (esposa+ 4 filhos).
Preciso selecionar, por exemplo, a esposa e um dos filhos somente. E os registros que forem selecionados serão gravados o status na tabela. é isso que eu preciso, na verdade. O exemplo que eu coloquei foi apenas para tentar facilitar o entendimento.
Já tentei de várias formas, porém não consegui ainda (estou aqui, tentando).
Até mais.
No Grid estão os nomes dos dependentes de um funcionário (esposa+ 4 filhos).
Preciso selecionar, por exemplo, a esposa e um dos filhos somente. E os registros que forem selecionados serão gravados o status na tabela. é isso que eu preciso, na verdade. O exemplo que eu coloquei foi apenas para tentar facilitar o entendimento.
Já tentei de várias formas, porém não consegui ainda (estou aqui, tentando).
Até mais.
Esses dados a mais, podem ser tb subqueries...
Eu faço assim:
Pesquiso na tabela de dependentes os nomes que são dependentes do funcionário.
sqldependentes = [Ô]Select * From Dependentes Where codigofuncionario Like [ô][Ô] & TxtCodigoFuncionario.Text & [Ô][ô][Ô]
encontrando, preencho a Grid com os nomes encontrados.
Quando o usuário selecionar os registros, clica no botão OK.
DaÃ, faço um for....next na Grid e verifico quais os nomes que estão selecionados, gravando o status na tabela.
For lrow = 0 To GridDependentes.ItemCount -1
If GridDependentes.ItemChecked(lrow) = True Then ---> essa linha é que não está certa.
rsdependentes.edit
rsdependentes([Ô]status[Ô])=[Ô]OK
rsdependentes.update
Else
rsdependentes.edit
rsdependentes([Ô]status[Ô])=[Ô][Ô]
rsdependentes.update
Endif
Next
Espero ter explicado melhor.
Até mais.
Pesquiso na tabela de dependentes os nomes que são dependentes do funcionário.
sqldependentes = [Ô]Select * From Dependentes Where codigofuncionario Like [ô][Ô] & TxtCodigoFuncionario.Text & [Ô][ô][Ô]
encontrando, preencho a Grid com os nomes encontrados.
Quando o usuário selecionar os registros, clica no botão OK.
DaÃ, faço um for....next na Grid e verifico quais os nomes que estão selecionados, gravando o status na tabela.
For lrow = 0 To GridDependentes.ItemCount -1
If GridDependentes.ItemChecked(lrow) = True Then ---> essa linha é que não está certa.
rsdependentes.edit
rsdependentes([Ô]status[Ô])=[Ô]OK
rsdependentes.update
Else
rsdependentes.edit
rsdependentes([Ô]status[Ô])=[Ô][Ô]
rsdependentes.update
Endif
Next
Espero ter explicado melhor.
Até mais.
Certo, entendi. O melhor a fazer é verificar se [Ô]GridDependentes.ItemChecked(lrow)[Ô] retorna mesmo um boolean, verifique o valor de retorno disso...
Cara, pelejei muito, mas consegui (eu sabia que conseguiria, pois sou assim mesmo, não desisto nunca).
O erro estava não na Grid, nem no laço For...Next, mas sim na consulta sql.
sqldependentes = [Ô]Select * From Dependentes Where codigodependente Like [ô][Ô] & GridDependentes.CellText(GridDependentes.Row, 0) & [Ô][ô]
O correto é: sqldependentes = [Ô]Select * From Dependentes Where codigodependente Like [ô][Ô] & GridDependentes.CellText(lRow, 0) & [Ô][ô]
Até mais.
O erro estava não na Grid, nem no laço For...Next, mas sim na consulta sql.
sqldependentes = [Ô]Select * From Dependentes Where codigodependente Like [ô][Ô] & GridDependentes.CellText(GridDependentes.Row, 0) & [Ô][ô]
O correto é: sqldependentes = [Ô]Select * From Dependentes Where codigodependente Like [ô][Ô] & GridDependentes.CellText(lRow, 0) & [Ô][ô]
Até mais.
Tópico encerrado , respostas não são mais permitidas