CARREGA GRID
Para Marcelo Treze ou quem puder ajudar.
No exemplo anexo preciso mostrar somente uma coluna no Grid, carreguei os dados mas mostra duas colunas, onde estou errando?
Obs.: DIGITE NO TEXTBOX 1366 DEPOIS BUSQUE.
No exemplo anexo preciso mostrar somente uma coluna no Grid, carreguei os dados mas mostra duas colunas, onde estou errando?
Obs.: DIGITE NO TEXTBOX 1366 DEPOIS BUSQUE.
?Tabela_LM.Fields.Count
2
Isso explica o motivo das duas colunas.
E onde eu faço a correção desse codigo para carregar uma coluna?
Nesse projeto, a seguinte SQL traz os dados conforme o textbox
Dois campos são citados:
-LM_2
-Contrato
Tudo depende de qual você quer mostrar.
Sql = [Ô]SELECT LM_2,contrato FROM DadosCab WHERE Contrato like [ô]%[Ô] & TxtBusca.Text & [Ô]%[ô] ORDER BY LM_2[Ô]
Dois campos são citados:
-LM_2
-Contrato
Tudo depende de qual você quer mostrar.
Bom se for sempre carregar uma unica coluna veja o código exuto
Private Sub CarregaLiberados()
Dim Sql As String
Dim contador As Integer
Dim Dado As String
Dim coluna As Integer
Dim linha As Integer
Dim largura_coluna() As Single
Dim largura_campo As Single
Sql = [Ô]SELECT LM_2,contrato FROM DadosCab WHERE Contrato like [ô]%[Ô] & TxtBusca.Text & [Ô]%[ô] ORDER BY LM_2[Ô]
GridLM.Visible = False
Set Tabela_LM = Banco2.Execute(Sql)
With GridLM
.SelectionMode = flexSelectionByRow
[ô].GridLines = flexGridFlat
[ô].HighLight = flexHighlightAlways
[ô].FixedCols = 0
[ô] define o numero de linhas e colunas e cria uma matrix com o total de registros a exibir
.Rows = 0
.Cols = 1
ReDim largura_coluna(0 To Tabela_LM.Fields.Count - 1)
Do While Not Tabela_LM.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = Tabela_LM.Fields([Ô]Lm_2[Ô]).Value
[ô] verifica o tamanho dos campos
largura_campo = TextWidth(Tabela_LM.Fields(coluna).Value)
If largura_coluna(coluna) < largura_campo Then largura_coluna(coluna) = largura_campo
Tabela_LM.MoveNext
Loop
.Visible = True
End With
[ô] define a largura das colunas do grid
For coluna = 0 To GridLM.Cols - 1
GridLM.ColWidth(coluna) = largura_coluna(coluna) + 240
Next coluna
End Sub
Marcelo deu certinho o carregamento, porem pintou um problema. No codigo eu uso o .CellAlignment = flexAlignCenterCenter mas se observar digitando para busca o número 1366 depois de carregar o Grid vá para o ultimo registro o mesmo não alinhou. Veja o exemplo anexo e use o mesmo banco. Se vc observar tive q fazer doi FOR next, estaria correto?
veja agora com esta modificação pra mim está tudo correto.
Private Sub CarregaLiberados()
Dim Sql As String
Dim contador As Integer
Dim Dado As String
Dim coluna As Integer
Dim linha As Integer
Dim largura_coluna() As Single
Dim largura_campo As Single
Sql = [Ô]SELECT LM_2,contrato FROM DadosCab WHERE Contrato like [ô]%[Ô] & TxtBusca.Text & [Ô]%[ô] ORDER BY LM_2[Ô]
GridLM.Visible = False
Set Tabela_LM = Banco2.Execute(Sql)
With GridLM
.SelectionMode = flexSelectionByRow
.Rows = 0
.Cols = 1
ReDim largura_coluna(0 To Tabela_LM.Fields.Count - 1)
Do While Not Tabela_LM.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = Tabela_LM.Fields([Ô]Lm_2[Ô]).Value
SizeColumns
Tabela_LM.MoveNext
Loop
.Visible = True
End With
With GridLM
Dim lLinha As Long
.ColAlignment(0) = flexAlignCenterCenter
.CellFontBold = True
.CellFontSize = 10
.CellFontName = [Ô]times new roman[Ô]
For lLinha = 1 To .Rows - 1
.Row = lLinha
.CellFontBold = True
.CellFontSize = 10
.CellFontName = [Ô]times new roman[Ô]
Next
End With
End Sub
Valeu Marcelo!! Caso resolvido, vou encerrar.
Tópico encerrado , respostas não são mais permitidas