Utilizando os objetos de
Controle Vinculados da ADO
O Visual Basic até a sua versão 5.0 trazia o controle vinculado , Data Control, que permitia o acesso a uma base de dados de maneira automática ,e quase sem nenhum código. Deixando de lados suas limitações o Data Control permite uma maneira simples de acesso e visualização de um conjunto de registros.
Com a versão 6.0 o Visual Basic ganhou controles vinculados mais especializados e mais flexíveis, são eles: DataGrid, DataList e DataCombo. Estes controles fazem uso da ADO Data Control e usam a ADO para se conectar a uma base de dados , isto o tornam uma melhor opção ao Data Control.
Observação Importante : Os controles DataGrid , DataList , DataCombo e ADO Data Control são controles vinculados da ADO e não podem ser usados com os controles DBGrid , DBCombo, DBList e o Data Control da DAO. Assim você pode usar um DataGrid com ou sem um ADO Data Control , mas , não pode usá-lo com o Data Control da DAO. Ou seja você não pode misturar os controles. Esta regra vale para os demais controles vinculados da ADO.
A primeira coisa a fazer para podermos usar estes controles é, após iniciar um novo projeto no Visual Basic , acionar a opção Project-Components... . Na janela que surge marque as opções como indicadas na figura 1.0. Após isto os controles estarão disponíveis na barra de ferramentas ( figura 2.0)
![]() |
![]() |
Fig 1.0 - Incluindo os controles Vinculados na Barra de Ferramentas | Fig 2.0 - Os controles adicionados |
ADO Data Control
O ADO Data Control é usado para o acesso a base de dados pois possui os métodos que realizam quase todas as operações sem ser necessário portanto programação. Vamos acessar a base de dados BiBlio.mdb e fazer a ligação de um formulário com os campos da tabela Authors.
1-) Inicie um novo projeto no Visual Basic e adicione a caixa de ferramentas o controle ADO Data Control 6.0 , como indicado anteriormente.
2-)
![]() |
Clique duas vezes sobre o ícone do ADO
Data control ou o arraste para o formulário do projeto
inicial. Na figura ao lado temos o resultado , onde o controle aparece no formulário pronto para ser configurado Altere o nome do controle para adodc_teste . |
Fig 3.0 - Objeto ADO DC |
3-) Vamos configurar o controle para que ele acesse a base de dados que desejamos e nos permita a conexão com a tabela Authors do banco de dados Biblio.mdb. Clique sobre o controle ADO Data control com o botão direito do mouse e selecione a opção ADODC Properties. (Figura 4.0). A tela mostrada na figura 5.0 irá surgir.
![]() |
![]() |
Fig 4.0 | Fig 5.0 - Clique no botão Build para construir uma conexão |
4-) Agora clique no botão Build... e selecione o provedor: Microsoft Jet 3.51 OLE DB Provider (Figura 6.0). A seguir clique em Avançar... para que a tela da figura 7.0 seja exibida.
![]() |
![]() |
Fig 6.0 Lista de Provedores disponíveis | Fig 7.0 - Seleção do nome do banco de dados |
5-) Clique no botão para inserir o nome do banco de dados. A tela da figura 8.0 selecione o banco de dados o qual deseja acessar. Iremos selecionar Biblio.mdb e clicar no botão Abrir.
![]() |
Fig 8.0 - Caixa de dialogo para selecionar a base de dados |
6-) Clique em OK e selecione a aba RecordSource (Figura 9.0) . Nela escolha adCmdTable e o nome da tabela, Authors para o nosso caso. Pronto estamos prontos para faze a vinculação do formulário com os dados da tabela.
![]() |
Fig 9.0 - O tipo de Cursor usado e o nome da tabela |
Vinculando o ADO Data Control a uma fonte de dados
Vamos vincular o ADO Data Control com os dados da tabela Authors. Para isto vamos incluir no formulário usado três controles TextBox , obtendo algo parecido com a figura abaixo:
![]() |
As propriedades do ADO Data Control mais importantes são:
Já deu para perceber que o ADO Data Control precisa de outros controles para que possamos efetivamente ter acesso aos dados. Esses controles são chamados de controles vinculados , pois permitem através de determinadas propriedades a vinculação com um ADO Data Control. Os principais controles vinculados são:
Para estabelecer a conexão entre estes controles e a base de dados vamos precisar configurar as seguintes propriedades:
Vamos então configurar estas propriedades para o nosso exemplo. Voltemos ao formulário onde já incluimos as caixas de texto. Selecione a primeira caixa de texto - Text1 - e em propriedades clique em DataSource - o nome do controle Adodc_teste aparece e deve ser selecionado. A seguir clique em DataField , perceba que os campos da tabela Authors surgem na caixa de seleção , selecione o primeiro campo - Au_Id. Desta forma configuramos a primeira caixa de texto para mostrar o campo Au_ID da tabela Authors que esta vinculada ao ADO Data Control - adodc_teste. As figuras abaixo mostram a sequência da configuração realizada.
![]() |
![]() |
![]() |
Configuração de Text1 |
Agora basta repetir a sequência para os demais TextBox - text2 e text3 - alterando somente o nome do campo a ser visualizado. Ao término da configuração devemos ter os seguintes valores:
Text1 - DataSource - Adodc_teste DataField - Au_ID Text2 - DataSource - Adodc_teste DataField - Author Text3 - DataSource - Adodc_teste DataField - Year Born |
Vamos ver se funciona ! Rode o projeto , e veja se você obteve o formulário com os dados da figura abaixo:(eu me desloquei ate um autor que tivesse a data do nascimento gravada no arquivo)
![]() |
Nada Mal !!! Simples não ? Agora basta você generalizar para o teu caso especifico. Mas não abuse dos controles vinculados , pois embora sejam simples de usar pagamos um preço por isso - performance.
Se você é daqueles que gosta de codificar tudo , então fique sabendo poderíamos obter o mesmo resultado sem ter que clicar aqui e ali . Poderíamos codificar tudo configurando as seguinte propriedades: ConnectionString, RecordSource, DataSource, Datafield , quer ver ? então lá vai:
Private Sub Form_Load() With Adodc1 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=C:\teste\biblio.mdb;" .RecordSource = "Select * from Authors" End With Set Text1.DataSource = Adodc1 Text1.DataField = "Au_ID" Set Text2.DataSource = Adodc1 Text2.DataField = "Author" Set Text3.DataSource = Adodc1 Text3.DataField = "Year born" End Sub |
É obvio que o formulário deverá conter o controle ADO Data Control e as caixas de texto.
Os Eventos do ADO Data Control
O ADO Data Control possui diversos eventos com os quais podemos interagir. Vejamos os principais eventos e quando eles ocorrem:
Evento | Quando ocorre |
WillMove | On Recordset.Open, Recordset.MoveNext, Recordset.Move, Recordset.MoveLast, Recordset.MoveFirst, Recordset.MovePrevious, Recordset.Bookmark, Recordset.AddNew, Recordset.Delete, Recordset.Requery, Recordset.Resync |
MoveComplete | Depois de WillMove |
WillChangeField | Antes da alteração da propriedade Value |
FieldChangeComplete | Depois de WillChangeField |
WillChangeRecord | On Recordset.Update, Recordset.Delete, Recordset.CancelUpdate, Recordset.UpdateBatch, Recordset.CancelBatch |
RecordChangeComplete | Antes de WillChangeRecord |
WillChangeRecordset | On Recordset.Requery, Recordset.Resync, Recordset.Close, Recordset.Open, Recordset.Filter |
RecordsetChangeComplete | Antes de WillChangeRecordset |
InfoMessage | Quando o provedor retornar um resultado |
Um exemplo de utilização dos eventos acima pode ser observado nas linhas de código abaixo: Aqui o ADO data control foi nomeado como datPrimaryRS
1-) Usando o evento MoveComplete para mostrar a posição do registro no Recordset
Private Sub datPrimaryRS_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal _ pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 'Mostra a posição atual do registro no recordset datPrimaryRS.Caption = "Record: " & CStr(datPrimaryRS.Recordset.AbsolutePosition) End Sub |
2-) Usando o evento WillChangeRecord para validar dados
|
Usando o ADO Data Environment
Vamos fazer um aparte nesta altura , para mostrar o uso do ADO Data Environment. No exemplo a seguir iremos fazer uma conexão (Connection Object) com o banco de dados Biblio.mdb e usar um objeto Command com a tabela Titles.
1-) Inicie um novo projeto e adicione um Data Environment ao seu projeto (Veja o artigo:Usando Data Environment.). O seu projeto deverá estar como a figura abaixo. Altere o nome de DataEnvironment para denbooks e de Connection1 para conbooks . O resultado é mostrado na figura abaixo a direita
![]() |
|
Incluindo um DataEnvironment | Renomeando o DataEnvironment e Connection |
2-) Vamos agora instituir uma conexão via Objeto Connection:
3-) Vamos criar um comando via objeto Command
![]() |
![]() |
Fig 1.0 - criando um comando conbooks com Titles | Fig 2.0 - O objeto ComTitles Criado mostrando os campos da tabela Titles. |
Acabamos de configurar o DataEnvironment e estamos pronto para acessar a tabela Titles na base de dados Biblio.mdb. Agora clique no comando Comtitles e arraste-o para o formulário e solte-o. Veja o resultado , na figura 3.0.
![]() |
![]() |
fig 3.0 - Formulário com os dados da tabela Titles | Fig 4.0 - Propriedades configuradas das caixas de texto vinculadas aos dados |
Se voce clicar em qualquer das caixas de texto vinculadas aos campos e observar notará que as propriedades envolvidas são:
Se voce rodar o projeto verá os dados sendo mostrados nos campos do formulário. Mas como faço para me movimentar pelos registros ? Vamos mostrar como ir para frente e para trás , o resto fica por sua conta. OK ?
Adicione dois botões de comando ao formulário , e chame um de próximo e outro de anterior. No evento click dos botões acrescente o código a seguir:
1- Botão de comando Anterior:
Private Sub Command1_Click() denbooks.rscomtitles.MovePrevious if denbooks.rscomtitles.bof then denbooks.rscomtitles.movefirst endif End Sub |
2- Botão de comando Próximo:
Private Sub Command2_Click() denbooks.rscomtitles.MoveNext if denbooks.rscomtitles.eof then denbooks.rscomtitles.movelast endif End Sub |
Se voce for um pouco observador irá me perguntar: 'Hein de onde você tirou o recordset rscomtitles ?"
Acontece que quando configurado o Data Environment retorna um Recordset que possui as mesmas propriedades e métodos do ADO data control.. Um Recordset é retornado para cada objeto Command criado no Data Environment . O nome é baseado no nome dado ao objeto Command acrescido do prefixo rs, assim o objeto Command comtitles gerou o Recordset rscomtitles. Para ler ou determinar a propriedade de Recordset em um Data Environment (denteste) no qual criamos um objeto Command chamado comteste você deve usar a seguinte sintaxe:
denTeste.rscomTeste.nome_da_propriedade
O formulário do projeto tem o seguinte aspecto:
![]() |
Exemplo de conexão com o Data Environment |
Para fazer o download do projeto clique aqui -> den_cnt.zip (4 KB)
Usando o DataGrid
O controle DataGrid é muito usado para visualizar o conteúdo de Recordsets, Tabelas e Consultas no formato de uma planilha , uma grade, onde as colunas representam os campos e as linhas os registros.
Para poder utilizar o controle DataGrid em seu projeto você vai precisar adicioná-lo na barra de ferramentas e inserí-lo no seu projeto como indicado no inicio deste artigo.
Inicie o Visual Basic e arraste os controles DataGrid e ADO Data Control para o seu formulário. A seguir faça uma conexão usando o ADO Data Control com a base de dados com qual quer trabalhar , nosso exemplo usará a base de dados cadastro.mdb. Vincule o ADO Data Control à tabela ou Recordset que possui os dados que deseja visualizar. Nosso exemplo usará uma instrução SQL para extrair os campos Nome, Endereço, Estado e Cep da tabela Clientes e visualizá-los no DataGrid. Veja abaixo :
![]() |
![]() |
Os controles Data Grid e ADO data Control no formulário | Instrução SQL para retornar campos da tabela Clientes |
Agora basta você configurar a propriedade DataSource do DataGrid informando o nome do controle vinculado - Adodc1. Pronto pode executar o projeto , e se tudo foi feito corretamente você irá obter o resultado como a seguir:
![]() |
A propriedade DataSource do DataGrid foi definida
como: DataSource = Adodc1 |
Projeto em tempo de execução |
Para fazer o download do projeto clique aqui -> datagrid.zip (6 KB)
Para poder trabalhar com o DataGrid, alterando, excluindo e incluindo dados você deverá configurar as propriedades:
Veja os
Destaques e novidades do SUPER DVD Visual Basic 2013
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: