[VB6] CABECALHO NO MSFLEXGRID

DELETETHIS 06/06/2011 07:00:31
#375931
Boas gostava de saber como é que posso inserir uma linha que irá servir de cabeçalho para o msflexgrid. Penso que seja possivel ir buscar á tabela o nome dos campos certo? Mas depois é possivel edita-los? é que num só form tenho 4 radiobuttons ou seja pode fazer 1 das 4 queries e assim o cabeçalho do grid teria que ser [Ô]alterado[Ô] para o correcto dependendo da tabela em que esteja a fazer a query. Está aqui o codigo que estou a usar:

  Private Sub cmdPesquisar_Click()
On Error GoTo Error_Handler
If texto.Text = [Ô][Ô] Then
MsgBox ([Ô]Por favor, preencha a caixa de texto![Ô])
Exit Sub
End If

MSFlexGrid1.Clear

[ô]define os objetos para o acesso aos dados no Microsoft Access
Dim db As New ADODB.Connection
Dim rs As New ADODB.Recordset

[ô]cmdLimpar_Click
MSFlexGrid1.Refresh
MSFlexGrid1.Visible = False

If Option1.Value = True Then [ô]sigo

[ô]abre o banco de dados e define o recordset a ser usado
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT numero_sigo,nome,vias_conclusao FROM FORMANDOS WHERE numero_sigo=[Ô] & texto.Text, db, adOpenStatic, adLockReadOnly

If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox ([Ô]Nao ha nenhum formando com o sigo [Ô] & texto.Text)
Exit Sub
End If
rs.MoveFirst
ElseIf Option2.Value = True Then
[ô]abre o banco de dados e define o recordset a ser usado
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT nome,numero_sigo,vias_conclusao FROM FORMANDOS where nome like[ô]%[Ô] & texto.Text & [Ô]%[ô][Ô], db, adOpenStatic, adLockOptimistic
If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox ([Ô]Nao ha ninguem com esse nome[Ô])
Exit Sub
End If
rs.MoveFirst
ElseIf Option3.Value = True Then

If (Check1.Value = 1) And (Check2.Value = 1) Then
[ô]abre o banco de dados e define o recordset a ser usado
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT numero_grupo,nome,numero_sigo,vias_conclusao FROM FORMANDOS WHERE numero_grupo=[Ô] & texto.Text, db, adOpenStatic, adLockReadOnly
If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox ([Ô]Nao ha nenhum formando que pertença ao grupo [Ô] & texto.Text)
Exit Sub
End If
ElseIf (Check1.Value = 0) And (Check2.Value = 0) Then
MsgBox ([Ô]Tem que assinalar uma ou ambas as caixas para fazer a pesquisa.[Ô])
Exit Sub
ElseIf (Check1.Value = 0) And (Check2.Value = 1) Then
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT numero_grupo,nome,numero_sigo,vias_conclusao FROM FORMANDOS WHERE numero_grupo=[Ô] & texto.Text & [Ô] AND vias_conclusao=[ô][Ô] & lblsecundario.Caption & [Ô][ô][Ô], db, adOpenStatic, adLockReadOnly
If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox ([Ô]Nao ha nenhum formando que pertença ao grupo [Ô] & texto.Text)
Exit Sub
End If
ElseIf (Check1.Value = 1) And (Check2.Value = 0) Then
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT numero_grupo,nome,numero_sigo,vias_conclusao FROM FORMANDOS WHERE numero_grupo=[Ô] & texto.Text & [Ô] AND vias_conclusao=[ô][Ô] & lblbasico.Caption & [Ô][ô][Ô], db, adOpenStatic, adLockReadOnly
If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox ([Ô]Nao ha nenhum formando que pertença ao grupo [Ô] & texto.Text)
Exit Sub
End If
End If
ElseIf Option4.Value = True Then
[ô]abre o banco de dados e define o recordset a ser usado
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\CNO.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]SELECT numero_sigo,nome,vias_conclusao FROM FORMANDOS WHERE numero_identificaçao=[Ô] & texto.Text, db, adOpenStatic, adLockReadOnly
If (rs.EOF = True) And (rs.BOF = True) Then
MsgBox ([Ô]Nao ha nenhum formando com o numero de identificação: [Ô] & texto.Text)
Exit Sub
End If
End If
rs.MoveFirst
[ô]End If

[ô]define o numero de linhas e colunas e configura o grid
MSFlexGrid1.Rows = rs.RecordCount + 1
MSFlexGrid1.Cols = rs.Fields.Count [ô]- 1 -1-1=2
MSFlexGrid1.Row = 1
MSFlexGrid1.Col = 0
MSFlexGrid1.RowSel = MSFlexGrid1.Rows - 1
MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1

[ô]estamos usando a propriedade Clip e o método GetString para selecionar uma região do grid
MSFlexGrid1.Clip = rs.GetString(adClipString, -1, Chr(9), Chr(13), vbNullString)
MSFlexGrid1.Row = 1
MSFlexGrid1.Visible = True

[ô]libera os objetos
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing

Error_Handler:
Select Case Err.Number
Case -2147217904
MsgBox ([Ô]Apenas digite letras quando quer procurar pelo nome[Ô])
[ô]adicionar + erros caso apareçam
End Select

End Sub
JCARLOS 06/06/2011 08:39:16
#375938
Resposta escolhida
Independentemente do código, vc pode alterar a qualquer hora o valor da célula do seu grid.
Eu costumo deixar o grid com FixedRows=1 pra dar uma aparência melhor e depois atrubuo o valor pra cada célula, ex:
if rs!Tipo = 1 then
grid1.textmatrix(0,0) = [Ô]Código[Ô]
grid1.textmatrix(0,1) = [Ô]Nome[Ô]
grid1.textmatrix(0,2) = [Ô]Endereço[Ô]
elseif rs!Tipo = 2 then
grid1.textmatrix(0,0) = [Ô]Nº de Série[Ô]
grid1.textmatrix(0,1) = [Ô]Tipo[Ô]
grid1.textmatrix(0,2) = [Ô]Descrição[Ô]
endif
DELETETHIS 06/06/2011 12:49:22
#375958
Oh tao simples Agora ja percebi o porque de me estar dando erro valew
Tópico encerrado , respostas não são mais permitidas