Desenvolvendo aplicações em VB 6.0 usando o Mouse e um Dicionário.


Eu tenho o costume de frequentar livrarias e folhear os livros da seção sobre informática , principalmente os livros sobre Visual Basic. Recentemente em uma livraria ao folhear alguns livros que se propunham a ensinar como criar uma aplicação usando o Visual Basic 6.0 , não acreditei no que vi; os livros usavam os Assistentes do Visual Basic pura e simplesmente fazendo somente a colagem das telas e assim 'criando' uma aplicação em Visual Basic 6.0 .

Como recebo muitos e-mails solicitando soluções simples que se encaixam dentro desta ferramenta eu resolvi mostrar como usar os assistentes para criar aplicações sem escrever quase nenhuma linha de código.

Com os assistentes podemos criar formulários de diversos tipos, gráficos e visualizar o código ADO gerado . Sim é isto mesmo, o Data Form Wizard cria formulários que usam os objetos da ADO para conexão a base de dados. Se você quer saber como se faz uma conexão a uma base de dados usando a ADO use este assistente e depois apenas veja o código gerado.

Então, pra que gastar dinheiro com livros que apenas são um monte de telas coladas dos Assistentes ? Aprenda você mesmo como usar os assistentes e a criar aplicações usando apenas um mouse e , se você não manchar nada de inglês , um dicionário.

Ativando os Assistentes do Visual Basic 6.0

Ao iniciar o Visual Basic , selecione a opção Add-Ins do Menu. Você deve ver duas opções ativas: o Visual Data Manager... e o Add-In Manager... (Fig 1)

Fig. 1

O Visual Data Manager é um utilitário para criação de banco de dados , tabelas , índices, relacionamentos, etc.. e será abordado mais adiante.

Selecione a segunda opção - Add-In Manager - e você verá os assistentes disponíveis no Visual Basic 6.0 . Para ativar um assistente selecione-o e clique na opção - Loaded/Unloaded. Poderiamos usar a opção Load on Startup de forma a sempre carregar o assistente ao iniciar o Visual Basic.

Na (Fig 2) ativamos o Data Form Wizard, um assistente que nos ajudará a criar nossos formulários.

A (Fig 3) , mostra como ficou a opção Add-Ins após ativarmos este Assistente.

Fig 2 Fig 3

Situação 1 - Eu quero criar um cadastro de clientes para armazenar as seguintes informações:

  1. nome
  2. Endereço
  3. Cidade
  4. UF
  5. Cep
  6. telefone
  7. data de nascimento
  8. observação

Vamos supor que você não conheça nada de programação em Visual Basic.(Ligar o micro você sabe !!! )

Etapa 1 - Criando um banco de dados e uma tabela para armazenar suas informações

A primeira coisa que você deve fazer é criar o seu banco de dados , ou seja , o arquivo onde você vai guardar as informações de cada cliente. Para isto vamos usar o assistente Visual Data Manager.... (Fig 3)

Ao clicar na opção Visual Data Manager... surge a tela da Fig 4: Siga os passos descritos para criar seu banco de dados:

Para criar um novo banco de dados faça o seguinte:

1-) Selecione a opção File e a seguir a opção New

2-) Agora selecione a opção Microsoft Access

3-) Finalmente escolha a opção Version 7.0 MDB..

(Veja a Fig 5)

Fig 4  
Fig 5

A tela parecida com a Fig 6 abaixo surge após você clicar na opção Version 7.0 MDB... . Agora você deve escolher um diretório para onde deseja salvar o arquivo e finalmente informar o nome do banco de dados criado.

A Fig 6 mostra o diretório clientes e o arquivo clientes, o qual será o nome do nosso banco de dados.

Fig 6

Ao clicar no botão Salvar o seu banco de dados é criado com o nome de clientes.mdb e a tela da Fig 7 aparece indicando : a localização e o nome de sua base de dados , a janela Database Window e janela SQL Statement.

Fig 7

Voce pode confirmar e verificar as propriedades de sua base de dados. Clique no simbolo (+) ao lado do ícone Properties. Na tela da Fig 8 , vemos as propriedades de sua base de dados recém criada.

Fig 8 Fig 9

Agora vamos criar a nossa tabela onde os dados serão armazenados. Clique com o botão direito do mouse na área livre da janela Database Window. Surge um menu com duas opções ( Fig 9) ; Agora clique na opção New table.

A janela Table Structure é mostrada (Fig 10) . É nela que vamos criar a nossa tabela. Informe o nome da tabela que deseja criar na linha Table Name , aqui estamos dando-lhe o nome de clientes; agora vamos criar os campos que são os itens de informação para o cliente que você quer armazenar.Lembre-se que eles são: nome, endereço, cidade, UF, cep, telefone, data de nascimento e observação.

Fig 10

Após você informar o nome da tabela clique no botão Add Field (Incluir Campo). A janela Add Field surge (Fig 11)

Fig 11

É na janela Add Field que iremos criar os campos de nossa tabela. Observe que devemos informar o nome do campo (Name) , o tipo de dados do Campo (Type) e o tamanho do campo (Size).

Então antes de continuar devemos identificar os tipos de dados para cada campo e seu tamanho.

Você já parou para pensar quando tiver dois clientes com o mesmo nome o que vai acontecer ?

Você precisa identificar cada cliente de uma maneira a não fazer confusão. Como vai lidar com homônimos ?

Não seria interessante atribuir um código único que identificasse cada cliente ? . Assim como cada pessoa tem um CPF único (pelo menos deveria ser assim). Então vamos fazer isto: vamos criar um campo código para identificar cada cliente de forma única.

Podemos fazer isto atribuindo ao código o RG ou CPF de cada cliente. Esta escolha tem a seguinte desvantagem: é você que vai ter que controlar o campo código. Não seria melhor que o próprio sistema controlasse este campo e, iniciando do 1 (hum) fosse incrementando o código a cada nova inclusão de um cliente ??? Pois vamos fazer assim ; o campo código deverá ser do tipo Long , ser autoincrementável pelo sistema e ser um campo sempre necessário . Na fig.12 vemos a criação do campo código.

Os demais campos e seus tipos são descritos a seguir:
Nome do Campo Tipo do Campo Tamanho
Codigo Long  
Nome Text 40
Endereco Text 40
Cidade Text 30
Cep Text 15
UF Text 2
Telefone Text 15
Nascimento Date/Time  
Observacao Memo  
Fig 12  

Agora vamos somente mostrar mais uma tela (Fig 12) de configuração para campos do tipo texto(Text) como o campo Nome:

Aqui você deve selecionar as opções:

AllowZeroLength

VariableField

Fig 13  

Os demais campos seguem o mesmo critério. Ao final você deverá obter o resultado mostrado na Fig 14:

Fig 14

Estamos quase terminando, antes de criar propriamente a tabela vamos criar um índice para o campo código como sendo um índice chave primária.

Clique no botão Add Index e , após selecionar o campo que quer indexar , informe o nome na caixa Name: (Veja figura 15)

Marque as opções: Primary e Unique.

Assim indicamos que o índice será uma chave primária e será único ,não admitindo valores duplicados.

A opção IgnoreNulls não considera valores nulos para o campo.

Fig.15  

Clique em OK para criar o índice e finalmente clique no botão Build the Table (Fig.14) para criar a tabela clientes em seu banco de dados.

Finalmente você acabou de criar a sua tabela.

Agora que já temos a tabela vamos usar outro assistente para criar o formulário para o nosso cadastro de clientes.

Na opção Add-Ins do Menu vamos ver a agora a opção Data Form Wizard. Clique nesta opção e a seguir siga o roteiro abaixo:

1-) Na tela - Data Form Wizard - Introduction - clique no botão Next >

2-) A Fig.16 abaixo mostra a janela - Data Form Wizard - Database Type - onde voce seleciona com qual tipo de base deseja trabalhar. (A opção remote requer a utilização de um DSN )

Como vamos trabalhar com uma base de dados local e no padrão Access , selecione Access e clique no botão Next >
Fig 16  

3-) Informe o nome do seu banco de dados ou clique no botão Browse para selecioná-la ( Fig 18 , Fig 19, Fig 20), clique no botão Next >

Fig 17
Fig 19
Fig 20

4-) Após selecionar sua base de dados chegamos na tela mais importante do assistente. Nela você escolhe o tipo de formulário: Single Record, Grid, Master/Detail , MsFlexgrid e Mschart , e o modo como quer acessar os dados : via ADO Data Control, código ADO ou via Classes.(Fig. 21)

Fig 21

5-) Agora na figura 21 voce seleciona o seu Record Source (Fonte de Dados), ou seja, a sua tabela, e verá na caixa Available Fields os campos disponíveis . A seguir usando o botão > selecione os campos que quer no seu formulário. Os mesmos serão apresentados na caixa Selected Files (Fig 22). Finalmente selecione por qual campo deseja que os dados seja ordenados.( caixa Column to Sor by da fig 22)

Fig 22 Fig 23

6-) Criando os controles do formulário. Fig 24.

Temos nesta tela do assistente os controles que serão criados no formulário.

Desmarque a caixa de seleção Refresh button ,pois não iremos precisar desta opção no nosso formulário.

A seguir clique em Next >

E para encerrar clique no botão Finish

Fig 24  

7-) Pronto eis aqui o nosso formulário prontinho. Só falta traduzir os nomes dos botões , ajustar o tamanho das caixas de texto e alterar o nome dos botões usados no código gerado. Para mudar o nome dos controles, clique sobre o controle que desejar alterar e procure na caixa Properties a propriedade Caption digitando a seguir o nome desejado. (veja fig. 26)

Fig 25 Fig 26

8-) Na figura 27 abaixo temos o nosso formulário já ajustado e pronto para uso.

9-) Quer ver o código ?


Private Sub Form_Unload(Cancel As Integer)
Screen.MousePointer = vbDefault
End Sub

Private Sub datPrimaryRS_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean)
'This is where you would put error handling code
'If you want to ignore errors, comment out the next line
'If you want to trap them, add code here to handle them
MsgBox "Data error event hit err:" & Description
End Sub

Private Sub datPrimaryRS_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
'This will display the current record position for this recordset
datPrimaryRS.Caption = "Record: " & CStr(datPrimaryRS.Recordset.AbsolutePosition)
End Sub

Private Sub datPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReasonEnum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
'This is where you put validation code
'This event gets called when the following actions occur
Dim bCancel As Boolean

Select Case adReason
Case adRsnAddNew
Case adRsnClose
Case adRsnDelete
Case adRsnFirstChange
Case adRsnMove
Case adRsnRequery
Case adRsnResynch
Case adRsnUndoAddNew
Case adRsnUndoDelete
Case adRsnUndoUpdate
Case adRsnUpdate
End Select

If bCancel Then adStatus = adStatusCancel
End Sub

Private Sub cmdAdd_Click()
On Error GoTo AddErr
datPrimaryRS.Recordset.AddNew

Exit Sub
AddErr:
MsgBox Err.Description
End Sub

Private Sub cmdDelete_Click()
On Error GoTo DeleteErr
With datPrimaryRS.Recordset
.Delete
.MoveNext
If .EOF Then .MoveLast
End With
Exit Sub
DeleteErr:
MsgBox Err.Description
End Sub

Private Sub cmdUpdate_Click()
On Error GoTo UpdateErr

datPrimaryRS.Recordset.UpdateBatch adAffectAll
Exit Sub
UpdateErr:
MsgBox Err.Description
End Sub

Private Sub cmdClose_Click()
Unload Me
End Sub

Se no passo 4 tivessemos escolhido a opção ADO Code, ao terminar , o assistente criaria o código de acesso aos dados usando a ADO. Não era isto que você queria ver como se faz ???? .

E então , gostou. Agora você pode se divertir criando vários tipos de formulários usando o assistente. Moleza não !!!

So long. :-)