visual basic 5.0 (exercícios)

35
Centro de Computação Gerência de Atendimento ao Cliente (e-mail [email protected]) Visual Basic 5.0 39 Exercício 4: Calculadora Fazer uma calculadora que tenha as seguintes operações: soma, subtração, divisão e multiplicação. Tela do Exercício. Private Sub cmdcalcular_Click() If OptSoma.Value = True Then txtresult = Val(txtprim_num) + Val(txtseg_num) ElseIf OptSub.Value = True Then txtresult = Val(txtprim_num) - Val(txtseg_num) ElseIf OptMult.Value = True Then txtresult = Val(txtprim_num) * Val(txtseg_num) ElseIf OptDiv.Value = True Then If Val(txtseg_num) <> 0 Then txtresult = Val(txtprim_num) / Val(txtseg_num) Else MsgBox "Divisão por Zero!" End If End If End Sub Resolução do Exercício: Form Caption =Formulário do Exercício Name = Frmexerc Frame Caption = Operações Name = Frame2 TextBox Name = txtresult Text = (BRANCO) TextBox Name = txtseg_num Text = (BRANCO) HScrollBar Name = hScrPrim_valor LargeChange = 10 Max = 1000 HScrollBar LargeChange = 10 Max = 1000 Name = HScrSeg_valor CommandButton Caption = &Calcular Name = cmdcalcular CommandButton Caption = &Sair Name = cmdsair OptionButton Caption = Subtração Name = OptSub OptionButton Caption = Soma Name = OptSoma OptionButton Caption = Divisão Name = OptDiv OptionButton Caption = Multiplicação Name = OptMult TextBox Name = txtprim_num Text = (BRANCO) Label AutoSize = True Caption = Primeiro Valor: Name = lblprim_valor Label AutoSize = True Caption = Resultado da Operação: Name = lblresult Label AutoSize = True Caption = Segundo Valor: Name = lblseg_valor Private Sub hScrPrim_valor_Change() txtprim_num = hScrPrim_valor.Value End Sub Private Sub hScrPrim_valor_Scroll() txtprim_num = hScrPrim_valor.Value End Sub Private Sub HScrSeg_valor_Change() txtseg_num = HScrSeg_valor.Value End Sub Private Sub HScrSeg_valor_Scroll() txtseg_num = HScrSeg_valor.Value End Sub Private Sub cmdsair_Click() End End Sub

Upload: adriano-aragao

Post on 01-Jul-2015

175 views

Category:

Documents


15 download

TRANSCRIPT

Page 1: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 39

Exercício 4: Calculadora

Fazer uma calculadora que tenha as seguintes operações: soma,subtração, divisão e multiplicação.

Tela do Exercício.

Private Sub cmdcalcular_Click() If OptSoma.Value = True Then txtresult = Val(txtprim_num) + Val(txtseg_num) ElseIf OptSub.Value = True Then txtresult = Val(txtprim_num) - Val(txtseg_num) ElseIf OptMult.Value = True Then txtresult = Val(txtprim_num) * Val(txtseg_num) ElseIf OptDiv.Value = True Then If Val(txtseg_num) <> 0 Then txtresult = Val(txtprim_num) / Val(txtseg_num) Else MsgBox "Divisão por Zero!" End If End IfEnd Sub

Resolução do Exercício:

FormCaption =Formulário do ExercícioName = Frmexerc

Frame Caption = Operações Name = Frame2

TextBox Name = txtresult Text = (BRANCO)

TextBox Name = txtseg_num Text = (BRANCO)

HScrollBar Name = hScrPrim_valor LargeChange = 10 Max = 1000

HScrollBar LargeChange = 10 Max = 1000 Name = HScrSeg_valor

CommandButton Caption = &Calcular Name = cmdcalcular

CommandButton Caption = &Sair Name = cmdsair

OptionButton Caption = Subtração Name = OptSub

OptionButton Caption = Soma Name = OptSoma

OptionButton Caption = Divisão Name = OptDiv

OptionButton Caption = Multiplicação Name = OptMult

TextBox Name = txtprim_num Text = (BRANCO)

Label AutoSize = True Caption = Primeiro Valor: Name = lblprim_valor

Label AutoSize = True Caption = Resultado da Operação: Name = lblresult

Label AutoSize = True Caption = Segundo Valor: Name = lblseg_valor

Private Sub hScrPrim_valor_Change() txtprim_num = hScrPrim_valor.ValueEnd Sub

Private Sub hScrPrim_valor_Scroll() txtprim_num = hScrPrim_valor.ValueEnd SubPrivate Sub HScrSeg_valor_Change() txtseg_num = HScrSeg_valor.ValueEnd Sub

Private Sub HScrSeg_valor_Scroll() txtseg_num = HScrSeg_valor.ValueEnd Sub

Private Sub cmdsair_Click() EndEnd Sub

Page 2: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 40

Criando Efeitos Especiais em Forms

No VB, existem controles que permite a criação de imagensgeométricas.

Controle Line é usado para criar uma linha em seuformulário (form). Suas propriedades mais importantes são:BorderWidth, BorderStyle, BorderColor, Visible.

Controle Shape é usado para desenhar uma figurageométrica em seu formulário (form). É possível selecionar o formatodessa figura. Os formatos são: retângulo, retângulo arredondado,quadrado, quadrado arredondado, oval, circular.

Suas principais propriedades são:

FillColor: permite definir a cor do objeto. (Preenchimento)FillStyle: permite definir o padrão do preenchimento.Visible: permite que você oculte ou exiba seu objeto.

NOTAS:

Teste!

Crie um novo Project (A partir do menu File, escolha a opção NewProject). No formulário, desenhe os controles Line, Shape e modifiquesuas propriedades.

Page 3: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 41

Funções do Mouse

O VB permite que você utilize o controle Image para criar botõesde comando no estilo da barra de ferramentas em seus programas.Para criar esses botões, pode-se usar os seguintes eventos:

MouseDown: este evento detecta o pressionar do mouse.MouseMove: detecta qualquer movimento com o mouse.MouseUp: detecta quando o usuário libera o botão do mouse.

Os botões possuem três estados:

Não pressionado - esse é o estado normal do botão. Não estáselecionado.

Pressionado - esse é o estado do botão que está selecionado ouestá ativo.

Desativado - é o estado utilizado quando um botão não estádisponível para o programa.

Mais algumas propriedades da Caixa Texto

FontBold: define se o texto da caixa de texto deve ser negrito ounão. Valor que recebe é True se for configurar o texto para negrito eFalse, caso contrário.

FontItalic: define se o texto da caixa de texto deve ser itálico ounão. Valor que recebe é True se for configurar o texto para itálico eFalse, caso contrário.

FontUnderline: define se o texto da caixa de texto deve sersublinhado ou não. Valor que recebe é True se for configurar o textopara sublinhado e False caso contrário.

Image Box

Tag: utiliza-se esta propriedade para identificar um objeto. Nopróximo exercício, esta propriedade será utilizada para identificar ostatus do botão.

NOTAS:

Para criarmos esses tipos de botões, estaremos trabalhando com ocontrole Image Box que mostrará a imagem correspondente a açãoque você tomou. Por exemplo, se você pressionou o botão, aparecerá aimagem do botão pressionado.

É possível alterar os estados dos botões através da procedure deevento MouseDown, por exemplo.

Page 4: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 42

Exercício 5: Criando botões Gráficos

Faça um programa que permita que o usuário digite seu textonuma caixa de texto e formate-o (Negrito, Itálico e Sublinhado) damaneira que desejar.

Tela do Exercício

Private Sub Image7_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Image7.Tag = "Para cima" Then Image7.Picture = Image4.Picture txttexto.FontBold = True Image7.Tag = "Para baixo" Else Image7.Picture = Image1.Picture txttexto.FontBold = False Image7.Tag = "Para cima" End IfEnd Sub

Resolução do Exercício:

Form Caption = Formuláriopara Exercício Name = frmexerc

Label AutoSize = 'True Caption = Clique nos botões para formatar otexto. Name = Label1

TextBox MultiLine = True Name = txttexto

Image Name = Image1 Picture = ...\bld-up.bmp

Tag = Para cima Visible = False

Image Name = Image2 Picture = ...\itl-up.bmp Tag = Para cima Visible = False

Image Name = Image3 Picture = ...\ulin-up.bmp Tag = Para cima Visible = False

ImageName = Image4Picture = ...\bld-dwn.bmp

Tag = Para baixoVisible = False

Image Name = Image5 Picture =...\itl-dwn.bmp Tag = Para baixo Visible = False

Image Name = Image6 Picture = ...\ulin-dwn.bmp

Tag = Para baixo Visible = False

Image Picture= Tag = Para cima Name = Image7

Image Picture = Tag = Para cima Name = Image8

Image Picture = Tag = Para cima Name = Image9

CommandButton Caption = &Sair Name = cmdsair

Private Sub Image8_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Image8.Tag = "Para cima" Then Image8.Picture = Image5.Picture txttexto.FontItalic = True Image8.Tag = "Para baixo" Else Image8.Picture = Image2.Picture txttexto.FontItalic = False Image8.Tag = "Para cima" End IfEnd Sub

Private Sub Image9_ MouseDown(Button As Integer,Shift As Integer, X As Single, Y As Single) If Image9.Tag = "Para cima" Then Image9.Picture = Image6.Picture txttexto.FontUnderline = True Image9.Tag = "Para baixo" Else Image9.Picture = Image3.Picture txttexto.FontUnderline = False Image9.Tag = "Para cima" End IfEnd Sub

Page 5: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 43

Arrastar-e-Soltar (Drag and Drop)

Em aplicações desenvolvidas em Visual Basic, você podeutilizar muitos recursos para facilitar e “agradar” o usuário. Umadessas características do VB, é o Drag-and-Drop que permite que ousuário arraste um objeto até outro e solte-o.

Usando as propriedades, eventos e métodos que o VB possui,você pode especificar como esse recurso deve se comportar em suaaplicação.

DragMode Permite que seu objeto sejaarrastado automaticamenteou manualmente

Propriedades

DragIcon Especifica qual o ícone quedeve ser mostrado quando oobjeto é arrastado.

DragDrop Reconhece quando umcontrole é solto em outroobjeto.

Eventos

DragOver Reconhece quando umcontrole é arrastado em cimade outro.

Métodos Drag Inicia ou termina a ação dearrastar manualmente.

Você pode configurar a propriedade DragMode de seu objetopara 1 (que permite que o objeto seja “arrastado”).

NOTAS:

Se você configurar a propriedade DragMode do objeto paraManual, para iniciar e terminar a ação de arrastar-e-soltar, serápreciso programar o método Drag.

Os valores aceitos por este método é:

Constante Valor AçãoVbCancel 0 Cancela a operação Drag-and-DropVbBeginDrag 1 Inicia a operação de arrastar.VbEndGrag 2 Termina a operação para arrastar e

solta o objeto.

Evento DragDrop()

Este evento possui 3 argumentos:Source: que identifica o objeto que você esta arrastando. Você

pode utilizar esse argumento com métodos e propriedades. Porexemplo: source.visible = false.

X, Y: que são coordenadas. X é a coordenada horizontal e Y éa coordenada vertical.

Page 6: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 44

Exercício 6: Teste Arrastar-e-Soltar

Fazer um programa para testar o Arratar-e-Soltar no VB. Esseprograma deve permitir que você arraste os objetos para a lata de lixoe depois coloque fogo.

Tela do exercício.

Resolução do Exercício:

Form Name = FormDrag_Drop Caption = Teste Arrastar-e-Soltar

Image Name = Image5 Picture = ..\trash02a.ico Stretch = True

Image Name = Image6 Picture = ..\trash02b.ico Stretch = True Visible = False

Image Name = Image4 DragIcon = ..\point11.ico DragMode = Automatic Picture = ...\point11.ico Stretch = True

Image Name = Image3 DragIcon = ..\fire.ico DragMode = Automatic Picture = ..\fire.ico Stretch = True Tag = Fogo

Image Name= Image2 DragIcon = ..\gaspump.ico DragMode = Automatic Picture = ..\gaspump.ico Stretch = True

Private Sub Image5_DragDrop(Source As Control, X As Single, Y As Single) Source.Visible = False If Source.Tag = "Fogo" Then Image5.Picture = Image6.Picture End IfEnd Sub

Page 7: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 45

CommonDialog

Esse objeto permite exibir cinco caixas de diálogo nos padrões doWindows.

Apenas uma caixa de diálogo pode ser exibida a partir de umobjeto Common Dialog.

Para exibir uma determinada caixa de diálogo, deve ser utilizado ométodo correspondente à caixa desejada.

Os conteúdos das caixas são controlados através de suaspropriedades, ou seja, quando uma caixa é preenchida, os resultadossão apresentados por suas propriedades.

Caixas de Diálogo e sua utilização:

Abrir : para abrir um arquivo.Método correspondente: ShowOpen

Salvar Como: para salvar um arquivo.Método correspondente: ShowSave

Imprimir: para definir as opções de impressão.Método correspondente: ShowPrinter

Fonte: para definir uma fonte e um estilo para textos.Método correspondente: ShowFont

Cor: para escolher uma nova cor da paleta.Método correspondente: ShowColor

NOTAS:

Um objeto CommonDialog não é visível ao usuário em tempo deexecução do programa.

Propriedades correspondentes à CommonDialog Abrir:

Filter : define quais os tipos de arquivos deverão ser exibidos.Por exemplo:

commondialog1.filter = “Bitmaps (*.BMP) | *.BMP |Metafiles (*.WMF) | *.WMF”

Filename: define o nome do arquivo selecionado.

Propriedades correspondentes à CommonDialog Color:

Flags: define qual o tipo da caixa Color deverá ser exibida. OsFlags podem ser:

&H1&: Exibe a CommonDialog Cor padrão, com as corespersonalizadas como opção.

&H2&: Exibe a paleta padrão e a personalizada.&H4&: Exibe a paleta padrão com o botão de Cores

Personalizadas desabilitado.&H8&: Exibe o botão de ajuda na CommonDialog Cor.

Color: esta propriedade é utilizada para configurar a cor dosobjetos do VB que suportam cor. É possível modificar a cor do fundode um formulário, as cores das formas no formulário e as cores defundo dos objetos.

Page 8: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 46

Controle ImageList

O controle ImageList é utilizado para armazenar uma lista deimagens para serem utilizadas nas barras de ferramentas, animações eaplicativos. Cada ImageList é responsável pela criação de apenas umalista de imagens.

Sua capacidade é limitada pela mémoria de seu micro.

Página de Propriedades.

Para exibir a Página de Propriedades do ImageList, selecione oobjeto no formulário, clique-o com o botão direito do mouse e escolhaa opção propriedades.

A guia Images é a parte principal para a criação da lista deimagens, pois é nela que se encontram as propriedades para inserçãoda imagem na lista.

Propriedades:

Current Image:Index: índica da imagem inserida no vetor da lista das

imagens.Key/Tag: palavra-chave utilizada para fazer referencia a

imagem.

ImagesMostra todas as imagens inseridas na lista na ordem em que

foram inseridas.

Image Count: exibe o número de imagens inseridas na lista

Para inserir um imagem à Lista:Utilize o botão Insert Picture, escolha a imagem e clique no

botão Open.

Para remover uma imagem da lista:Selecione a imagem desejada e clique o botão Remove

Picture.

NOTAS:

Page 9: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 47

Controle Toolbar

Este controle é utilizado para criar barras de ferramentas padrãodo Windows 95.

Página de Propriedades.

Para exibir a Página de Propriedades do ToolBar, selecione oobjeto no formulário, clique-o com o botão direito do mouse e escolhaa opção Propriedades.

Na guia Buttons, principais propriedades:

Index: índice do botão na barra de ferramentas.Caption: texto que deve aparecer para descrever o botão.Description: descrição da função do botão.

Key/Tag: texto para identificação do botão.Value: define se deve estar pressionado ou não pressionado.Style: estilo no qual o botão deve ser mostrado.ToolTipText: texto explicativo sobre o botão que deve

aparecer para o usuário.Image: se a ToolBar estiver associada à uma ImageList, voce

pode utilizar uma imagem da lista de imagem através seu index.

Para inserir um novo botão, utilize:Botão Insert Button.

Para excluir um botão da ToolBar:Utilize o botão Remove Button.

NOTAS:

Page 10: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 48

Exercício 7: Utilizando as Common Dialog

Fazer uma aplicação que permita a abertura de imagens e aconfiguração do ambiente de trabalho pelo usuário (cores doFormulário). Deve tambem limpar a tela da Imagem quando o usuáriodesejar.

Tela do exercício em tempo de Design.

Resolução do Exercício:

Form Name = Form1 Caption = Abrindo Figuras

Imagem Box Name = Image1

ToolBar Name = Toolbar1

Image List Name = ImageList1

CommonDialog Name = CommonDialog1

Private Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button) Select Case Button.Key Case "Abrir" CommonDialog1.Filter = "Metafiles (*.WMF) | *.WMF |Bitmaps (*.BMP) | *.BMP _ |JPEG

(*.JPG) | *.JPG"

CommonDialog1.ShowOpen If CommonDialog1.CancelError <> True Then Image1.Picture = LoadPicture(CommonDialog1.filename) End If Case "Color" CommonDialog1.Flags = &H8& CommonDialog1.ShowColor If CommonDialog1.CancelError <> True Then Form1.BackColor = CommonDialog1.Color End If Case "Fechar" Image1.Picture = LoadPicture() Case "Sair" End End SelectEnd Sub

Page 11: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 49

Acesso ao Sistema de Arquivos

O VB possui controles que permitem o acesso ao seu sistema dearquivos, ou seja, são controles que permitem fazer a pesquisa emdiretórios e drives e a seleção de arquivos.

Os controles são:

Controle DriveList: permite a pesquisa dos drivesválidos em seu sistema.

Controle DirListBox: permite a pesquisa em pastas(diretórios) existentes no drive selecionado.

Controle FileListBox: permite a seleção de umarquivo específico em uma pasta (diretório).

Trabalhando com as Propriedades:

Existem propriedades que não podem ser configuradas em tempode design do programa, ou seja, não é possível configurá-lasutilizando a janela Properties (Janela de Propriedades). Elas só podemser configuradas em tempo do execução:

Drive: recebe a letra do drive selecionado (utilizado pelocontrole DriveListBox).

Path: recebe o nome do diretório selecionado (utilizado peloscontroles DirectoryListBox e FileListBox).

FileName: quando um nome de arquivo é selecionado, o VB ocoloca nesta propriedade (utilizado pelo controle FileListBox).

NOTAS:

Eventos mais utilizados:

Para DirListBoxChange() – modifica o diretório selecionado. Ocorre quando o

usuário dá um duplo clique em um novo diretório ou quando vocêmuda a propriedade Path através de código de programação.

Para DriveListChange() – Modifica o drive selecionado. Ocorre quando o

usuário seleciona um novo diretório ou quando você muda apropriedade Drive através de programação.

Para FileListBoxClick: Ocorre quando o usuário pressiona o botão do mouse

em um objeto. Pode também ocorrer quando o valor de um controle(objeto) é mudado.

Outras propriedades do FileListBox

Archive: define se os arquivos do tipo Archive devem ser listados pelocontrole.

Hidden: define se os arquivos do tipo Hidden devem ser listados pelo controle.Normal: define se os arquivos do tipo Normal devem ser listados pelo controle.System: define se os arquivos do tipo System devem ser listados pelo controle.

Estas propriedades recebem apenas valores True/False. Aspropriedades Archive e Normal, por default, tem o valor True.

]Utilize a propriedade Pattern da FileListBox para definir quais os

tipos de arquivos que poderá ser selecionados.Para especificar mais de um arquivo, utilize a seguinte sintaxe:

*.bmp;*.wmf;*.ico (sem espaçamento entre os ponto-e-vírgula).

Page 12: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 50

Exercício 8: Programa paraProcura de Arquivos

Fazer um programa que permita a abertura de imagens.WMF, .ICO, .BMP, .JPG, .GIF. Utilize, para isso, os objetosDriveList, DirListBox e FileListBox.

Tela do Exercício.

Resolução do Exercício:

Form Caption = Procura de Arquivos Name = frmprocura

CommandCaption = &Sair

Name = cmdsairDriveList Name = drive1

Command Caption = Mostrar Figura Enabled = False Name = cmdfigura

FileListBoxName = arquivos

Pattern = *.bmp;*.wmf;*.ico

DirListBox Name = diretorios

Image Box Name = imagem

Stretch = True

Private Sub drive1_Change() diretorios.Path = drive1.driveEnd Sub

Private Sub diretorios_Change() arquivos.Path = diretorios.PathEnd Sub

Private Sub arquivos_Click() cmdfigura.Enabled = TrueEnd Sub

Private Sub cmdfigura_Click() ou Private Sub arquivos_Click() imagem.Picture=LoadPicture(arquivos.Path & "\" & arquivos.filename)End Sub

Private Sub cmdsair_Click() EndEnd Sub

Page 13: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 51

Formulários MDI (Multiple Document Interface)

A Interface para Multiplos Documentos é uma característica muitomarcante na programação em ambiente Windows. Esses tipos deFormulários criam uma relação hierárquia entre um formulário (que éo Formulário MDI-pai) e os outros (que são os formulários CHILD).Esses programas são como o Word, que permite que váriosdocumentos sejam abertos simultaneamente.

Características do Formulários MDI

Um Formulário Child é sempre exibido na área interna doformulário MDI-pai. Não é possível mostrá-lo fora desta área.

Quando esse formulário é minimizado, seu ícone aparecerá noFormulário MDI-pai e não como um botão na barra de tarefas.

Quando o Formulário MDI-pai é minimizado, todas as janelasexistentes nele são minimizadas e são exibidas como um botão nabarra de tarefas.

As barras de menus dos formulários Child são exibidos na barra demenus do formulário MDI-pai.

NOTAS:

Para criar uma aplicação MDI:1. Crie um novo Project2. A partir do Menu Project, escolha a opção Add MDI

Form.

Assim, você criou um formulário-pai. Para criar formulários-filhos, você precisa:

1. A partir do menu Project, escolha a opção Add Form.

Nas propriedades do Formulário-filho, configura a propriedadeMDI Child para True.

Para exibir todos os formulários Child do seu Project numFormulário MDI-pai, configure a propriedade AutoShow (doformulário MDI-pai) para True.

Em formulários do tipo MDI, não é possível “desenhar” controlesque não possuam a propriedade Align. Para “desenhar” objetos quenão possuam esta propriedade, desenhe um controle Picture noformulário e depois, dentro dele, desenhe os demais controles.Exemplo:

Page 14: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 52

Exercício 9: Crie um programa MDI

Crie um novo Project. Neste Project, crie um formulário-pai etrês formulários-filhos.

Tela do Exercício

Resolução do Exercício:

MDIFormCaption = Controle de EstoqueWindowState = MaximizedName = MDIControl_est

FormCaption = Formulário para InclusãoMDIChild = TrueName = FrmInclusão

FormCaption = Formulário para Alteração/ExclusãoMDIChild = TrueName = FrmAlt_Excl

FormCaption = Formulário para ConsultaMDIChild = TrueName = FrmConsulta

Page 15: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 53

Trabalhando com Menus

O VB possui uma ferramenta para a construção de menus: o“Menu Editor” . Utilize-o para criar menus customizados em suaaplicação.

Para construir um menu

Selecione um formulário e a partir do menu “Tools”, escolha aopção “Menu Editor”.

Janela do Menu Editor

NOTAS:

Cada item do seu Menu é um objeto. Os itens são inseridos deforma hierárquica.

Caption: Caixa de texto no qual você deve inserir o nome domenu que aparecerá na barra de menu.

Para criar uma barra para separadorar no menu, digite apenasum hífen.

Para permitir o acesso ao menu pelo teclado, antes da letra, digiteum &. Quando você estiver executando a aplicação, a letra estarásublinhada e o usuário pode acessar o menu pressionando ALT + aletra sublinhada.

Se você precisar de um & ( e comercial) em seu menu, digiteduas vezes o símbolo no Caption.

Name: Caixa de texto na qual você deve inserir um nome para oobjeto. Esse nome só será usado em programação, para se referir aoitem do menu. Não aparecein no menu.

Index: Nesta caixa de texto você define um valor numérico quedetermina a posição do controle com o vetor. Esta posição não érelativa a posição da tela.

Shortcut: neste item você define uma tecla de atalho para o seumenu.

HelpContextID: Nesta caixa de texto você define um valornumérico para o Context ID que é usado para encontrar o tópicoapropriado no arquivo de Help identificado pela propriedade HelpFile.

NegotiatePosition: neste item, você pode determinar se e como omenu aparecerá em determinado formulário.

Quando os Menus são criados, vãoaparecendo nesta caixa na ordemhierárquica em que foram criados.

Page 16: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 54

Para construir um menu (continuação)

Checked: define se deve ou não aparecer um check inicialmentedo lado esquerdo do item do menu.

Enabled: define se este menu deve ou não estar abilitado.

Visible: define se o item do menu deve estar visível ou não.

Use estes botões para mudar de nível em um menu domais alto até o mais baixo. Você pode criar até 4 níveis de submenusno VB.

Use estes botões para mudar de posição de um item demenu no mesmo nível (para cima ou para baixo na lista de menu).

Os seguintes botões são para:

• Next - é utilizado para adicionar novos itens dentro do seuMenu.

• Insert - é utilizado para inserir menus entre os menus jálistados.

• Delete - utilizado para remover itens do seu Menu.

NOTAS:

Para trabalhar com formulários em menus, é preciso utilizaralguns métodos para visualização:

O método Show é utilizado para visualizar um Form.<nome do formulário>.Show

Com método Hide, o Form permanece carregado na memória, masnão é visualizado pelo usuário.

<nome do Formulário>.Hide

Os comandos Load e Unload trazem e tiram um Form da memóriarespectivamente.

Load <nome do Formulário>Unload <nome do Formulário>

Page 17: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 55

Exercício 10: Construa um Menu

Para este exercício, abra o Project do exercício anterior(exercício 9). E construa um menu como a figura abaixo mostra:

Tela do Exercício

NOTAS:

Para mostrar os formulários de Inclusão, Alteração/Exclusão eConsulta a partir dos menus, utilize os métodos apresentados napágina anterior (54).

Page 18: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 56

Acessando um Banco de Dados através doDATA CONTROL.

O que é o Data Control?O Data Control permite a ligação do Form com um banco de

dados. Através desse objeto, você pode criar uma aplicação quemostre e atualize seus dados sem precisar programar.

Com o Data Control, é possível trabalhar com recordsets vazios,adicionar, editar e excluir registros. Em aplicações mais sofisticadas,você precisa tratar algumas condições de erros que o Data Control nãotrata.

Como funciona o Data Control?Uma vez que a aplicação for executada, o Data Control usa as

suas propriedades para abrir um banco de dados selecionado, paracriar um banco de dados e para criar um recordset.

O Data Control possui setas que permitem que você role pelosregistros da tabela aberta durante a execução do programa e umalegenda para descrever o conteúdo deste. Geralmente, essapropriedade é configurada com o nome do banco de dados que estásendo utilizado.

Propriedades do Data Control

Existem algumas propriedades que devem ser configuradas paraque o “Data Control” possa acessar seu banco de dados.

Principais Propriedades (para exibí-las, selecione o objeto e tecleF4):

DataBaseName: indica o nome e o caminho do seu banco dedados.

RecordSource: indica a tabela na qual o Data Control vai buscaros dados.

NOTAS:

Mais algumas propriedades da Caixa Texto

Depois de configurar as propriedades DataBaseName eRecordSource, é preciso vincular os dados trazidos pelo Data Controlcom algum dos objetos oferecidos pelo Visual Basic para avisualização.

Neste curso, estaremos utilizando a Caixa Texto para visualizar etrabalhar com os dados do Banco de Dados. Para isso, precisaremosmodificar 2 propriedades:

DataSource: Indica para a Caixa Texto qual Data Control possuio campo que você precisa visualizar.

DataField: Indicar qual campo do Data Control especificado pelapropriedade DataSource deve ser mostrado na Caixa Texto.

Obs.: Para visualizar as propriedades da Caixa Texto, selecione-ae pressione a tecla de função F4.

Page 19: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 57

O que é um Recordset?

É um conjunto de linhas e colunas que contém todos dados databela.

O Data Control que abre um banco de dados carrega esseRecordset.

Métodos do Recordset

MoveFirst: este método move do registro atual para o primeiroregistro da sua tabela.

MoveNext: este método move do registro atual para o próximoregistro.

MovePrevious: este método move do registro atual para o registroanterior.

MoveLast: move do registro atual para o último registro da tabela.

Sintaxe: data1.Recordset.Movefirst.

Para especificar um tipo de Recordset, configure a propriedadeRecordsetType para:

Recordset Type ValueTable 0Dynaset 1Snapshop 2

NOTAS:

BOF (Begin of File)Ana CamposJosé SilvaJoão CastroSueli PivaRute Salim

EOF (End of File)

Métodos para controlar o início e o fim do arquivo

BOF: controla o início do arquivo.EOF: controla o final do arquivo.

Sintaxe: data1.recordset.BOF (para controlar o início do arquivo). data1.recordset.EOF (para controlar o fim do arquivo).

Por exemplo:

Private Sub cmdProximo_Click()‘este botão tem a função de ‘navegar para o próximo registro‘do Data Control.If data1.recordset.EOF then

MsgBox “Final de Arquivo!!”Else

Data1.recordset.movenext‘MoveNext é o método utilizado para mover a posição do‘Data Control para o próximo registro.

End IfEnd Sub

Page 20: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 58

Acessando um Banco de Dados através doDATA CONTROL (continuação)

Propriedades para a manipulação de Final de arquivo (EOF -end of file) e início de arquivo (BOF - begin of file):

O objeto Data Control também gerencia o que acontece quandoencontra um Recordset vazio (sem registros). As propriedades quedevemos trabalhar para controlar as ações que o Data Control devetomar são:

BOFAction: indica qual a ação que o Data Control deve tomarquando a propriedade BOF for igual a TRUE, ou seja, quando forcomeço de arquivo. Valores possíveis:

0. Move First: o Data Control moverá o ponteiro para oprimeiro registro do arquivo.

1. BOF: o Data Control continua na posição de começo dearquivo.

EOFAction: indica qual a ação que o Data Control deve tomarquando a propriedade EOF for igual a TRUE, ou seja, quando for fimde arquivo. Valores possíveis:

0. Move Last: o Data Control moverá o ponteiro para oúltimo registro do arquivo.

1. EOF: o Data Control continua na posição de fim dearquivo.

2. AddNew: indica que o Data Control deve ir para um novoregistro.

NOTAS:

Page 21: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 59

Objetos Associados (Data Bound) ao Data Control

Os objetos associados – Data Bound – são utéis pois facilitam opreenchimento dos objetos da tela com o conteúdo do banco de dados.

Existem 3 tipos de controles deste tipo:

1. Data Bound Combo box: é semelhante a Caixa deCombinação, com a diferença que quando associada a um DataControl, é preenchida automaticamente, opcionalmente atualiza umcampo de outra tabela que esteja associando a outro Data Control.

Para que a Caixa de Combinação funcione como o esperado, épreciso configurar algumas propriedades que estão listadas a seguir:

DataSource Name: especifica qual o Data Control será atualizadoquando um seleção for realizada.

DataField Name: define qual o campo que será atualizado noRecordsetof especificado pelo DataSourcce.

RowSource Name: define qual o Data Control usado como origemdos itens para a lista.

ListField Name: define o nome do campo no Recordsetespecificado pelo propriedade RowSource que é usado para preenchera caixa combo.

BoundColumn Name: o nome do campo no Recordsetespecificado pelo RowSource para ser passado para a propriedadeDataField quando um seleção for feita.

BoundText Text: valor do campo da coluna associada. Quandouma seleção é feita, o valor é passado para atualizar o Recordsetespecificado pelo DataSource e DataField.

NOTAS:

2. Data Bound List: semelhante ao ListBox (Caixa deListagem). Pode ser preenchido automaticamente quando associado àum Data Control e opcionalmente, atualizar um Recordset de outroData Control. As propriedades da DBCombo Box valem para a DataBound List.

3. Data Bound Grid: permite a manipulação de uma sériede linhas e colunas representando um registro e campos do Recordsetdo Data Control.

O DBGrid é semelhante ao Controle Grid, a diferença é que com oDBGrid, não é preciso programar as linhas e colunas da tabela, épreciso apenas associar um Data Control ao objeto queautomaticamente, o Grid será preenchido

Page 22: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 60

Controle Status Bar

Este controle permite a criação de uma barra de Status para ousuário. A barra de Status é utilizada para emitir informações sobre atela atual aos usuários.

Exemplo da utilização da Status Bar.

Propriedades do Controle:

Página de Propriedades.

A guia mais importante para este treinamento, é a guia Panels poisé nela que estaremos definindo as mensagens que devem ser mostradaspara os usuários.

Principais propriedades:

Index: índice da mensagem na barra de status.Text: texto que deve aparecer para descrever o botão.Description: descrição da função do botão.ToolTipText: texto explicativo sobre o botão que deve

aparecer para o usuário.Key/Tag: texto para identificação do botão.Alignment: Define o alinhamento do texto da mensagem

dentro do Painel.

Para inserir um novo painel, utilize:Botão Insert Panel.

Para excluir um painel da ToolBar:Utilize o botão Remove Panel.

NOTAS:

Para exibir a página de propriedades de um controle, clique com obotão direito do mouse sobre o objeto selecionado e escolha a opçãoProperties.

Page 23: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 61

Controle SSTab

Este controle é utilizado para dividir a tela do formulário em váriasfunções.

Exemplo da utilização do SSTab.

Propriedades do Controle:

Página de Propriedades do Controle SSTab.

A guia mais importante para este treinamento, é a guia Generalpois é nela que estaremos definindo as guias da tabela.

Principais propriedades:

Current Tab: índice da mensagem na barra de status.Tab Caption: texto que deve aparecer para descrever o botão.Tab Count: Número de guias.TabPerRow: Número de guias por linha.Orientation: Define a orientação das guias da SSTab, se as

guias devem estar no topo, a esquerda, a direita ou no embaixo.0 – ssTabOrientationTop: Alinhamento das guias no Topo da tabela.1 – ssTabOrientationBottom: Alinhamento das guias embaixo da tabela.2 – ssTabOrientationLeft: Alinhamento das guias a Esquerda da tabela.3 – ssTabOrientationRight: Alinhamento das guias a Direita da tabela.

Style: estilo da tabela.

Para inserir uma nova guia:Incremente a propriedade Tab Count.

Para remover uma guia existente:Decremente a propriedade Tab Count.

NOTAS:Para exibir a página de propriedades de um controle, clique com o

botão direito do mouse sobre o objeto selecionado e escolha a opçãoProperties.

Page 24: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 62

Exercício 11: Criando uma Consulta

Criar um consulta que acesse os dados das tabelas de Clientes ePedidos existentes no banco de dados nwind.mdb. Para isso, abra oproject do exercício 10 e utilize o formulário de Consulta.

Resolução do Exercício:

FormName = FrmConsultaCaption = Formulário paraConsulta

Data ControlName = data_cliDatabaseName =...\nwind.mdbRecordsetType = DynasetRecordSource = Customers

Data ControlName = data_orderDatabaseName =...\nwind.mdbRecordsetType = DynasetRecordSource =

TextBoxDataSource = data_cliDataField = CompanyNameName = txtCompanyName

TextBoxDataSource = data_cliDataField = ContactNameName = txtContactName

TextBoxDataSource = data_cliDataField = ContactTitleName = txtContactTitle

TextBoxDataSource = data_cliDataField = AddressName = txtcAddress

TextBoxDataSource = data_cliDataField = CityName = txtCity

TextBoxDataSource = data_cliDataField = RegionName = txtRegion

TextBoxDataSource = data_cliDataField = CountryName = txtCountry

TextBoxDataSource = data_cliDataField = PostalCodeName = txtPostalCode

TextBoxDataSource = data_cliDataField = PhoneName = txtPhone

LabelAutoSize = TrueCaption = Cidade:

LabelAutoSize = TrueCaption = CEP:

LabelAutoSize = TrueCaption = Estado:

LabelAutoSize = TrueCaption = Telefone:

LabelAutoSize = TrueCaption = País:

LabelAutoSize = TrueCaption = FAX:

LabelAutoSize = TrueCaption = Nome do Cliente:

LabelAutoSize = TrueCaption = Companhia

DBGridName: DBGOrdersDataSource: data_orders

LabelAutoSize = TrueCaption = Cargo:

LabelAutoSize = TrueCaption = Endereço:

CommandButtonName = cmdSairCaption = &Sair

TextBoxDataSource = data_cliDataField = FaxName = txtFax Private Sub Data_Cli_Reposition()

Data_order.RecordSource = "Select * from Customers whereCustomerID = ’" & Data_cli.Recordset.Fields("CustomerID")

Data_order.RefreshEnd Sub

Page 25: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 63

Função InputBox

Uma caixa de diálogo que permite a entrada de dados pelo usuário.

Sua sintaxe:

<variavel_string> = InputBox(mensagem, título, valor Default)

Parâmetros da função:

Mensagem: é a expressão que descreve o que deve ser digitado.Título: é o título da caixa de diálogoValor Default: é o valor padrão da InputBox, se nada for digitado.

Exemplo de uma caixa de diálogo InputBox:

NOTAS:

Page 26: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 64

Localizando registros com o método SEEK

Para localizar registros em sua tabela aberta pelo Data Control,você pode utilizar o método SEEK, é o método de procura mais rápidopois utiliza um índice da tabela aberta do banco de dados.

Sua sintaxe é:

<Data_Control.name>.Recordset.seek <comparação>, <chave>

onde o parâmetro <comparação> é uma string de comparação epode ter os seguintes valores: “=”, “<=”, “>=”, “<>”, “<” ou “>”

e <chave> é o valor a ser procurado na tabela.

Para utilizar este método de procura, precisamos configuraralgumas propriedades para o Data Control:

- Tipo de Recordset a ser aberto necessariamente precisaser TABLE.

- Sua tabela deve ter um índice cadastrado pois teremos quedefinir um índice como chave da procura.

As propriedades que serão alteradas são:

- RecordsetType: indica o tipo de recordset a ser aberto.- Index: indica qual é o índice a ser utilizado para a busca.

Por exemplo:

Data_produto.recordset.index = “cod_produto” ‘cod_produto é o nome do índice existente na tabela ProdutosData_produto.recordset.seek “=”, txtcod_produto.text‘Será procurado na tabela o código do produto que for igual ao

código digitado na caixa de texto txtcod_produto.text.

NOTAS:

Esse método, por utilizar um índice da tabela, acessará o dadoprocurado diretamente, não precisando percorrer toda a tabelaprocurando pelo valor especificado pelo argumento. Se encontrar odado, posicionará o seu Data Control no registro.

Para testar se o registro foi ou não encontrado, utilize o métodoNoMatch. Por exemplo:

If data_produto.Recordset.NoMatch then<instrução>

Ou seja, se o registro não existir, então, podemos incluí-lo.

If NOT data_produto.Recordset.NoMatch then<instrução>

Quer dizer que o registro existe, então, você poderá trazê-lo para asua tela de consulta ou não permitir a entrada de um novo registro,pois ele já existe.

Page 27: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 65

Exercício 12: Localizando Registros em um Bancode Dados

Utilizando o exercício anterior, crie um botão para localizarregistros na base pelo Nome do Cliente (use o método SEEK).

Resolução do Exercício:

Command Button Name = cmdLocalizar Caption = &Localizar

Private Sub cmdLocalizar_Click() Dim ProcNome As String

ProcNome = InputBox$("Digite o nome a ser localizado:", "Localizando Registros ...")

If ProcNome <> "" Then Data_cli.Recordset.Index = "Nome" Data_cli.Recordset.Seek "=", ProcNome If Data_cli.Recordset.NoMatch Then MsgBox ("Nome não localizado!!!") Data_cli.Recordset.MoveFirst End If End IfEnd Sub

Page 28: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 66

Métodos para Inclusão, Alteração e Exclusão emBanco de dados

Quando utilizamos o Data Control, os métodos existentes paraestas operações, são:

Para Inclusão basta usar a seguinte sintaxe:<data_control.name>.recordset.AddNew

O método AddNew "prepara" a tabela para receber um novoregistro. Se este a tabela tiver uma chave primária, e o você tentarincluir um registro que já exista nela, um erro será causado. Maisadiante veremos como tratar esses erros no VB. No final da apostilatemos uma lista de erros gerados pelo VB.

Para alteração:< data_control.name>.recordset.Edit

Com este método, você prepara o registro atual para edição.

Para efetuar as operações de Inclusão e Alteração use:<data_control.name>.recordset.Update

Para exclusão:<data_control.name>.Recordset.Delete

Utilize o método Refresh para atualizar os dados tabela aberta queforam atualizados com as operações de inclusão, alteração e exclusão.

NOTAS:

Page 29: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 67

Localizando registros com o método FIND

Para localizar registros em sua tabela aberta pelo Data Control,você pode utilizar o método FindFirst (significa "Encontrar oPrimeiro”). Sua sintaxe é:

<Data_Control.name>.Recordset.FindFirst “campo da tabela = ” & caixa_de_texto.text

Por exemplo:Data_produto.recordset.findefirst “cod_produto = “ & text1.text

Esse método percorrerá toda a sua tabela procurando pelo valorespecificado pelo argumento ("cod_produto = " & text1.text, ondecod_produto é o nome do campo da tabela e text1.text é o nome doobjeto Caixa Texto da tela do seu formulário) e posicionará o seuData Control no registro encontrado.

Para testar se o registro foi ou não encontrado, utilize o métodoNoMatch. Por exemplo:

If data_produto.Recordset.NoMatch then<instrução>

Ou seja, se o registro não existir, então, podemos incluí-lo.

If NOT data_produto.Recordset.NoMatch then<instrução>

Quer dizer que o registro existe, então, você poderá trazê-lo para asua tela de consulta ou não permitir a entrada de um novo registro,pois ele já existe.

NOTAS:

Atribuindo campos da tabela a Caixa Textos da tela doFormulário.

A sintaxe para atribuir os campos da tabela aberta pela DataControl, é a seguinte:

Data1.recordset("nome_campo_tabela")Por exemplo:Text1.text = data1.recordset("cod_produto")

Com esta linha, você consegue visualizar os dados do campo databela: cod_produto.

Page 30: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 68

Exercício 13: Inclusão de Novos Clientes

Fazer uma aplicação para inclusão de novos clientes. Para isso, abra oproject do exercício 10 e utilize o formulário de inclusão.

Tela do Exercício.

Resolução do Exercício:FormName = FrmInclusaoCaption = Inclusão de

Novos Clientes

Data ControlName = data_cliDatabaseName =

...\nwind.mdbRecordsetType = DynasetRecordSource = Customers

TextBoxName = txtFaxText = (BRANCO)

TextBoxName = txtCompanyNameText = (BRANCO)

TextBoxName = txtContactNameText = (BRANCO)

TextBoxName = txtContactTitleText = (BRANCO)

TextBoxName = txtcAddressText = (BRANCO)

TextBoxName = txtCityText = (BRANCO)

TextBoxName = txtRegionText = (BRANCO)

TextBoxName = txtCountryText = (BRANCO)

TextBoxName = txtPostalCodeText = (BRANCO)

TextBoxName = txtPhoneText = (BRANCO)

TextBoxName = txtcod_cliText = (BRANCO)

LabelAutoSize = TrueCaption = CEP:

LabelAutoSize = TrueCaption = Estado:

LabelAutoSize = TrueCaption = Telefone:

LabelAutoSize = TrueCaption = País:

LabelAutoSize = TrueCaption = FAX:

LabelAutoSize = TrueCaption = Nome do Cliente:

LabelAutoSize = TrueCaption = Companhia

LabelAutoSize = TrueCaption = Cidade:

LabelAutoSize = TrueCaption = Cargo:

LabelAutoSize = TrueCaption = Endereço:

LabelAutoSize = TrueCaption = Código do Cliente::

CommandButtonName = cmdSairCaption = &Sair

CommandButtonName = cmdIncluirCaption = &Incluir

Sub Limpa_campos() txtcod_cli.Text = "" txtFax.Text = "" txtCompanyName.Text = "" txtContactName.Text = "" txtContactTitle.Text = "" txtCountry.Text = "" txtPostalCode.Text = "" txtAddress.Text = "" txtCity.Text = "" txtRegion.Text = "" txtPhone.Text = ""End Sub

Private Sub cmdincluir_Click() data_cli.Recordset.FindFirst "CustomerID = ‘" & txtcod_cli.Text & “’” If data_cli.Recordset.NoMatch Then data_cli.Recordset.AddNew data_cli.Recordset("CustomerID") = txtcod_cli.Text data_cli.Recordset("CompanyName") = txtCompanyName.Text data_cli.Recordset("ContactName") = txtContactName.Text data_cli.Recordset("ContactTitle") = txtContactName.Text data_cli.Recordset(“Contry”) = txtCountry.Text data_cli.Recordset(“PostalCode”) = txtPostalCode.Text data_cli.Recordset(“Address”) = txtAddress.Text data_cli.Recordset(“City”) = txtCity.Text data_cli.Recordset(“Region”) = txtRegion.Text data_cli.Recordset(“Phone”) = txtPhone.Text data_cli.Recordset(“Fax”) = txtFax.text data_cli.Recordset.Update Else MsgBox "Cliente já cadastrado!!!" End If Limpa_camposEnd Sub

Page 31: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 69

Exercício 14 : Alteração e Exclusão de Produtos

Fazer uma aplicação para alteração e exclusão de produtos em umalmoxarifado. Para isso, abra o project do exercício 10 e utilize oformulário de alteração/exclusão.

Tela do exercício em tempo de Design.

Private Sub cmdexcluir_Click() data_cli.Recordset.Delete data_cli.Refresh Limpa_camposEnd Sub

Sub Limpa_campos() txtcod_cli.Text = "" txtFax.Text = "" txtCompanyName.Text = "" txtContactName.Text = "" txtContactTitle.Text = "" txtCountry.Text = "" txtPostalCode.Text = "" txtAddress.Text = "" txtCity.Text = "" txtRegion.Text = "" txtPhone.Text = ""End Sub

Resolução do Exercício:

FormName = FrmAltExclCaption = Inclusão de NovosClientes

Data ControlName = data_cliDatabaseName = ...\nwind.mdbRecordsetType = DynasetRecordSource = Customers

TextBoxName = txtFaxText = (BRANCO)

TextBoxName = txtCompanyNameText = (BRANCO)

TextBoxName = txtContactNameText = (BRANCO)

TextBoxName = txtContactTitleText = (BRANCO)

TextBoxName = txtcAddressText = (BRANCO)

TextBoxName = txtCityText = (BRANCO)

TextBoxName = txtRegionText = (BRANCO)

TextBoxName = txtCountryText = (BRANCO)

TextBoxName = txtPostalCodeText = (BRANCO)

TextBoxName = txtPhoneText = (BRANCO)

TextBoxName = txtcod_cliText = (BRANCO)

LabelAutoSize = TrueCaption = CEP:

LabelAutoSize = TrueCaption = Estado:

LabelAutoSize = TrueCaption = Telefone:

LabelAutoSize = TrueCaption = País:

LabelAutoSize = TrueCaption = FAX:

LabelAutoSize = TrueCaption = Nome do Cliente:

LabelAutoSize = TrueCaption = Companhia

LabelAutoSize = TrueCaption = Cidade:

LabelAutoSize = TrueCaption = Cargo:

LabelAutoSize = TrueCaption = Endereço:

LabelAutoSize = TrueCaption = Código do Cliente::

CommandButtonName = cmdSairCaption = &Sair

CommandButtonName = cmdIncluirCaption = &Incluir

Page 32: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 70

Resolução do Exercício:

Private Sub cmdalterar_Click() data_cli.Recordset.Edit data_cli.Recordset("CostumerID”) = txtcod_cli.Text data_cli.Recordset("Fax") = txtFax.Text data_cli.Recordset("CompanyName") = txtCompanyName.Text data_cli.Recordset("ContactName") = txtContactName.Text data_cli.Recordset("ContactTite") = txtContactTitle.Text data_cli.Recordset("Country") = txtCountry.Text data_cli.Recordset("PostalCode") = txtPostalCode.Text data_cli.Recordset("Address") = txtAddress.Text data_cli.Recordset("City") = txtCity.Text data_cli.Recordset("Region") = txtRegion.Text data_cli.Recordset("Phone”) = txtPhone.Text data_cli.Recordset.Update Limpa_camposEnd Sub

Private Sub txtcod_prod_LostFocus() data_cli.Recordset.FindFirst "CostumerID = ‘" + txtcod_cli.Text If Not data_cli.Recordset.NoMatch Then txtcod_cli.Text = data_cli.Recordset("CostumerID”) txtFax.Text = data_cli.Recordset("Fax") txtCompanyName.Text = data_cli.Recordset("CompanyName") txtContactName.Text = data_cli.Recordset("ContactName") txtContactTitle.Text = data_cli.Recordset("ContactTite") txtCountry.Text = data_cli.Recordset("Country") txtPostalCode.Text = data_cli.Recordset("PostalCode") txtAddress.Text = data_cli.Recordset("Address") txtCity.Text = data_cli.Recordset("City") txtRegion.Text = data_cli.Recordset("Region") txtPhone.Text = data_cli.Recordset("Phone”) txtcod_prod.Enabled = False Else MsgBox "Cliente não está cadastrado!!!" txtcod_cli.Enabled = True txtcod_cli.SetFocus End IfEnd Sub

Page 33: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 71

Códigos de Erros

Para evitar que o VB interrompa seu programa quando um erroocorrer, adicione a instrução On Error depois da declaração do Sub.

A instrução On Error deve ser seguida pelos comandos:

- Resume Next- GoTo <label>

Resume Next

Com essa instrução, a execução do programa volta para ainstrução imediatamente posterior àquela em que o erro foi detectadopelo VB.

GoTo <label>

Quando acontece um erro, o VB desvia o fluxo de execuçãopara um label definido no módulo.

Exemplo:Sub Form_Click()

On Error GoTo ErrorHandler...Exit Sub

ErrorHandler: ‘LabelMsgBox = “Ocorreu o Erro “ & Err & “.”

Resume NextEnd Sub

NOTAS:

Page 34: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 72

Variáveis e Constantes no VB

Tabela de Cores para a Função QBCOLOR( )

Preto 0 Cinza 8Azul 1 Azul claro 9Verde 2 Verde claro 10Ciano 3 Ciano claro 11Vermelho 4 Vermelho claro 12Magenta 5 Magenta claro 13Amarelo 6 Amarelo claro 14Branco 7 Branco brilhante 15

Constantes para Botões

Constante Valor Botões MostradosVbOKOnly 0 OKVbOKCancel 1 OK, CancelarVbAbortRetryIgnore 2 Anular, Repetir, IgnorarVbYesNoCancel 3 Sim, Não, CancelarVbYesNo 4 Sim, NãovbRetryCancel 5 Repetir, Cancelar

Constantes de Ícones

Constante Valor Ïcone MostradoVbCritical 16 Ícone de StopVbQuestion 32 Ícone de ponto de interrogaçãoVbExclamation 48 Ícone de ponto de exclamaçãovbInformation 64 Ícone de Informação

Constantes de Saída da Função MsgBox( )

Constante Valor Botão ClicadoVbDOK 1 Botão de OK foi clicadoVbCancel 2 Botão de Cancelar foi clicadoVbAbort 3 Botão de Anular foi clicadoVbRetry 4 Botão de Repetir foi clicadoVbIgnore 5 Botão de Ignorar foi clicadoVbYes 6 Botão de Sim foi clicadoVbNo 7 Botão de Não foi clicado

Page 35: Visual Basic 5.0 (exercícios)

Centro de ComputaçãoGerência de Atendimento ao Cliente (e-mail [email protected])

Visual Basic 5.0 73

Dicas para Consulta

Links interessantes:

http://www.microsoft.com/vbasichttp://www.forumaccess.com/http://www.bowmansoft.com/vbwm/http://www.vbonline.com/http://www.viquevb.com/http://www.developersmagazine.com.br/

& Livros/Revistas:

Revista Fórum Access /Visual Basic/ OfficeRevista Developers – Revista brasileira para desenvolvedores.