USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  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  

 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página