VB - Exibindo dados de tabelas selecionadas em um DBGrid
Neste artigo veremos como podemos usar o DBGrid em conjunto com um DataControl para exibir dados de tabelas selecionadas em um ListBox. Na verdade estou fazendo uma revisão visto que todos estes componentes já foram abordados em artigos anteriores. É portanto um artigo para quem esta começando agora a aprender VB.
Neste artigo você vai aprender:
Abra o seu Visual Basic 6.0 e crie um novo projeto do tipo Standard EXE. A seguir inclua os componentes conforme o layout da figura abaixo:
Você deve configurar a propriedade DataSource do DBGrid para apontar para o Data Control usado no projeto.(DataSource=Data1)
Quando o projeto for carregado o formulário principal - frmdbDBGrid - ir ser carregado. Coloque no evento Load deste formulário o código abaixo:
Private Sub Form_Load() 'define o titulo do diálogo cmdlg1.DialogTitle = "Procurar Arquivos .mdb" 'define o caminho inicial cmdlg1.InitDir = App.Path 'define o filtro para exibir os arquivos cmdlg1.Filter = "Arqs. MDB(*.mdb)|*.mdb|Todos " & "Arqs. (*.*)|*.*" cmdlg1.FilterIndex = 1 'define algumas variaveis de forma que o usuário possas selecionar somente arquivos que existam , exibe 'nome de arquivos longos e usa a interface estilo do Explorer cmdlg1.Flags = cdlOFNFileMustExist + cdlOFNHideReadOnly + cdlOFNLongNames + cdlOFNExplorer 'dispara um erro se não for selecionado algo cmdlg1.CancelError = True End Sub |
Este código apenas configura o componente CommonDialog - cmdlg1 - que usamos no projeto.
Após o projeto ser carregado o usuário deverá clicar no botão para procurar um arquivo .mdb para que as tabelas seja exibidas no listbox. O código deve ser colocado no evento Click do botão de comando - cmdProcuraArquivo.
Private Sub cmdProcuraArquivo_Click() On Error Resume Next 'exibe a caixa de diálogo Abrir Arquivo cmdlg1.ShowOpen If Err.Number = cdlCancel Then ' cancelado pelo usuario. Exit Sub ElseIf Err.Number <> 0 Then ' erro desconhecido MsgBox "Erro " & Format$(Err.Number) & " ao selecionar o arquivo." & vbCrLf & Err.Description Exit Sub End If On Error GoTo 0 'atribui o nome do arquivo selecionado a caixa de texto txtArquivo.Text = cmdlg1.FileName End Sub |
Após selecionar um arquivo , o usuário deverá clicar no botão - Exibir Tabelas - o código do evento Click deste botão é o seguinte :
Private Sub cmdExibeTabelas_Click() 'define objetos Dim nomeBancoDados As String Dim db As Database Dim qdef As QueryDef Dim td As TableDef On Error GoTo trataerro 'limpa o listbox lstTabelas.Clear If txtArquivo.Text <> "" Then ' abre o banco de dados nomeBancoDados = txtArquivo.Text Set db = OpenDatabase(nomeBancoDados) ' lista o nome das tabelas For Each td In db.TableDefs ' Não permite as tabelas do sistema If Left(td.Name, 4) <> "MSys" Then lstTabelas.AddItem td.Name Next td db.Close ' vincula o data control ao banco de dados Data1.DatabaseName = nomeBancoDados End If Exit Sub trataerro: MsgBox "Erro " & Err.Number & vbCrLf & Err.Description End Sub
|
Finalmente , quando os nomes das tabelas estiverem sendo exibidos no ListBox o usuário irá selecionar uma delas para exibir os seus dados no DBGrid. O código abaixo deverá ser colocado no evento Click do ListBox de forma que ao clicar em um nome de tabela seus dados serão exibidos.
'abre a tabela selecionada Private Sub lstTabelas_Click() Dim nome_tabela As String Dim sql As String 'obtem o nome da tabela selecionada na lista nome_tabela = lstTabelas.List(lstTabelas.ListIndex) 'monta instrução sql para selecionar todos os registros da tabela sql = "SELECT * FROM " & nome_tabela 'define a fonte de dados como sendo a tabela Data1.Caption = nome_tabela Data1.RecordSource = sql Data1.Refresh ' torna o controle data e o dbgrid visiveis Data1.Visible = True DBGrid1.Visible = True End Sub
|
Abaixo temos uma prévia do resultado da execução do projeto:
Simples e objetivo. Pegue o código completo aqui : dbDBGrid.zip
Eu sei é apenas VB , mas eu gosto...
José Carlos Macoratti