|
|
|
|
|
Dicas
|
|
Visual Basic (Grid/FlexGrid)
|
|
|
Título da Dica: Preencher mflexgrid com ADO
|
|
|
|
Postada em 4/12/2002 por DTLucchesi
O objetivo é mostrar como preencher o controle MSFlexGrid com os dados de uma tabela de um banco de dados. Nosso exemplo permitirá escolher entre algumas tabelas do banco de dados biblio.mdb .
Iremos fazer a conexão via ADO e preencher o grid usando a propriedade TextMatrix do MSFlexGrid.
Inicie um novo projeto no VB do tipo Standard EXE Faça referência no seu projeto a biblioteca - Microsoft ActiveX Data Object e ao componente Microsoft FlexGrid Control Insira no formulário padrão uma instãncia do MSFlexGrid , uma combobox e um botão de comando como na figura abaixo Inclua o seguinte código no evento Load do formulário.
Private Sub Form_Load() Combo1.AddItem "Authors" Combo1.AddItem "Publishers" Combo1.AddItem "Titles" Combo1.ListIndex = 0 End Sub
No formulário padrão insira o código da função que irá preencher o grid . A funçao irá retornar False ou True.
Public Function PreencheFlexGrid(FlexGrid As Object, rs As Object) As Boolean
On Error GoTo ErrorHandler
If Not TypeOf FlexGrid Is MSFlexGrid Then Exit Function If Not TypeOf rs Is ADODB.Recordset Then Exit Function
Dim i As Integer Dim J As Integer
FlexGrid.FixedRows = 1 FlexGrid.FixedCols = 0
If Not rs.EOF Then
FlexGrid.Rows = rs.RecordCount + 1 FlexGrid.Cols = rs.Fields.Count
For i = 0 To rs.Fields.Count - 1 FlexGrid.TextMatrix(0, i) = rs.Fields(i).Name ' define o cabeçalho do grid Next
i = 1 Do While Not rs.EOF
For J = 0 To rs.Fields.Count - 1 If Not IsNull(rs.Fields(J).Value) Then FlexGrid.TextMatrix(i, J) = rs.Fields(J).Value End If Next
i = i + 1 rs.MoveNext Loop
End If PreencheFlexGrid = True ErrorHandler: Exit Function End Function
No evento Click do botão de comando ( command1 ) insira o seguinte código:
Private Sub Command1_Click() Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim sConnString As String
If Combo1.ListIndex <> -1 Then sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\teste\biblio.mdb" conn.Open sConnString rs.Open " SELECT * FROM " & Combo1.Text, conn, adOpenKeyset, adLockOptimistic
PreencheFlexGrid MSFlexGrid1, rs
rs.Close conn.Close Else MsgBox "Selecione uma tabela", vbCritical, " Msflexgrid e ADO" End If End Sub
Execute o projeto , selecione uma tabela e clique no botão de comando. O resultado pode ser visto abaixo para a tabela Authors.
Obs: A conexão é feita via ADO, onde usamos:
a string de conexão sConnString com o provedor OLE DB Jet 4.0 ( que suporta o acesso a bases de dados do access 2000 ) sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\teste\biblio.mdb" conn.Open sConnString rs.Open " SELECT * FROM " & Combo1.Text, conn, adOpenKeyset, adLockOptimistic
Usando uma instrução SQL - SELECT - selecionamos todos os registros da tabela
|
|
|
|
|