Subformulários no Visual Basic ?

    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 SQL = "SELECT * FROM [detalhes do pedido] WHERE [número do pedido] = " & Text1.Text 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 subformulário.
fig 5.0 -E Então ? Com o VB podemos ou não criar formulário/Subformulário ???

Retorna