MSFLEXGRID

CLARE 12/06/2011 19:03:59
#376573
Olá pessoal, estou com dificuldade com o controle MSFLEXGRID.

tenho vários TextBox[ô]s dentro de um frame... e logo abaixo um flexgrid.
No flexgrid tem as informações que preenchem os TextBox[ô]s, quando eu clico na primeira linha do flexgrid preenche certinho...

Private Sub CruzamentoGrid_Click()
x = CruzamentoGrid.Text
CruzamentoGrid.Col = 2
y = CruzamentoGrid.Text
CruzamentoGrid.Col = 3
z = CruzamentoGrid.Text
CruzamentoGrid.Col = 4
w = CruzamentoGrid.Text
MsgBox x & [Ô] | [Ô] & y & [Ô] | [Ô] & z & [Ô] | [Ô] & w
CruzamentoGrid.Col = 1
VarIdCruzamento = CruzamentoGrid.Text
Call PreencheTextbox
End Sub

Porém quando clico na segunda linha... ele não preenche os TextBox[ô]s.... continuando com a informação anterior... faço o controle pelo id

por favor... alguém me ajude... estou o dia inteiro tentando fazer funcionar... não consigo mais.

Obrigada!!!
MARCELO.TREZE 12/06/2011 19:58:31
#376575
Resposta escolhida
o certo seria isto

Private Sub CruzamentoGrid_Click()
With CruzamentoGrid
x = .TextMatrix(.RowSel, 0)
y = .TextMatrix(.RowSel, 2)
z = .TextMatrix(.RowSel, 3)
w = .TextMatrix(.RowSel, 4)
MsgBox x & [Ô] | [Ô] & y & [Ô] | [Ô] & z & [Ô] | [Ô] & w
VarIdCruzamento = .TextMatrix(.RowSel, 1)
Call PreencheTextbox
End With
End Sub

CLARE 12/06/2011 21:17:29
#376579
Marcelo... o TextBox[ô]s... quando eu clico no FlexGrid... preenche apenas o primeiro id... isto é... somento o primeiro item gravado...
será que tenho que fazer um loop?

Obrigadaa
MARCELO.TREZE 12/06/2011 21:59:29
#376584
colega o código que postei acima funciona, mas vc deve postar a função [txt-color=#0000f0]PreencheTextBox [/txt-color]o problema está nela.

CLARE 12/06/2011 22:02:33
#376586
Marcelo eis a função... estou pesquisando na internet.. mas até agora nada funcionou... o código que me passou... funciona sim... o problema está realmente no Preenchimento... mas qual é???

Private Sub PreencheTextbox()
Conecta True
Set MyRs2 = New ADODB.Recordset
StrSql2 = [Ô][Ô] & [Ô]select idcruzamento, nomeTouro, cruzaData, tipoCruza from cruzamento[Ô]
MyRs2.Open StrSql2, Conexao, adOpenStatic, adLockReadOnly
If MyRs2.RecordCount > 0 Then
txtIdCruzamento.Text = MyRs2!IdCruzamento
txtTouro.Text = MyRs2!nomeTouro
txtcruzaData.Text = MyRs2!cruzaData
comboCruza.Text = MyRs2!tipoCruza
Else
txtIdCruzamento.Text = [Ô][Ô]
txtTouro.Text = [Ô][Ô]
txtcruzaData.Text = [Ô][Ô]
comboCruza.Text = [Ô][Ô]
End If
Conecta False
End Sub

Obrigadaaaaa;)
MARCELO.TREZE 12/06/2011 22:28:04
#376588
colega o problema está em sua query

veja

StrSql2 = [Ô][Ô] & [Ô]select idcruzamento, nomeTouro, cruzaData, tipoCruza from cruzamento[Ô]

então poderiamos mudar sua função para isto

Private Sub PreencheTextbox([txt-color=#0000f0]IdSel As Integer[/txt-color])
Conecta True
Set MyRs2 = New ADODB.Recordset
StrSql2 = [Ô][Ô] & [Ô]select idcruzamento, nomeTouro, cruzaData, tipoCruza from cruzamento [txt-color=#0000f0]WHERE idcruzamento =[Ô] & IdSel[/txt-color]
MyRs2.Open StrSql2, Conexao, adOpenStatic, adLockReadOnly
If MyRs2.RecordCount > 0 Then
txtIdCruzamento.Text = MyRs2!IdCruzamento
txtTouro.Text = MyRs2!nomeTouro
txtcruzaData.Text = MyRs2!cruzaData
comboCruza.Text = MyRs2!tipoCruza
Else
txtIdCruzamento.Text = [Ô][Ô]
txtTouro.Text = [Ô][Ô]
txtcruzaData.Text = [Ô][Ô]
comboCruza.Text = [Ô][Ô]
End If
Conecta False
End Sub



e vc vai chama-la no seu código anterior assim


Private Sub CruzamentoGrid_Click()
With CruzamentoGrid
x = .TextMatrix(.RowSel, 0)
y = .TextMatrix(.RowSel, 2)
z = .TextMatrix(.RowSel, 3)
w = .TextMatrix(.RowSel, 4)
MsgBox x & [Ô] | [Ô] & y & [Ô] | [Ô] & z & [Ô] | [Ô] & w
VarIdCruzamento = .TextMatrix(.RowSel, 1)
[txt-color=#0000f0] Call PreencheTextbox(VarIdCruzamento)[/txt-color]
End With
End Sub

veja se funciona
CLARE 12/06/2011 22:44:02
#376590
Deu certo Marcelo... funcionou... havia esquecido de arrumar a query.... uma linha que passe desapercebido... já era... e como estou o dia inteirinho nisso.. não ia conseguiu achar isso de jeito nenhum.... por isso...

MUUUUITO OBRIGADA!!!!!!

valeu ;)
Tópico encerrado , respostas não são mais permitidas