PREENCHER RECORDSET A PARTIR DO DATAGRID

USUARIO.EXCLUIDOS 28/07/2005 18:19:53
#96476
Alimentar um DataGrid a partir de uma tabela, encontram-se muitos exemplos na Web mas alimentar uma Tabela a partir do DataGrid não existe nada ou pelo menos parece não haver, pelo menos para quem se inicia. Alguém dá um jeito!
USUARIO.EXCLUIDOS 28/07/2005 20:26:17
#96485
da uma olhada no meu exemplo


Private Function encheGrid(sql As String)
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim coluna As Integer, coluna2 As Integer
Dim linha As Integer, babalu, xuxu As Integer
Dim largura_coluna() As Single
Dim largura_campo As Single
Set rs = cn.Execute(sql)
MSFlexGrid1.Rows = 2
MSFlexGrid1.FixedRows = 1
MSFlexGrid1.FixedCols = 0
MSFlexGrid1.Rows = 1
MSFlexGrid1.Cols = rs.Fields.Count
ReDim largura_coluna(0 To rs.Fields.Count - 1)
'valorizando
For coluna = 0 To rs.Fields.Count - 1
'MSFlexGrid1.TextMatrix(0, coluna) = rs.Fields(coluna).Name
If coluna = 0 Then largura_coluna(coluna) = 200: MSFlexGrid1.TextMatrix(0, coluna) = ReadTRA(ReadINI("Janelas", "tradutor"), "g001")
If coluna = 1 Then largura_coluna(coluna) = 2750: MSFlexGrid1.TextMatrix(0, coluna) = ReadTRA(ReadINI("Janelas", "tradutor"), "g002")
If coluna = 2 Then largura_coluna(coluna) = 1000: MSFlexGrid1.TextMatrix(0, coluna) = ReadTRA(ReadINI("Janelas", "tradutor"), "g003")
If coluna = 3 Then largura_coluna(coluna) = 1000: MSFlexGrid1.TextMatrix(0, coluna) = ReadTRA(ReadINI("Janelas", "tradutor"), "g004")
If coluna > 3 Then
largura_coluna(coluna) = 1100
MSFlexGrid1.TextMatrix(0, coluna) = ReadTRA(ReadINI("Janelas", "tradutor"), "g005")
'largura_coluna(coluna) = TextWidth(rs.Fields(coluna).Name)
End If
Next coluna
linha = 1
xuxu = 0
Do While Not rs.EOF
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
MSFlexGrid1.FillStyle = flexFillRepeat
For coluna = 0 To rs.Fields.Count - 1
With MSFlexGrid1
.Row = linha
If EImpar(linha) Then
.Col = 0
.ColSel = .Cols - 1
.CellBackColor = skinlinha(2)
Else
.Col = 0
.ColSel = .Cols - 1
.CellBackColor = skinlinha(1)
End If
End With
registrando = rs.Fields(coluna).Value
If registrando <> "" Then
MSFlexGrid1.TextMatrix(linha, coluna) = rs.Fields(coluna).Value
largura_campo = TextWidth(rs.Fields(coluna).Value)
End If
If largura_coluna(coluna) < largura_campo Then largura_coluna(coluna) = largura_campo
Next coluna
rs.MoveNext
linha = linha + 1
Loop
rs.Close
For coluna = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.ColWidth(coluna) = largura_coluna(coluna) + 240
Next coluna
MSFlexGrid1.ColSel = 0
End Function



ae criei uma variacao de cores
Public Function skinlinha(cor) As Variant
If cor = 1 Then
skinlinha = &HFFFFFF
Else
skinlinha = &HE7E1DE
End If
End Function
Tópico encerrado , respostas não são mais permitidas