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