Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.

br)

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

Resolução do Exercício:
Form Caption =Formulário do Exercício Name = Frmexerc TextBox Name = txtresult Text = (BRANCO) HScrollBar Name = hScrPrim_valor LargeChange = 10 Max = 1000 CommandButton Caption = &Calcular Name = cmdcalcular OptionButton Caption = Subtração Name = OptSub OptionButton Caption = Divisão Name = OptDiv TextBox Name = txtprim_num Text = (BRANCO) Label AutoSize = True Caption = Resultado da Operação: Name = lblresult Frame Caption = Operações Name = Frame2 TextBox Name = txtseg_num Text = (BRANCO) HScrollBar LargeChange = 10 Max = 1000 Name = HScrSeg_valor CommandButton Caption = &Sair Name = cmdsair OptionButton Caption = Soma Name = OptSoma OptionButton Caption = Multiplicação Name = OptMult Label AutoSize = True Caption = Primeiro Valor: Name = lblprim_valor Label AutoSize = True Caption = Segundo Valor: Name = lblseg_valor Private Sub cmdsair_Click() End End Sub Private Sub HScrSeg_valor_Scroll() txtseg_num = HScrSeg_valor.Value End Sub

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

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

Visual Basic 5.0

39

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Criando Efeitos Especiais em Forms
No VB, existem controles que permite a criação de imagens geométricas. Controle Line é usado para criar uma linha em seu formulário (form). Suas propriedades mais importantes são: BorderWidth, BorderStyle, BorderColor, Visible. Controle Shape é usado para desenhar uma figura geométrica em seu formulário (form). É possível selecionar o formato dessa 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 New Project). No formulário, desenhe os controles Line, Shape e modifique suas propriedades.

Visual Basic 5.0

40

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Funções do Mouse
O VB permite que você utilize o controle Image para criar botões de 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 ou está 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 ou não. Valor que recebe é True se for configurar o texto para negrito e False, caso contrário. FontItalic: define se o texto da caixa de texto deve ser itálico ou não. Valor que recebe é True se for configurar o texto para itálico e False, caso contrário. FontUnderline: define se o texto da caixa de texto deve ser sublinhado ou não. Valor que recebe é True se for configurar o texto para sublinhado e False caso contrário. Image Box Tag: utiliza-se esta propriedade para identificar um objeto. No próximo exercício, esta propriedade será utilizada para identificar o status do botão.

NOTAS:
Para criarmos esses tipos de botões, estaremos trabalhando com o controle Image Box que mostrará a imagem correspondente a ação que você tomou. Por exemplo, se você pressionou o botão, aparecerá a imagem do botão pressionado. É possível alterar os estados dos botões através da procedure de evento MouseDown, por exemplo.

Visual Basic 5.0

41

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Resolução do Exercício: Exercício 5: Criando botões Gráficos
Faça um programa que permita que o usuário digite seu texto numa caixa de texto e formate-o (Negrito, Itálico e Sublinhado) da maneira que desejar.
Form Caption = Formulário para Exercício Name = frmexerc TextBox MultiLine = True Name = txttexto Label AutoSize = 'True Caption = Clique nos botões para formatar o texto. Name = Label1 Image Image Name = Image2 Name = Image1 Picture = ...\bld-up.bmp Picture = ...\itl-up.bmp Tag = Para cima Tag = Para cima Visible = False Visible = False Image Image Name = Image5 Name = Image4
Picture = ...\bld-dwn.bmp

Image Name = Image3
Picture = ...\ulin-up.bmp

Picture =...\itl-dwn.bmp

Tag = Para cima Visible = False Image Name = Image6
Picture = ...\ulin-dwn.bmp

Tela do Exercício
Private Sub Image7_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Tag = Para baixo Visible = False Image Picture = Tag = Para cima Name = Image9

Tag = Para baixo Visible = False Image Picture= Tag = Para cima Name = Image7 CommandButton Caption = &Sair Name = cmdsair

Tag = Para baixo Visible = False Image Picture = Tag = Para cima Name = Image8

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

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 If End Sub

Visual Basic 5.0

42

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Arrastar-e-Soltar (Drag and Drop)
Em aplicações desenvolvidas em Visual Basic, você pode utilizar muitos recursos para facilitar e “agradar” o usuário. Uma dessas características do VB, é o Drag-and-Drop que permite que o usuá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 sua aplicação. Propriedades DragMode Permite que seu objeto seja arrastado automaticamente ou manualmente Especifica qual o ícone que deve ser mostrado quando o objeto é arrastado. Reconhece quando um controle é solto em outro objeto. Reconhece quando um controle é arrastado em cima de outro. Inicia ou termina a ação de arrastar manualmente.

NOTAS:
Se você configurar a propriedade DragMode do objeto para Manual, 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 VbCancel VbBeginDrag VbEndGrag Valor 0 1 2 Ação Cancela a operação Drag-and-Drop Inicia a operação de arrastar. Termina a operação para arrastar e solta o objeto.

DragIcon

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. Por exemplo: source.visible = false. X, Y: que são coordenadas. X é a coordenada horizontal e Y é a coordenada vertical.

Eventos

DragDrop

DragOver

Métodos

Drag

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

Visual Basic 5.0

43

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Exercício 6: Teste Arrastar-e-Soltar
Fazer um programa para testar o Arratar-e-Soltar no VB. Esse programa deve permitir que você arraste os objetos para a lata de lixo e depois coloque fogo.

Resolução do Exercício:
Form Name = FormDrag_Drop Caption = Teste Arrastar-e-Soltar Image Name = Image6 Picture = ..\trash02b.ico Stretch = True Visible = False Image Name = Image3 DragIcon = ..\fire.ico DragMode = Automatic Picture = ..\fire.ico Stretch = True Tag = Fogo Source.Visible = False If Source.Tag = "Fogo" Then Image5.Picture = Image6.Picture End If End Sub Image Name = Image5 Picture = ..\trash02a.ico Stretch = True Image Name = Image4 DragIcon = ..\point11.ico DragMode = Automatic Picture = ...\point11.ico Stretch = True Image Name= Image2 DragIcon = ..\gaspump.ico DragMode = Automatic Picture = ..\gaspump.ico Stretch = True

Tela do exercício.

Private Sub Image5_DragDrop(Source As Control, X As Single, Y As Single)

Visual Basic 5.0

44

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

NOTAS: CommonDialog
Esse objeto permite exibir cinco caixas de diálogo nos padrões do Windows. Apenas uma caixa de diálogo pode ser exibida a partir de um objeto Common Dialog. Para exibir uma determinada caixa de diálogo, deve ser utilizado o método correspondente à caixa desejada. Os conteúdos das caixas são controlados através de suas propriedades, ou seja, quando uma caixa é preenchida, os resultados sã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 Flags: define qual o tipo da caixa Color deverá ser exibida. Os Flags podem ser: &H1&: Exibe a CommonDialog Cor padrão, com as cores personalizadas 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 dos objetos do VB que suportam cor. É possível modificar a cor do fundo de um formulário, as cores das formas no formulário e as cores de fundo dos objetos. Um objeto CommonDialog não é visível ao usuário em tempo de execuçã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:

Visual Basic 5.0

45

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Controle ImageList
O controle ImageList é utilizado para armazenar uma lista de imagens para serem utilizadas nas barras de ferramentas, animações e aplicativos. Cada ImageList é responsável pela criação de apenas uma lista de imagens. Sua capacidade é limitada pela mémoria de seu micro.

A guia Images é a parte principal para a criação da lista de imagens, pois é nela que se encontram as propriedades para inserção da 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. Images Mostra 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:
Página de Propriedades. Para exibir a Página de Propriedades do ImageList, selecione o objeto no formulário, clique-o com o botão direito do mouse e escolha a opção propriedades.

Visual Basic 5.0

46

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Controle Toolbar
Este controle é utilizado para criar barras de ferramentas padrão do Windows 95.

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:

Página de Propriedades. Para exibir a Página de Propriedades do ToolBar, selecione o objeto no formulário, clique-o com o botão direito do mouse e escolha a 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.

Visual Basic 5.0

47

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Exercício 7: Utilizando as Common Dialog
Fazer uma aplicação que permita a abertura de imagens e a configuração do ambiente de trabalho pelo usuário (cores do Formulário). Deve tambem limpar a tela da Imagem quando o usuário desejar.

Resolução do Exercício:
Form Name = Form1 Caption = Abrindo Figuras ToolBar Name = Toolbar1 CommonDialog Name = CommonDialog1 Imagem Box Name = Image1 Image List Name = ImageList1

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"

Tela do exercício em tempo de Design.

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 Select End Sub

Visual Basic 5.0

48

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Acesso ao Sistema de Arquivos
O VB possui controles que permitem o acesso ao seu sistema de arquivos, ou seja, são controles que permitem fazer a pesquisa em diretórios e drives e a seleção de arquivos. Os controles são: Controle DriveList: permite a pesquisa dos drives válidos em seu sistema. Controle DirListBox: permite a pesquisa em pastas (diretórios) existentes no drive selecionado.

NOTAS:
Eventos mais utilizados: Para DirListBox Change() – 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 DriveList Change() – Modifica o drive selecionado. Ocorre quando o usuário seleciona um novo diretório ou quando você muda a propriedade Drive através de programação. Para FileListBox Click: 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 pelo controle. 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.

Controle FileListBox: permite a seleção de um arquivo específico em uma pasta (diretório). Trabalhando com as Propriedades: Existem propriedades que não podem ser configuradas em tempo de design do programa, ou seja, não é possível configurá-las utilizando a janela Properties (Janela de Propriedades). Elas só podem ser configuradas em tempo do execução: Drive: recebe a letra do drive selecionado (utilizado pelo controle DriveListBox). Path: recebe o nome do diretório selecionado (utilizado pelos controles DirectoryListBox e FileListBox). FileName: quando um nome de arquivo é selecionado, o VB o coloca nesta propriedade (utilizado pelo controle FileListBox).

Estas propriedades recebem apenas valores True/False. As propriedades 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).

Visual Basic 5.0

49

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Exercício 8: Programa para Procura de Arquivos
Fazer um programa que permita a abertura de imagens .WMF, .ICO, .BMP, .JPG, .GIF. Utilize, para isso, os objetos DriveList, DirListBox e FileListBox.

Resolução do Exercício:
Form Caption = Procura de Arquivos Name = frmprocura DriveList Name = drive1 Command Caption = &Sair Name = cmdsair Command Caption = Mostrar Figura Enabled = False Name = cmdfigura DirListBox Name = diretorios

FileListBox Name = arquivos Pattern = *.bmp;*.wmf;*.ico Image Box Name = imagem Stretch = True Private Sub drive1_Change() diretorios.Path = drive1.drive End Sub Private Sub diretorios_Change() arquivos.Path = diretorios.Path End Sub Tela do Exercício. Private Sub arquivos_Click() cmdfigura.Enabled = True End Sub

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

End Sub Private Sub cmdsair_Click() End End Sub

Visual Basic 5.0

50

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Formulários MDI (Multiple Document Interface)
A Interface para Multiplos Documentos é uma característica muito marcante na programação em ambiente Windows. Esses tipos de Formulá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ários documentos sejam abertos simultaneamente. Características do Formulários MDI Um Formulário Child é sempre exibido na área interna do formulário MDI-pai. Não é possível mostrá-lo fora desta área. Quando esse formulário é minimizado, seu ícone aparecerá no Formulário MDI-pai e não como um botão na barra de tarefas. Quando o Formulário MDI-pai é minimizado, todas as janelas existentes nele são minimizadas e são exibidas como um botão na barra de tarefas. As barras de menus dos formulários Child são exibidos na barra de menus do formulário MDI-pai.

NOTAS:
Para criar uma aplicação MDI: 1. Crie um novo Project 2. A partir do Menu Project, escolha a opção Add MDI Form. Assim, você criou um formulário-pai. Para criar formuláriosfilhos, você precisa: 1. A partir do menu Project, escolha a opção Add Form. Nas propriedades do Formulário-filho, configura a propriedade MDI Child para True. Para exibir todos os formulários Child do seu Project num Formulário MDI-pai, configure a propriedade AutoShow (do formulário MDI-pai) para True. Em formulários do tipo MDI, não é possível “desenhar” controles que não possuam a propriedade Align. Para “desenhar” objetos que não possuam esta propriedade, desenhe um controle Picture no formulário e depois, dentro dele, desenhe os demais controles. Exemplo:

Visual Basic 5.0

51

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Exercício 9: Crie um programa MDI
Crie um novo Project. Neste Project, crie um formulário-pai e três formulários-filhos.

Resolução do Exercício:
MDIForm Caption = Controle de Estoque WindowState = Maximized Name = MDIControl_est Form Caption = Formulário para Inclusão MDIChild = True Name = FrmInclusão Form Caption = Formulário para Alteração/Exclusão MDIChild = True Name = FrmAlt_Excl Form Caption = Formulário para Consulta MDIChild = True Name = FrmConsulta

Tela do Exercício

Visual Basic 5.0

52

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Trabalhando com Menus
O VB possui uma ferramenta para a construção de menus: o “Menu Editor” . Utilize-o para criar menus customizados em sua aplicação. Para construir um menu Selecione um formulário e a partir do menu “Tools”, escolha a opção “Menu Editor”.

NOTAS:
Cada item do seu Menu é um objeto. Os itens são inseridos de forma hierárquica. Caption: Caixa de texto no qual você deve inserir o nome do menu que aparecerá na barra de menu. Para criar uma barra para separadorar no menu, digite apenas um hífen. Para permitir o acesso ao menu pelo teclado, antes da letra, digite um &. Quando você estiver executando a aplicação, a letra estará sublinhada e o usuário pode acessar o menu pressionando ALT + a letra sublinhada. Se você precisar de um & ( e comercial) em seu menu, digite duas vezes o símbolo no Caption. Name: Caixa de texto na qual você deve inserir um nome para o objeto. Esse nome só será usado em programação, para se referir ao item do menu. Não aparecein no menu. Index: Nesta caixa de texto você define um valor numérico que determina 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 seu menu. HelpContextID: Nesta caixa de texto você define um valor numérico para o Context ID que é usado para encontrar o tópico apropriado no arquivo de Help identificado pela propriedade HelpFile. NegotiatePosition: neste item, você pode determinar se e como o menu aparecerá em determinado formulário.

Quando os Menus são criados, vão aparecendo nesta caixa na ordem hierárquica em que foram criados.

Janela do Menu Editor

Visual Basic 5.0

53

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Para construir um menu (continuação) NOTAS:
Checked: define se deve ou não aparecer um check inicialmente do 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 do mais alto até o mais baixo. Você pode criar até 4 níveis de submenus no VB. Use estes botões para mudar de posição de um item de menu no mesmo nível (para cima ou para baixo na lista de menu). Os seguintes botões são para: 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, mas não é visualizado pelo usuário. <nome do Formulário>.Hide Os comandos Load e Unload trazem e tiram um Form da memória respectivamente. Load <nome do Formulário> Unload <nome do Formulário> Para trabalhar com formulários em menus, é preciso utilizar alguns métodos para visualização:

• • •

Next - é utilizado para adicionar novos itens dentro do seu Menu. Insert - é utilizado para inserir menus entre os menus já listados. Delete - utilizado para remover itens do seu Menu.

Visual Basic 5.0

54

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

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:

NOTAS:
Para mostrar os formulários de Inclusão, Alteração/Exclusão e Consulta a partir dos menus, utilize os métodos apresentados na página anterior (54).

Tela do Exercício

Visual Basic 5.0

55

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Acessando um Banco de Dados através do DATA 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 que mostre 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ão trata. 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, para criar um banco de dados e para criar um recordset.

NOTAS:
Mais algumas propriedades da Caixa Texto Depois de configurar as propriedades DataBaseName e RecordSource, é preciso vincular os dados trazidos pelo Data Control com algum dos objetos oferecidos pelo Visual Basic para a visualização. Neste curso, estaremos utilizando a Caixa Texto para visualizar e trabalhar com os dados do Banco de Dados. Para isso, precisaremos modificar 2 propriedades: DataSource: Indica para a Caixa Texto qual Data Control possui o campo que você precisa visualizar. DataField: Indicar qual campo do Data Control especificado pela propriedade DataSource deve ser mostrado na Caixa Texto. Obs.: Para visualizar as propriedades da Caixa Texto, selecione-a e pressione a tecla de função F4.

O Data Control possui setas que permitem que você role pelos registros da tabela aberta durante a execução do programa e uma legenda para descrever o conteúdo deste. Geralmente, essa propriedade é configurada com o nome do banco de dados que está sendo utilizado. Propriedades do Data Control Existem algumas propriedades que devem ser configuradas para que o “Data Control” possa acessar seu banco de dados. Principais Propriedades (para exibí-las, selecione o objeto e tecle F4): DataBaseName: indica o nome e o caminho do seu banco de dados. RecordSource: indica a tabela na qual o Data Control vai buscar os dados.

Visual Basic 5.0

56

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

O que é um Recordset? É um conjunto de linhas e colunas que contém todos dados da tabela. O Data Control que abre um banco de dados carrega esse Recordset. Métodos do Recordset MoveFirst: este método move do registro atual para o primeiro registro da sua tabela. MoveNext: este método move do registro atual para o próximo registro. MovePrevious: este método move do registro atual para o registro anterior. MoveLast: move do registro atual para o último registro da tabela. Sintaxe: data1.Recordset.Movefirst. Para especificar um tipo de Recordset, configure a propriedade RecordsetType para: Recordset Type Table Dynaset Snapshop Value 0 1 2

NOTAS:
BOF (Begin of File) Ana Campos José Silva João Castro Sueli Piva Rute 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 If End Sub

Visual Basic 5.0

57

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Acessando um Banco de Dados através do DATA 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 quando encontra um Recordset vazio (sem registros). As propriedades que devemos trabalhar para controlar as ações que o Data Control deve tomar são: BOFAction: indica qual a ação que o Data Control deve tomar quando a propriedade BOF for igual a TRUE, ou seja, quando for começo de arquivo. Valores possíveis: 0. Move First: o Data Control moverá o ponteiro para o primeiro registro do arquivo. 1. BOF: o Data Control continua na posição de começo de arquivo. EOFAction: indica qual a ação que o Data Control deve tomar quando a propriedade EOF for igual a TRUE, ou seja, quando for fim de 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 de arquivo. 2. AddNew: indica que o Data Control deve ir para um novo registro.

NOTAS:

Visual Basic 5.0

58

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Objetos Associados (Data Bound) ao Data Control
Os objetos associados – Data Bound – são utéis pois facilitam o preenchimento dos objetos da tela com o conteúdo do banco de dados. Existem 3 tipos de controles deste tipo:

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

1. Data Bound Combo box: é semelhante a Caixa de Combinação, com a diferença que quando associada a um Data Control, é preenchida automaticamente, opcionalmente atualiza um campo 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á atualizado quando um seleção for realizada. DataField Name: define qual o campo que será atualizado no Recordsetof especificado pelo DataSourcce. RowSource Name: define qual o Data Control usado como origem dos itens para a lista. ListField Name: define o nome do campo no Recordset especificado pelo propriedade RowSource que é usado para preencher a caixa combo. BoundColumn Name: o nome do campo no Recordset especificado pelo RowSource para ser passado para a propriedade DataField quando um seleção for feita. BoundText Text: valor do campo da coluna associada. Quando uma seleção é feita, o valor é passado para atualizar o Recordset especificado pelo DataSource e DataField.

3. Data Bound Grid: permite a manipulação de uma série de linhas e colunas representando um registro e campos do Recordset do Data Control. O DBGrid é semelhante ao Controle Grid, a diferença é que com o DBGrid, não é preciso programar as linhas e colunas da tabela, é preciso apenas associar um Data Control ao objeto que automaticamente, o Grid será preenchido

Visual Basic 5.0

59

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

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

A guia mais importante para este treinamento, é a guia Panels pois é nela que estaremos definindo as mensagens que devem ser mostradas para 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.

Exemplo da utilização da Status Bar. Propriedades do Controle:

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 o botão direito do mouse sobre o objeto selecionado e escolha a opção Properties.

Página de Propriedades.

Visual Basic 5.0

60

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Controle SSTab
Este controle é utilizado para dividir a tela do formulário em várias funções.

A guia mais importante para este treinamento, é a guia General pois é 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. Exemplo da utilização do SSTab. Propriedades do Controle:
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ção Properties.

Página de Propriedades do Controle SSTab.

Visual Basic 5.0

61

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Resolução do Exercício: Exercício 11: Criando uma Consulta
Criar um consulta que acesse os dados das tabelas de Clientes e Pedidos existentes no banco de dados nwind.mdb. Para isso, abra o project do exercício 10 e utilize o formulário de Consulta.
Form Data Control Data Control Name = FrmConsulta Name = data_cli Name = data_order Caption = Formulário para DatabaseName = DatabaseName = Consulta ...\nwind.mdb ...\nwind.mdb RecordsetType = Dynaset RecordsetType = Dynaset RecordSource = Customers RecordSource = TextBox TextBox TextBox DataSource = data_cli DataSource = data_cli DataSource = data_cli DataField = CompanyName DataField = ContactName DataField = ContactTitle Name = txtCompanyName Name = txtContactName Name = txtContactTitle TextBox TextBox TextBox DataSource = data_cli DataSource = data_cli DataSource = data_cli DataField = Address DataField = City DataField = Region Name = txtcAddress Name = txtCity Name = txtRegion TextBox TextBox TextBox DataSource = data_cli DataSource = data_cli DataSource = data_cli DataField = Country DataField = PostalCode DataField = Phone Name = txtCountry Name = txtPostalCode Name = txtPhone Label Label Label AutoSize = True AutoSize = True AutoSize = True Caption = Cidade: Caption = CEP: Caption = Estado: Label Label Label AutoSize = True AutoSize = True AutoSize = True Caption = Telefone: Caption = País: Caption = FAX: Label Label DBGrid AutoSize = True AutoSize = True Name: DBGOrders Caption = Nome do Cliente: Caption = Companhia DataSource: data_orders Label Label CommandButton AutoSize = True AutoSize = True Name = cmdSair Caption = Cargo: Caption = Endereço: Caption = &Sair TextBox DataSource = data_cli DataField = Fax Name = txtFax Private Sub Data_Cli_Reposition() Data_order.RecordSource = "Select * from Customers where
CustomerID = ’ & Data_cli.Recordset.Fields("CustomerID") "

Data_order.Refresh End Sub

Visual Basic 5.0

62

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

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álogo Valor Default: é o valor padrão da InputBox, se nada for digitado. Exemplo de uma caixa de diálogo InputBox:

NOTAS:

Visual Basic 5.0

63

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

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ápido pois utiliza um índice da tabela aberta do banco de dados. Sua sintaxe é:
<Data_Control.name>.Recordset.seek <comparação>, <chave>

NOTAS:
Esse método, por utilizar um índice da tabela, acessará o dado procurado diretamente, não precisando percorrer toda a tabela procurando pelo valor especificado pelo argumento. Se encontrar o dado, posicionará o seu Data Control no registro. Para testar se o registro foi ou não encontrado, utilize o método NoMatch. 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 a sua tela de consulta ou não permitir a entrada de um novo registro, pois ele já existe.

onde o parâmetro <comparação> é uma string de comparação e pode ter os seguintes valores: “=”, “<=”, “>=”, “<>”, “<” ou “>” e <chave> é o valor a ser procurado na tabela. Para utilizar este método de procura, precisamos configurar algumas propriedades para o Data Control: Tipo de Recordset a ser aberto necessariamente precisa ser TABLE. Sua tabela deve ter um índice cadastrado pois teremos que definir 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 Produtos Data_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.

Visual Basic 5.0

64

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Exercício 12: Localizando Registros em um Banco de Dados
Utilizando o exercício anterior, crie um botão para localizar registros 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 If End Sub

Visual Basic 5.0

65

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Métodos para Inclusão, Alteração e Exclusão em Banco de dados
Quando utilizamos o Data Control, os métodos existentes para estas 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 novo registro. Se este a tabela tiver uma chave primária, e o você tentar incluir um registro que já exista nela, um erro será causado. Mais adiante veremos como tratar esses erros no VB. No final da apostila temos 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 que foram atualizados com as operações de inclusão, alteração e exclusão.

NOTAS:

Visual Basic 5.0

66

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

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 o Primeiro”). Sua sintaxe é:
<Data_Control.name>.Recordset.FindFirst “campo da tabela = ” & caixa_de_texto.text

NOTAS:
Atribuindo campos da tabela a Caixa Textos da tela do Formulário. A sintaxe para atribuir os campos da tabela aberta pela Data Control, é 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 da tabela: cod_produto.

Por exemplo: Data_produto.recordset.findefirst “cod_produto = “ & text1.text Esse método percorrerá toda a sua tabela procurando pelo valor especificado pelo argumento ("cod_produto = " & text1.text, onde cod_produto é o nome do campo da tabela e text1.text é o nome do objeto Caixa Texto da tela do seu formulário) e posicionará o seu Data Control no registro encontrado. Para testar se o registro foi ou não encontrado, utilize o método NoMatch. 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 a sua tela de consulta ou não permitir a entrada de um novo registro, pois ele já existe.

Visual Basic 5.0

67

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Exercício 13: Inclusão de Novos Clientes
Fazer uma aplicação para inclusão de novos clientes. Para isso, abra o project do exercício 10 e utilize o formulário de inclusão.

Resolução do Exercício:
Data Control Name = data_cli de DatabaseName = ...\nwind.mdb RecordsetType = Dynaset RecordSource = Customers TextBox TextBox Name = txtCompanyName Name = txtContactName Text = (BRANCO) Text = (BRANCO) TextBox TextBox Name = txtcAddress Name = txtCity Text = (BRANCO) Text = (BRANCO) TextBox TextBox Name = txtCountry Name = txtPostalCode Text = (BRANCO) Text = (BRANCO) TextBox Label Name = txtcod_cli AutoSize = True Text = (BRANCO) Caption = CEP: Label Label AutoSize = True AutoSize = True Caption = Telefone: Caption = País: Label Label AutoSize = True AutoSize = True Caption = Nome do Cliente: Caption = Companhia Label Label AutoSize = True AutoSize = True Caption = Cargo: Caption = Endereço: CommandButton CommandButton Name = cmdSair Name = cmdIncluir Caption = &Sair Caption = &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 Form Name = FrmInclusao Caption = Inclusão Novos Clientes TextBox Name = txtFax Text = (BRANCO)

Tela do Exercício.
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_campos End Sub

TextBox Name = txtContactTitle Text = (BRANCO) TextBox Name = txtRegion Text = (BRANCO) TextBox Name = txtPhone Text = (BRANCO) Label AutoSize = True Caption = Estado: Label AutoSize = True Caption = FAX: Label AutoSize = True Caption = Cidade: Label AutoSize = True Caption = Código do Cliente::

Visual Basic 5.0

68

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Exercício 14 : Alteração e Exclusão de Produtos
Fazer uma aplicação para alteração e exclusão de produtos em um almoxarifado. Para isso, abra o project do exercício 10 e utilize o formulário de alteração/exclusão.

Resolução do Exercício:
Form Data Control Name = FrmAltExcl Name = data_cli Caption = Inclusão de Novos DatabaseName = ...\nwind.mdb Clientes RecordsetType = Dynaset RecordSource = Customers TextBox TextBox Name = txtCompanyName Name = txtContactName Text = (BRANCO) Text = (BRANCO) TextBox TextBox Name = txtcAddress Name = txtCity Text = (BRANCO) Text = (BRANCO) TextBox TextBox Name = txtCountry Name = txtPostalCode Text = (BRANCO) Text = (BRANCO) TextBox Label Name = txtcod_cli AutoSize = True Text = (BRANCO) Caption = CEP: Label Label AutoSize = True AutoSize = True Caption = Telefone: Caption = País: Label Label AutoSize = True AutoSize = True Caption = Nome do Cliente: Caption = Companhia Label Label AutoSize = True AutoSize = True Caption = Cargo: Caption = Endereço: CommandButton CommandButton Name = cmdSair Name = cmdIncluir Caption = &Sair Caption = &Incluir TextBox Name = txtFax Text = (BRANCO)

Tela do exercício em tempo de Design.
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

TextBox Name = txtContactTitle Text = (BRANCO) TextBox Name = txtRegion Text = (BRANCO) TextBox Name = txtPhone Text = (BRANCO) Label AutoSize = True Caption = Estado: Label AutoSize = True Caption = FAX: Label AutoSize = True Caption = Cidade: Label AutoSize = True Caption = Código do Cliente::

Private Sub cmdexcluir_Click() data_cli.Recordset.Delete data_cli.Refresh Limpa_campos End Sub

Visual Basic 5.0

69

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

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_campos End 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 If End Sub

Visual Basic 5.0

70

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Códigos de Erros
Para evitar que o VB interrompa seu programa quando um erro ocorrer, 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>

NOTAS:

Resume Next Com essa instrução, a execução do programa volta para a instrução imediatamente posterior àquela em que o erro foi detectado pelo VB. GoTo <label> Quando acontece um erro, o VB desvia o fluxo de execução para um label definido no módulo. Exemplo: Sub Form_Click() On Error GoTo ErrorHandler ... Exit Sub ErrorHandler: ‘Label MsgBox = “Ocorreu o Erro “ & Err & “.” Resume Next End Sub

Visual Basic 5.0

71

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Variáveis e Constantes no VB
Tabela de Cores para a Função QBCOLOR( )
Preto Azul Verde Ciano Vermelho Magenta Amarelo Branco 0 1 2 3 4 5 6 7 Cinza Azul claro Verde claro Ciano claro Vermelho claro Magenta claro Amarelo claro Branco brilhante 8 9 10 11 12 13 14 15

Constantes de Saída da Função MsgBox( )
Constante VbDOK VbCancel VbAbort VbRetry VbIgnore VbYes VbNo Valor 1 2 3 4 5 6 7 Botão Clicado Botão de OK foi clicado Botão de Cancelar foi clicado Botão de Anular foi clicado Botão de Repetir foi clicado Botão de Ignorar foi clicado Botão de Sim foi clicado Botão de Não foi clicado

Constantes para Botões
Constante VbOKOnly VbOKCancel VbAbortRetryIgnore VbYesNoCancel VbYesNo vbRetryCancel Valor 0 1 2 3 4 5 Botões Mostrados OK OK, Cancelar Anular, Repetir, Ignorar Sim, Não, Cancelar Sim, Não Repetir, Cancelar

Constantes de Ícones
Constante VbCritical VbQuestion VbExclamation vbInformation Valor 16 32 48 64 Ïcone Mostrado Ícone de Stop Ícone de ponto de interrogação Ícone de ponto de exclamação Ícone de Informação

Visual Basic 5.0

72

Centro de Computação Gerência de Atendimento ao Cliente (e-mail apoio@ccuec.unicamp.br)

Dicas para Consulta
Links interessantes:
http://www.microsoft.com/vbasic http://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/ Office Revista Developers – Revista brasileira para desenvolvedores.

Visual Basic 5.0

73

Sign up to vote on this title
UsefulNot useful