Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Visual Basic Exercicios Resolvidos 2
Apostila Visual Basic Exercicios Resolvidos 2
br)
Exerccio 4: Calculadora
Fazer uma calculadora que tenha as seguintes operaes: soma, subtrao, diviso e multiplicao.
Resoluo do Exerccio:
Form Caption =Formulrio do Exerccio Name = Frmexerc TextBox Name = txtresult Text = (BRANCO) HScrollBar Name = hScrPrim_valor LargeChange = 10 Max = 1000 CommandButton Caption = &Calcular Name = cmdcalcular OptionButton Caption = Subtrao Name = OptSub OptionButton Caption = Diviso Name = OptDiv TextBox Name = txtprim_num Text = (BRANCO) Label AutoSize = True Caption = Resultado da Operao: Name = lblresult Frame Caption = Operaes 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 = Multiplicao 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 Exerccio.
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 "Diviso 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
39
NOTAS:
Teste! Crie um novo Project (A partir do menu File, escolha a opo New Project). No formulrio, desenhe os controles Line, Shape e modifique suas propriedades.
40
Funes do Mouse
O VB permite que voc utilize o controle Image para criar botes de comando no estilo da barra de ferramentas em seus programas. Para criar esses botes, 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 usurio libera o boto do mouse. Os botes possuem trs estados: No pressionado - esse o estado normal do boto. No est selecionado. Pressionado - esse o estado do boto que est selecionado ou est ativo. Desativado - o estado utilizado quando um boto no est disponvel para o programa. Mais algumas propriedades da Caixa Texto FontBold: define se o texto da caixa de texto deve ser negrito ou no. Valor que recebe True se for configurar o texto para negrito e False, caso contrrio. FontItalic: define se o texto da caixa de texto deve ser itlico ou no. Valor que recebe True se for configurar o texto para itlico e False, caso contrrio. FontUnderline: define se o texto da caixa de texto deve ser sublinhado ou no. Valor que recebe True se for configurar o texto para sublinhado e False caso contrrio. Image Box Tag: utiliza-se esta propriedade para identificar um objeto. No prximo exerccio, esta propriedade ser utilizada para identificar o status do boto.
NOTAS:
Para criarmos esses tipos de botes, estaremos trabalhando com o controle Image Box que mostrar a imagem correspondente a ao que voc tomou. Por exemplo, se voc pressionou o boto, aparecer a imagem do boto pressionado. possvel alterar os estados dos botes atravs da procedure de evento MouseDown, por exemplo.
41
Picture =...\itl-dwn.bmp
Tela do Exerccio
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
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
42
NOTAS:
Se voc configurar a propriedade DragMode do objeto para Manual, para iniciar e terminar a ao de arrastar-e-soltar, ser preciso programar o mtodo Drag. Os valores aceitos por este mtodo : Constante VbCancel VbBeginDrag VbEndGrag Valor 0 1 2 Ao Cancela a operao Drag-and-Drop Inicia a operao de arrastar. Termina a operao 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 mtodos e propriedades. Por exemplo: source.visible = false. X, Y: que so coordenadas. X a coordenada horizontal e Y a coordenada vertical.
Eventos
DragDrop
DragOver
Mtodos
Drag
Voc pode configurar a propriedade DragMode de seu objeto para 1 (que permite que o objeto seja arrastado).
43
Resoluo do Exerccio:
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 exerccio.
44
NOTAS: CommonDialog
Esse objeto permite exibir cinco caixas de dilogo nos padres do Windows. Apenas uma caixa de dilogo pode ser exibida a partir de um objeto Common Dialog. Para exibir uma determinada caixa de dilogo, deve ser utilizado o mtodo correspondente caixa desejada. Os contedos das caixas so controlados atravs de suas propriedades, ou seja, quando uma caixa preenchida, os resultados so apresentados por suas propriedades. Caixas de Dilogo e sua utilizao: Abrir: para abrir um arquivo. Mtodo correspondente: ShowOpen Salvar Como: para salvar um arquivo. Mtodo correspondente: ShowSave Imprimir: para definir as opes de impresso. Mtodo correspondente: ShowPrinter Fonte: para definir uma fonte e um estilo para textos. Mtodo correspondente: ShowFont Cor: para escolher uma nova cor da paleta. Mtodo correspondente: ShowColor Flags: define qual o tipo da caixa Color dever ser exibida. Os Flags podem ser: &H1&: Exibe a CommonDialog Cor padro, com as cores personalizadas como opo. &H2&: Exibe a paleta padro e a personalizada. &H4&: Exibe a paleta padro com o boto de Cores Personalizadas desabilitado. &H8&: Exibe o boto de ajuda na CommonDialog Cor. Color: esta propriedade utilizada para configurar a cor dos objetos do VB que suportam cor. possvel modificar a cor do fundo de um formulrio, as cores das formas no formulrio e as cores de fundo dos objetos. Um objeto CommonDialog no visvel ao usurio em tempo de execuo do programa. Propriedades correspondentes CommonDialog Abrir: Filter: define quais os tipos de arquivos devero ser exibidos. Por exemplo:
commondialog1.filter = Bitmaps (*.BMP) | *.BMP |Metafiles (*.WMF) | *.WMF
45
Controle ImageList
O controle ImageList utilizado para armazenar uma lista de imagens para serem utilizadas nas barras de ferramentas, animaes e aplicativos. Cada ImageList responsvel pela criao de apenas uma lista de imagens. Sua capacidade limitada pela mmoria de seu micro.
A guia Images a parte principal para a criao da lista de imagens, pois nela que se encontram as propriedades para insero 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 nmero de imagens inseridas na lista Para inserir um imagem Lista: Utilize o boto Insert Picture, escolha a imagem e clique no boto Open. Para remover uma imagem da lista: Selecione a imagem desejada e clique o boto Remove Picture.
NOTAS:
Pgina de Propriedades. Para exibir a Pgina de Propriedades do ImageList, selecione o objeto no formulrio, clique-o com o boto direito do mouse e escolha a opo propriedades.
46
Controle Toolbar
Este controle utilizado para criar barras de ferramentas padro do Windows 95.
Key/Tag: texto para identificao do boto. Value: define se deve estar pressionado ou no pressionado. Style: estilo no qual o boto deve ser mostrado. ToolTipText: texto explicativo sobre o boto que deve aparecer para o usurio. Image: se a ToolBar estiver associada uma ImageList, voce pode utilizar uma imagem da lista de imagem atravs seu index. Para inserir um novo boto, utilize: Boto Insert Button. Para excluir um boto da ToolBar: Utilize o boto Remove Button.
NOTAS:
Pgina de Propriedades. Para exibir a Pgina de Propriedades do ToolBar, selecione o objeto no formulrio, clique-o com o boto direito do mouse e escolha a opo Propriedades. Na guia Buttons, principais propriedades: Index: ndice do boto na barra de ferramentas. Caption: texto que deve aparecer para descrever o boto. Description: descrio da funo do boto.
47
Resoluo do Exerccio:
Form Name = Form1 Caption = Abrindo Figuras ToolBar Name = Toolbar1 CommonDialog Name = CommonDialog1 Imagem Box Name = Image1 Image List Name = ImageList1
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
48
NOTAS:
Eventos mais utilizados: Para DirListBox Change() modifica o diretrio selecionado. Ocorre quando o usurio d um duplo clique em um novo diretrio ou quando voc muda a propriedade Path atravs de cdigo de programao. Para DriveList Change() Modifica o drive selecionado. Ocorre quando o usurio seleciona um novo diretrio ou quando voc muda a propriedade Drive atravs de programao. Para FileListBox Click: Ocorre quando o usurio pressiona o boto do mouse em um objeto. Pode tambm 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 seleo de um arquivo especfico em uma pasta (diretrio). Trabalhando com as Propriedades: Existem propriedades que no podem ser configuradas em tempo de design do programa, ou seja, no possvel configur-las utilizando a janela Properties (Janela de Propriedades). Elas s podem ser configuradas em tempo do execuo: Drive: recebe a letra do drive selecionado (utilizado pelo controle DriveListBox). Path: recebe o nome do diretrio 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 espaamento entre os ponto-e-vrgula).
49
Resoluo do Exerccio:
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 Exerccio. Private Sub arquivos_Click() cmdfigura.Enabled = True End Sub
50
NOTAS:
Para criar uma aplicao MDI: 1. Crie um novo Project 2. A partir do Menu Project, escolha a opo Add MDI Form. Assim, voc criou um formulrio-pai. Para criar formulriosfilhos, voc precisa: 1. A partir do menu Project, escolha a opo Add Form. Nas propriedades do Formulrio-filho, configura a propriedade MDI Child para True. Para exibir todos os formulrios Child do seu Project num Formulrio MDI-pai, configure a propriedade AutoShow (do formulrio MDI-pai) para True. Em formulrios do tipo MDI, no possvel desenhar controles que no possuam a propriedade Align. Para desenhar objetos que no possuam esta propriedade, desenhe um controle Picture no formulrio e depois, dentro dele, desenhe os demais controles. Exemplo:
51
Resoluo do Exerccio:
MDIForm Caption = Controle de Estoque WindowState = Maximized Name = MDIControl_est Form Caption = Formulrio para Incluso MDIChild = True Name = FrmIncluso Form Caption = Formulrio para Alterao/Excluso MDIChild = True Name = FrmAlt_Excl Form Caption = Formulrio para Consulta MDIChild = True Name = FrmConsulta
Tela do Exerccio
52
NOTAS:
Cada item do seu Menu um objeto. Os itens so inseridos de forma hierrquica. 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 hfen. Para permitir o acesso ao menu pelo teclado, antes da letra, digite um &. Quando voc estiver executando a aplicao, a letra estar sublinhada e o usurio pode acessar o menu pressionando ALT + a letra sublinhada. Se voc precisar de um & ( e comercial) em seu menu, digite duas vezes o smbolo no Caption. Name: Caixa de texto na qual voc deve inserir um nome para o objeto. Esse nome s ser usado em programao, para se referir ao item do menu. No aparecein no menu. Index: Nesta caixa de texto voc define um valor numrico que determina a posio do controle com o vetor. Esta posio no relativa a posio da tela. Shortcut: neste item voc define uma tecla de atalho para o seu menu. HelpContextID: Nesta caixa de texto voc define um valor numrico para o Context ID que usado para encontrar o tpico apropriado no arquivo de Help identificado pela propriedade HelpFile. NegotiatePosition: neste item, voc pode determinar se e como o menu aparecer em determinado formulrio.
Quando os Menus so criados, vo aparecendo nesta caixa na ordem hierrquica em que foram criados.
53
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.
54
NOTAS:
Para mostrar os formulrios de Incluso, Alterao/Excluso e Consulta a partir dos menus, utilize os mtodos apresentados na pgina anterior (54).
Tela do Exerccio
55
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 visualizao. 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 funo F4.
O Data Control possui setas que permitem que voc role pelos registros da tabela aberta durante a execuo do programa e uma legenda para descrever o contedo 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.
56
O que um Recordset? um conjunto de linhas e colunas que contm todos dados da tabela. O Data Control que abre um banco de dados carrega esse Recordset. Mtodos do Recordset MoveFirst: este mtodo move do registro atual para o primeiro registro da sua tabela. MoveNext: este mtodo move do registro atual para o prximo registro. MovePrevious: este mtodo 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 Joo Castro Sueli Piva Rute Salim EOF (End of File) Mtodos para controlar o incio e o fim do arquivo BOF: controla o incio do arquivo. EOF: controla o final do arquivo. Sintaxe: data1.recordset.BOF (para controlar o incio do arquivo). data1.recordset.EOF (para controlar o fim do arquivo). Por exemplo: Private Sub cmdProximo_Click() este boto tem a funo de navegar para o prximo registro do Data Control. If data1.recordset.EOF then MsgBox Final de Arquivo!! Else Data1.recordset.movenext MoveNext o mtodo utilizado para mover a posio do Data Control para o prximo registro. End If End Sub
57
NOTAS:
58
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 Combinao, com a diferena 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 Combinao funcione como o esperado, preciso configurar algumas propriedades que esto listadas a seguir: DataSource Name: especifica qual o Data Control ser atualizado quando um seleo 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 seleo for feita. BoundText Text: valor do campo da coluna associada. Quando uma seleo feita, o valor passado para atualizar o Recordset especificado pelo DataSource e DataField.
3. Data Bound Grid: permite a manipulao de uma srie de linhas e colunas representando um registro e campos do Recordset do Data Control. O DBGrid semelhante ao Controle Grid, a diferena que com o DBGrid, no preciso programar as linhas e colunas da tabela, preciso apenas associar um Data Control ao objeto que automaticamente, o Grid ser preenchido
59
A guia mais importante para este treinamento, a guia Panels pois nela que estaremos definindo as mensagens que devem ser mostradas para os usurios. Principais propriedades: Index: ndice da mensagem na barra de status. Text: texto que deve aparecer para descrever o boto. Description: descrio da funo do boto. ToolTipText: texto explicativo sobre o boto que deve aparecer para o usurio. Key/Tag: texto para identificao do boto. Alignment: Define o alinhamento do texto da mensagem dentro do Painel.
Para inserir um novo painel, utilize: Boto Insert Panel. Para excluir um painel da ToolBar: Utilize o boto Remove Panel.
NOTAS:
Para exibir a pgina de propriedades de um controle, clique com o boto direito do mouse sobre o objeto selecionado e escolha a opo Properties.
Pgina de Propriedades.
60
Controle SSTab
Este controle utilizado para dividir a tela do formulrio em vrias funes.
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 boto. Tab Count: Nmero de guias. TabPerRow: Nmero de guias por linha. Orientation: Define a orientao das guias da SSTab, se as
guias devem estar no topo, a esquerda, a direita ou no embaixo. Exemplo da utilizao 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 pgina de propriedades de um controle, clique com o boto direito do mouse sobre o objeto selecionado e escolha a opo Properties.
61
62
Funo InputBox
Uma caixa de dilogo que permite a entrada de dados pelo usurio. Sua sintaxe: <variavel_string> = InputBox(mensagem, ttulo, valor Default) Parmetros da funo: Mensagem: a expresso que descreve o que deve ser digitado. Ttulo: o ttulo da caixa de dilogo Valor Default: o valor padro da InputBox, se nada for digitado. Exemplo de uma caixa de dilogo InputBox:
NOTAS:
63
NOTAS:
Esse mtodo, por utilizar um ndice da tabela, acessar o dado procurado diretamente, no 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 no encontrado, utilize o mtodo NoMatch. Por exemplo: If data_produto.Recordset.NoMatch then <instruo> Ou seja, se o registro no existir, ento, podemos inclu-lo. If NOT data_produto.Recordset.NoMatch then <instruo> Quer dizer que o registro existe, ento, voc poder traz-lo para a sua tela de consulta ou no permitir a entrada de um novo registro, pois ele j existe.
onde o parmetro <comparao> uma string de comparao e pode ter os seguintes valores: =, <=, >=, <>, < ou > e <chave> o valor a ser procurado na tabela. Para utilizar este mtodo 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 sero alteradas so: 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 cdigo do produto que for igual ao cdigo digitado na caixa de texto txtcod_produto.text.
64
Resoluo do Exerccio:
Command Button Name = cmdLocalizar Caption = &Localizar
If ProcNome <> "" Then Data_cli.Recordset.Index = "Nome" Data_cli.Recordset.Seek "=", ProcNome If Data_cli.Recordset.NoMatch Then MsgBox ("Nome no localizado!!!") Data_cli.Recordset.MoveFirst End If End If End Sub
65
NOTAS:
66
NOTAS:
Atribuindo campos da tabela a Caixa Textos da tela do Formulrio. 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 mtodo 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 formulrio) e posicionar o seu Data Control no registro encontrado. Para testar se o registro foi ou no encontrado, utilize o mtodo NoMatch. Por exemplo: If data_produto.Recordset.NoMatch then <instruo> Ou seja, se o registro no existir, ento, podemos inclu-lo. If NOT data_produto.Recordset.NoMatch then <instruo> Quer dizer que o registro existe, ento, voc poder traz-lo para a sua tela de consulta ou no permitir a entrada de um novo registro, pois ele j existe.
67
Resoluo do Exerccio:
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 = Pas: Label Label AutoSize = True AutoSize = True Caption = Nome do Cliente: Caption = Companhia Label Label AutoSize = True AutoSize = True Caption = Cargo: Caption = Endereo: 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 = Incluso Novos Clientes TextBox Name = txtFax Text = (BRANCO)
Tela do Exerccio.
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 = Cdigo do Cliente::
68
Resoluo do Exerccio:
Form Data Control Name = FrmAltExcl Name = data_cli Caption = Incluso 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 = Pas: Label Label AutoSize = True AutoSize = True Caption = Nome do Cliente: Caption = Companhia Label Label AutoSize = True AutoSize = True Caption = Cargo: Caption = Endereo: CommandButton CommandButton Name = cmdSair Name = cmdIncluir Caption = &Sair Caption = &Incluir TextBox Name = txtFax Text = (BRANCO)
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 = Cdigo do Cliente::
69
Resoluo do Exerccio:
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 no est cadastrado!!!" txtcod_cli.Enabled = True txtcod_cli.SetFocus End If End Sub
70
Cdigos de Erros
Para evitar que o VB interrompa seu programa quando um erro ocorrer, adicione a instruo On Error depois da declarao do Sub. A instruo On Error deve ser seguida pelos comandos: Resume Next GoTo <label>
NOTAS:
Resume Next Com essa instruo, a execuo do programa volta para a instruo imediatamente posterior quela em que o erro foi detectado pelo VB. GoTo <label> Quando acontece um erro, o VB desvia o fluxo de execuo para um label definido no mdulo. Exemplo: Sub Form_Click() On Error GoTo ErrorHandler ... Exit Sub ErrorHandler: Label MsgBox = Ocorreu o Erro & Err & . Resume Next End Sub
71
Variveis e Constantes no VB
Tabela de Cores para a Funo 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 cones
Constante VbCritical VbQuestion VbExclamation vbInformation Valor 16 32 48 64 cone Mostrado cone de Stop cone de ponto de interrogao cone de ponto de exclamao cone de Informao
72
http://www.viquevb.com/ http://www.developersmagazine.com.br/
& Livros/Revistas:
Revista Frum Access /Visual Basic/ Office Revista Developers Revista brasileira para desenvolvedores.
73