Se você utiliza o Visual Basic e conhece a facilidade com o Access cria um formulário com um subformulário já deve ter ficado com dor de cotovelo, afinal o VB não possui tal recurso. Será que não possui mesmo ? E se... criarmos algo parecido... vamos lá. A idéia básica e montar um projeto com os seguintes elementos:
Um formulario principal - Form1
Um controle DBGrid - DBGrid1
Dois controles Data Control - Data1 e Data2
Um arquivo de dados padrão Access. Usaremos o NWIND.MDB do Access. (Usaremos as tabelas Pedidos e Detalhes do Pedido)
Um botão de comando para encerrar o programa.
Duas Caixas de Texto para visualizar os dados
Duas Labels - etiquetas para identificar as caixas de texto.
1-Inicie um novo projeto no Visual Basic. Grave o formulário como Form1 2-Adicione ao Form1 os objetos e configure as propriedades conforme a tabela 1.0 abaixo : Tabela 1.0 - Objetos e propriedades do formulário Agenda ---------------------------------------------------------------------------- Objeto Propriedade Configuração ---------------------------------------------------------------------------- Form Name Form1 Caption "Formulário/Subformulário" ---------------------------------------------------------------------------- Data Name Data1 Caption Tabela -> Pedidos (NWIND.MDB) Connect Access DatabaseName C:\ACCESS2\APLEXEMP\NWIND.MDB RecordSetType 1-Dynaset RecordSource Pedidos ---------------------------------------------------------------------------- Data Name Data2 Caption Data2 Connect Access DatabaseName C:\ACCESS2\APLEXEMP\NWIND.MDB RecordSetType 1-Dynaset RecordSource Detalhes do Pedido Visible False ---------------------------------------------------------------------------- (4) DBGrid Name DBGrid1 Caption Detalhes dos Pedidos(NWIND.MDB) DataSource Data2 Column1 Número do Pedito Column2 Preço Unitário Column3 Quantidade ---------------------------------------------------------------------------- TextBox Name Text1 Caption "" DataField Número do Pedido DataSource Data1 ---------------------------------------------------------------------------- TextBox Name Text2 Caption "" DataField Nome do destinatário DataSource Data1 ---------------------------------------------------------------------------- Label Name Label1 Caption Número Pedido AutoSize True ---------------------------------------------------------------------------- Label Name Label2 Caption Destinatário AutoSize True ---------------------------------------------------------------------------- CommandButton Name Command1 Caption &Sair ---------------------------------------------------------------------------- 3- O seu formulário deverá ter o seguinte jeitão: fig 1.0 4- Para incluir as colunas no DBGrid faça o seguinte: -Após configurar os controles data1 e data2 como indicados e ter colocado o controle DBGrid no seu formulário, dimensione-o como na figura 1.0. acima. -Selecione o controle DBGrid e clique com o botão direito do mouse sobre o mesmo; o menu da figura 2.0 deverá surgir , nele clique na opção Edit. -Clique novamente com o botão direito do mouse sobre o controle DBGrid para obter o menu da figura 3.0 .
fig 2.0 |
fig 3.0 |
-Nele notamos as opções Insert , para inserir colunas em determinada posição e Append para inserir após a última coluna. -Clique em Insert para inserir mais uma coluna. -Agora clique na opção Properties... do menu da figura 3.0 . Voce deverá obter a tela da figura 4.0, onde na selecionando Columns você atribui a cada coluna o campo do RecordSource atribuido ao controle Data2.
fig 4.0
5- Agora falta somente acrescentar o seguinte código ao evento reposition do controle Data1:
Private Sub Data1_Reposition() Dim SQL As String If Text1.Text = "" Then SQL = "SELECT * FROM [Detalhes do Pedido]" Else SQL = "SELECT * FROM [Detalhes do Pedido] WHERE [NúmeroDopedido] = " & CLng(Text1.Text) End If Data2.RecordSource = SQL Data2.Refresh End Sub |
6- E o código para encerrar o programa no botão de comando:
Private Sub Command1_Click() End End Sub |
7- Se você fez tudo direitinho ao executar o projeto obtera a tela da figura 5.0, e ao clicar para movimentar-se pelos registros da tabela pedido os registros dos detalhes do pedido serão mostrados simulando um sub formulário.
fig 5.0 -
E Então ? Com o VB podemos ou não criar formulário/Sub formulário ???
José Carlos Macoratti