VISUAL BASIC APOSTILA.doc

download VISUAL BASIC APOSTILA.doc

of 170

Transcript of VISUAL BASIC APOSTILA.doc

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    1/170

    V i s u a l B a s i c

    ( Verso 5)

    Curso Bsico

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    2/170

    Power Informtica Santana do Livramento RS Brasil

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    3/170

    Visual Basic Curso Bsico. Pag..:

    Agradecimentos

    Embora tenha custado horas e horas de montagem (word) essa apostila no teria sido confeccionadase eu no tivesse encontrado a Home Page do Jos Carlos Macoratti Visual Basic Banco dedados.Excelente trabalho de garimpo deste profissional ue com certe!a prova ue podemos encontrar

    v"rios servi#os de boa qualidade e de graana $nternet%Por favor se uiserem agradecer visitem este site%

    http&''www%geocities%com'iliconalle*'+a*',--.'

    macoratti/riopreto%com%br

    Trabalhos de edio e montagem:

    Carlos Alberto Nunes Susvielaantana do 0ivramento 1 +rasil

    susviela/!a!%com%brhttp&''www%geocities%com'iliconalle*'Haven'2323

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    ,

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    4/170

    Visual Basic Curso Bsico. Pag..:

    Indice:

    1)

    Carlos Alberto Nunes Susviela .................................................................................................3

    1) INTRODUO ! Conceitos B"sicos )..................................................................................#

    1.1) BAC! "# "A"!S ................................................................................................................$

    1.%) &RABAL'A"! C! &AB#LAS ......................................................................................

    1.* + CRIA"! BAC! "# "A"!S, &AB#LAS, -"IC#S, R#LACI!A#&!S #C'A#S PRI/RIAS. ("A&A AA0#R) + ...........................................................................11

    1.. R#C!R"S#&2 &ABL#, "3AS#&S, SAPS'!&S.("#4II56!, PRICIPAIS7&!"!S # ##&!S R#LACI!A"!S)............................................................................18

    1.8. "A&A C!&R!L. ("#4II56!, PRICIPAIS 7&!"!S # ##&!SR#LACI!A"!S).........................................................................................................................1

    1.9. ##&!S2 : !! #4!;:# (##&!S2 C!C#I&!S, #

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    5/170

    Visual Basic Curso Bsico. Pag..:

    #strutura da taela. .......................................................................................................................=

    Interface com o usurio .................................................................................................................=

    CodiHo da AJlicacao........................................................................................................................8@

    + ) S(% .....................................................................................................................................2

    #strutura da taela. .......................................................................................................................8=

    Interface com o usurio .................................................................................................................8CodiHo da AJlicacao .......................................................................................................................91

    # ) CR4STA% R*-ORTS ! -roeto Co/enta0o ) ..................................................................+#

    IntroduDGo20erando os seus relatKrios com o Crstal ReJorts. .................................................9$

    Criando um novo relatKrio. ...........................................................................................................9$

    AHruJando e ordenando reHistros. ................................................................................................9

    Inserindo tMtulos e LeHendas. .........................................................................................................9

    4ormataDGo de camJos, camJos esJeciais e deseno de linas e caias. ....................................9

    &raalando com fKrmulas. ..........................................................................................................$@

    "eterminando o estilo e inserindo uma fiHura em seu relatKrio. ................................................$1

    ImJrimindo o relatKrio a Jartir de sua aJlicaDGo no isual Basic. ...........................................$%

    RelatKrio com dados de vrias taelas e SeleDGo de reHistros .....................................................$*

    ) AC*SSO A BAS* D* DADOS -ADRO 5BAS*!DBAS*6C%I--*R) .........................3

    Acesso utiliNando o Controle de "ados inculados. ("ata Control) ...........................................=*

    Acesso utiliNando a "A!. ("ata Access !Oect) ..........................................................................=$

    7 ) S*TU- 8I9ARD ...............................................................................................................7,

    1 ) DB:RID ........................................................................................................................11

    IntroduDGo.....................................................................................................................................1@1

    :tiliNaDGo e ConfiHuraDGo. ...........................................................................................................1@1

    Controle 4inanceiro + "efiniDGo de taelas. ...............................................................................1@

    Controle 4inanceiro + Interface com o usurio. .........................................................................1@9

    Controle 4inanceiro + CKdiHo do JroOeto. ...................................................................................11@

    "0rid + "icas e &ruFues.............................................................................................................118

    11 ) DB%IST ..........................................................................................................................11+

    1$ ) R*D*S !-roeto co/enta0o) ......................................................................................1$1

    + Acesso #clusivoComJartilado...............................................................................................1%1

    + Acesso as taelas + d"enRead, d"en>rite e dRead!nl..............................................1%*

    13 ) *RROS ...........................................................................................................................1$

    IntroduDGo. ...................................................................................................................................1%=

    InterceJtando erros. .....................................................................................................................1%=

    Identificando o &iJo de #rro. ......................................................................................................1%

    4inaliNando um tratamento de erros. .........................................................................................1*%PrinciJais erros relacionados a Banco de dados.........................................................................1**

    1, ) O%* ................................................................................................................................132

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    4

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    6/170

    Visual Basic Curso Bsico. Pag..:

    IntroduDGo. ...................................................................................................................................1*8

    InstruDGo do >ordBasic...............................................................................................................1*$

    InstruDao do BA $.....................................................................................................................1*$

    :sando AutomaDGo !L# com o >ord + #emJlo Prtico. .......................................................1*$

    :sando AutomaDGo !L# com o #cel + #emJlo Prtico..........................................................1*

    12 ) :R;

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    7/170

    Visual Basic Curso Bsico. Pag..:

    1 IN!"#$%&'# ( Conceitos )sicos

    "."* B+,C- / +-$

    Podemos entender por banco de dados ualuer sistema ue reuna e mantenha organi!ada umas6rie de informa#7es relacionadas a um determinado assunto em uma determinada ordem%

    8 lista telef9nica 6 um exemplo: nela percebemos ue todos os dados referentes a uma pessoa estona mesma linha: a isso chamamos registros%%

    ; tipo ou categoria da informa#o (nome: telefone: etc%) sobre uma pessoa est" separada emcolunas: as uais chamamos campos%%

    1) 6 usado para arma!enar asinforma#7es de uma forma ue permita ?s pessoas examin"@las de diversas maneiras%

    ; =erenciador relacional de bancos de dados do isual +asic e do 8ccess 6 o Aicrosoft Bet: elepertence a uma categoria diferente dos =erenciadores tradicionais: como o >base e o Paradox: poispossue caracterCsticas em comum com os banco de dados cliente@servidor% Dais caracterCsticascomuns so&

    Todas as tabelas 0ndices consultas relat1rios e c1digo so arma2enados num 3nico arqui&o.MDB

    -s cam4os de data su4ortam in5ormao de hora.

    +dmite o arma2enamento 4ermanente de comandos SQL

    6 4oss0&el 5orar a integridade re5erencial entre as tabelas.

    -s cam4os su4ortam &alores nulos 'Null*

    o >base'Flipper banco de dados significa um aruivo ue cont6m a estrutura de dados(campos) eos dados (8ruivo padro >+G)% Para o padro A>+ este conunto de dados e sua estruturadenomina@se Dabela%Portanto auilo ue o >base'Flipper considera um banco de dados o 8ccess e o isual +asicconsidera como uma Dabela %

    Para o 8ccess e o isual +asic todos os componentes do sistema esto em um Inico aruivo comextenso A>+: a este JpacoteJ consideramos o banco de dados%

    0ogo uando abrimos um aruivo A>+ temos acesso a todos os componentes do sistema & tabelas:consultas: macros: relatKrios: etc% 8 esses componentes chamamos obetos do sistema e em resumopodemos descrevL@los a seguir&

    !abelas ;nde arma!enamos as informa#7es ue ueremos tratar%Consultas Giltram as informa#7es das tabelas e permitem sua visuali!a#o% =eralmente so

    comandos M0%*ormulrios o anelas destinadas ? edi#o e visuali!a#o dos dados%"elat+rios ;rgani!am os dados de tabelas e consultas de uma maneira ue possam ser

    impressosMacros 1otinas ue automati!am determinadas tarefas sem necessidade de programa#o%

    (

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    8/170

    Visual Basic Curso Bsico. Pag..:

    Embora o isual +asic utili!e aruivos padro A>+O Gormul"rios: 1elatKrios e AKdulos sotratados de forma diferente pelo prKprio isual +asic e: nativamente: o isual +asic no utili!aAacros%8lem disso no 8ccess e isual +asic podemos utili!ar outros aruivos al6m dos aruivosA>+O como aruivos >+G do >base'Flipper: aruivos do Paradox: do +trieve: etc%

    ;s recursos de defini#o de dados do mecanismo Bet permitem a cria#o: a modifica#o e a exclusode tabelas: Cndices e consultas% ; Bet tamb6m aceita a valida#o de dados em nCvel de campo e

    registro% 8 integridade de dados tem suporte sob a forma de chaves prim"rias e integridadereferencial entre tabelas%

    Para manipula#o de dados: o Bet admite o uso da M0 e de obetos de acesso aos dados% Essesobetos permitem ao programador manipular informa#7es contidas no banco de dados: atrav6s dadefini#o das propriedades dos obetos e pela execu#o dos m6todos associados aos obetos% 8tabela abaixo relaciona esses obetos e descreve resumidamente suas fun#7es&

    -b7eto escrio$)engine ; obeto ue referencia o mecanismo de bancos de dados do Aicrosoft Bet,or-s.ace

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    9/170

    Visual Basic Curso Bsico. Pag..:

    ".#* T8+B+%9+,- C-M T+B/%+$

    8s tabelas so o cora#o dos bancos de dados: e: uma das tarefas fundamentais ue vocL dever"fa!er ser" organi!ar os dados em tabelas% Para criar uma tabela no isual +asic vocL pode usar o>ata Aanager: mas: uma maneira mais f"cil: se vocL tiver o 8ccess: ser" utili!ar os seus recursospara este fim% 8ui descreveremos como criar uma tabela no 8ccess sem a auda de um assistente%+asicamente vocL ir" dar nome aos campos (colunas): e definir o tipo de dados para estes campos%$sto depende da informa#o ue desea arma!enar no campoO se for arma!enar um dado ue nofar" parte de c"lculos: um nome por exemplo: o tipo pode ser teto: se for arma!enar valoresnum6ricos ue faro parte de c"lculos o tipo ser" numrico(inteiro2 sim.les333: se for arma!enardatas o tipo ser" datae assim por diante%

    ; tamanho do campo define a uantidade de informa#o relacionada ao item ue vocL podearma!enar: assim & para um campo do tipo texto com tamanho , vocL poder" arma!enar textos comno m"ximo , caracteres: um campo num6rico de tamanho 2 arma!ena nImeros com at6 doisdCgitos%

    eamos como exemplo a estrutura de uma tabela ue chamaremos Flientes% Fomo o nome indicaela dever" guardar informa#7es sobre os clientes: decidimos ue tais informa#7es sero& FKdigo:

    ome: Endere#o: Fep e idade&Exemplo de Dabela Flientes

    ome do Fampo Dipo do >ado arma!enado Fomprimento para o campoFodigo umerico ,ome Dexto .Endereco Dexto .Fep Dexto 3$dade umerico ,

    Embora no exista nenhuma regra absoluta para os dados ue devem ser colocados em cada tabela:

    damos abaixo diretri!es gerais para um proeto de banco de dados eficiente&

    >etermine um tKpico para cada tabela e certifiue@se de ue todos os dados contidos na tabelaesto relacionados com o tKpico%

    e uma s6rie de registros em uma tabela apresenta campos intencionalmente deixados embranco: divida a tabela em duas tabelas similares%

    e as informa#7es se repetem em v"rios registros: desloue essas informa#7es para outra tabelae defina um relacionamento entre elas%

    Fampos repetidos indicam a necessidade de uma tabela secund"ria%

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    10/170

    Visual Basic Curso Bsico. Pag..:

    usar o Fonstrutor de Fampos para selecionar campos individuais das tabelas de amostra do8ssistente de Dabela%

    Para criar uma tabela sem um Assistente (Access vers4o 536

    R@a anela +anco de >ados: cliue no boto JDabelaJ e: ento: escolha o boto JovoJ%2@a caixa Jova DabelaJ: cliue no boto Jova tabelaJ%

    ; Aicrosoft 8ccess exibe a anela Dabela no modo Estrutura: no ual so definidos os campos databela%

    Para definir cam.os na tabela

    R @ a coluna Jome do FampoJ digite o nome do primeiro campo seguindo as conven#7es denomenclatura padro do Aicrosoft 8ccess% @;u@ Fliue no boto JFonstruirJ na barra deferramentas e selecione o campo a partir do Fonstrutor de Fampos% ; tipo de dados e outraspropriedades para cada campo " esto definidas: embora possam ser alterados caso deseado%

    2 @ a coluna JDipo de >adosJ: mantenha o padro (Dexto) ou cliue na seta e selecione o tipo

    de dados deseado%

    , @ a coluna J>escri#oJ digite a descri#o da informa#o ue este campo ir" conter% 8descri#o 6 opcional%

    . @ e desear: defina as propriedades do campo na parte inferior da anela%

    4 @ 1epita os passos de R a . para cada campo%

    Para salvar a tabela

    R @ 8pKs terminar de definir os campos cliue no boto JalvarJ na barra de ferramentas ouescolha o comando alvar no menu 8ruivo para salvar a estrutura da tabela% ; Aicrosoft8ccess: ento: envia uma mensagem pedindo para nomear a tabela%

    2 @ >igite um nome para a tabela conforme as conven#7es de nomenclatura do Aicrosoft 8ccesse: ento: escolha ;S%

    #bserva78es

    Q recomend"vel ue se designe o campo de (9 cave .rimriaem ualuer tabela% e isto nofor feito o Aicrosoft 8ccess pergunta ao usu"rio se este desea ue o programa crie uma chaveprim"ria uando salvar a tabela pela primeira ve!% 8dicionalmente ? defini#o das propriedades

    de campo: pode@se: tamb6m: definir as propriedades da tabela% 8s propriedades da tabela soatributos de toda a tabela: preferencialmente a campos individuais apenas%Muando uma coluna ou caixa de propriedades 6 clicada: o Aicrosoft 8ccess exibe dicas Iteisacerca de cada coluna ou propriedade na por#o inferior direita da anela%8pKs criar tabelas: pode@se criar consultas: formul"rios: relatKrios e outros obetos de banco dedados ue auxiliam o usu"rio a manipular seus dados%

    (9 + cha&e 4rimria 6 um cam4o ou combinao de cam4os que 4ermite a identi5icao 3nicade cada registro de uma tabela. +ssim como o 0ndice 4rinci4al 4ara a tabela ela 6 utili2ada 4araassociar dados entre tabelas. $e uma tabela no inclui um cam4o de cha&e 4rimria 1b&io oMicroso5t +ccess 4ode criar um cam4o que designa um n3mero 3nico 4ara cada registro.

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    R

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    11/170

    Visual Basic Curso Bsico. Pag..:

    ".; C8efs da figura surge: seu banco de dados " esta criado e vocL esta pronto paracriar suas tabelas%

    Criando uma !abela com o $ata Manager3Para criar uma tabela com o >ata Aanager: proceda da seguinte forma: cliue no boto New daanela Dables'Muer*>efs e: no di"logo Add !ablemostrado abaixo (figura abaixo) siga os passos

    indicados&

    R% $nforme o nome da tabela na caixa de texto ame%2% $nforme o nome do campo na caixa de texto Gield ame%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    RR

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    12/170

    Visual Basic Curso Bsico. Pag..:

    ,% elecione o tipo de dado apropriado na caixa de combina#o >ata D*pe%.% >igite o tamanho do campo: no caso do tipo Dext: na caixa de texto i!e%4% Fliue no boto T para incluir o campo na tabela%5% 1epita os passos 2 a 4 at6 ue todos os campos da tabela esteam definidos e cliue no boto ;Spara cri"@la%

    Alterando a

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    13/170

    Visual Basic Curso Bsico. Pag..:

    ;bs& - ata Manager no admite a edio de um cam4o com4onente de uma e@4resso de 0ndiceou de um relacionamento. ,estes casos 6 obrigat1ria a remoo do 0ndice ou dorelacionamento.

    Criando e ata Aanager 6 simples% +asta selecionar a anela !able

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    14/170

    Visual Basic Curso Bsico. Pag..:

    R% elecione a tabela prim"ria na caixa de combina#o Primar0 !able%2% elecione a tabela dependente na caixa de combina#o "elated !able%,% >efina o tipo de relacionamento: selecionando o boto de op#o apropriado na caixa de grupo!0.e%.% elecione a chave externa na caixa de combina#o Select Matcing *ields%4% Aarue: se for o caso: a caixa de verifica#o indicando se a integridade referencial dos dados deveser garantida%

    ;bs& Para de5inir um relacionamento 6 indis4ens&el que o cam4o origem se7a a cha&e 4rimria databela 4rimria. +l6m disso o cam4o de5inido como cha&e e@terna de&e ser do mesmo ti4o dedado da cha&e 4rimria.

    $efinindo uma Cave PrimriaPara definir uma chave prim"ria: selecione o boto >e0s(anela !able ata Aanager abreo di"logo mostrado na figura abaixo: onde a chave pode ser definida clicando@se e selecionando@a dalista Primar0%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    R.

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    15/170

    Visual Basic Curso Bsico. Pag..:

    ".A. 8/C-8$/T: T+B%/ ,+$/T$ $,+P$9-T$.'/

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    16/170

    Visual Basic Curso Bsico. Pag..:

    ; comando See-sK encontra o primeiro registro ue atende a seus crit6rios%

    Abertura de uma tabela .ara utili@a74oPara abrir uma tabela: defina um obeto "ecordsete use o m6todo #.en"ecordsetpara acessar atabela%

    $nforme a constante $b#.en!ablepara identificar o tipo de recordset criado% ea o cKdigo abaixo&

    >im meubd as >atabaseDim min!atb as #ecordset

    Set meubd = DBEngine.Workspaces(0).OpenDatabase("C:meudirdados.mdb") Set min!atb = meubd.Open#ecordset("Cientes"$DbOpen%abe)

    8 novidade em rela#o ao cKdigo acima 6 a defini#o da vari"vel obeto tipo 1ecordset minhatbl eatribui#o a esta vari"vel da tabela Clientesdo banco de dados ados.mdb% ote ue o aruivo debanco de dados 6 padro 8ccess%

    $0nasets: uso2 vantagens;desvantagens2 configura74o

    im) e depois gerar o dGnasetcom om6todo -4en8ecordset% Para selecionar os registros vocL pode usar uma instru#o M0% eaexemplo abaixo&

    Dim meubd as DatabaseDim meud&n as #ecordset

    Set meubd = DBEngine.Workspaces(0).OpenDatabase("C:meudirdados.mdb") Set meud&n = meubd.Open#ecordset("SE'EC% #O* Cientes"$DbOpenD&naset)

    >efinimos a vari"vel obeto meud*n: abrimos o banco de dados e a seguir criamos um dGnasetue 6

    composto por todos os registros da tabela Flientes: atrav6s da instru#o S/ ue seleciona(E0EFD) todos (W) os registros da tabela Clientes%

    #bs: Damb6m 6 possCvel criar um dGnaseta partir de outro dGnaset%

    Sna.sots: uso2 vantagens;desvantagens2 configura74o

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    17/170

    Visual Basic Curso Bsico. Pag..:

    Permitem utili!ar os m6todos de busca inde o uso de filtros e ordem de classifica#o paramudar a viso dos dados%

    Para os sna.sots: navega#o pelos registros e a cria#o de recordsets pode ser maisr"pida do ue nos dGnasets%

    $esvantagens do uso de Sna.sots esloca o ponteiro do registro ativo para o registro anterior no recordset aberto% e no houverregistro anterior: vocL est" no primeiro registro: o flag de inCcio de aruivo )#*ser" ativado%

    Moveast:

    Aovimenta o ponteiro do registro ativo para o Iltimo registro do recordset aberto%

    Move n

    >esloca o ponteiro de registro nregistros para frente (n 4ositi&o) ou para tr"s (n negati&o) a partirdo registro ativo no recordset aberto% e o deslocamento levar o ponteiro de registro al6m dos

    limites do recordsetocorrer" um erro%

    Mtodos de ocali@a74o: *ind*irs2 *indNet2 333

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    18/170

    Visual Basic Curso Bsico. Pag..:

    8 partir da posi#o atual no recordset: locali!a o registro seguinte(anterior) ue satisfa! aos crit6riosdefinidos%*indast:8 partir do inCcio do recordset: locali!a o Iltimo registro ue satisfa! aos crit6rios definidos%8pKs a executar o m6todo de locali!a#o vocL deve verificar o status da propriedade N#MA!CB% eNomatc6 verdadeira o m6todo no encontrou o registro deseado: se Nomatc6 falsa o ponteirodo registro se posiciona no registro encontrado%Fomo exemplo suponha ue temos um banco de dados Controle: no diretKrio Fontrole: ue cont6m

    uma tabela Clientes: e ue deseamos encontrar o cliente de nome 8na Aaria 1osa nesta tabela%ea o fragmento de cKdigo abaixo&

    Dim bd as DatabaseDim rs as #ecordset

    Dim criterio as string

    Set bd = DBEngne.Workspaces(0).OpenDatabase("C:ControeControe.mdb") Set rs = bd.Open#ecordset("Cientes"$DbOpenD&naset)

    criterio="nome=+,na *aria #osa+"

    rs.-ind-irst criterio

    i- rs.nomatc!

    msgbo "Ciente n/o ocaiado. " ese msgbo rs.ieds("nome") 1 " ocaiado no ar2ui3o. " endi-

    %so do mtodo See-3

    ; m6todo See-somente pode ser utili!ado com o recordset do tipo !able(Tabela): e: embora ele seao mais r"pido dos m6todos de locali!a#o e posicionamento de registros apresenta as seguinteslimita#7es&

    K pode ser executado sobre uma tabelaO no 6 possCvel us"@lo com um dGnaset ousna4shot%

    K pode ser usado com um Cndice ativo: e os parXmetros devem coincidir com os campos doCndice ativo%

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    19/170

    Visual Basic Curso Bsico. Pag..:

    ".). +T+ C-,T8-%. '/e inCcio selecione o obeto controle de dados na Toolbo@do isual +asic eacrescente@o ao seu formul"rio%(Gig%R)

    Gig@R

    >efina a seguir as propriedades ,ame @ ome do Fontrole (;padro 6 data") e Ca4tion @ Especifica o nome ue aparece nocontrole de dados%(; padro 6 ata") e dimensione o controle dedados%(Gig%2)

    Gig@2

    8 seguir acrescente ao seu formul"rio um uadro de texto(Te@tBo@)para cada campo ue desear acessar a partir do 1ecordsource:anexe cada uadro de texto ao obeto de controle dedados(ata$ource) e especifiue o campo ue cada uadro de textodever" exibir(ataield)%(fig,%)

    Gig@,

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    R-

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    20/170

    Visual Basic Curso Bsico. Pag..:

    $efini74o de Pro.riedades3

    8gora vocL deve associar um banco de dados e um recordset a um controle de dados definindo aspropriedades do controle% 8s propriedades necess"rias a isso so &

    $atabaseName @ Para bancos de dados do +ccess: representa o nome do aruivo do banco dedados: inclusive o nome completo do caminho% (Para banco de dados diferentes do +ccess 6

    necess"rio informar o nome do caminho at6 o subdiretKrio dos dados% Ex@Para padro >base &>atabaseameYc&Zdir)

    "ecordSource@ Especifica as informa#7es ue desea obter no banco de dados @ uma tabela: umainstru#o M0 %

    "ecordset!0.e@ e desea criar um #sna4shotou um acessar uma (tablealtere esta propriedade:pois o padro 6 "dGnaset%

    Connect @ ecess"ria uando o banco de dados no for do +ccess% Ex @ Para banco de dadospadro >base @ FonnectYd+8E$$$%

    Q possCvel optar por ativar essas propriedades durante a execu#o do seu aplicativo% eamos um

    exemplo&ocL acrescentou um controle dados a seu formul"rio e definiu a propriedade ,amecomo $ata1: euer ter acesso no aruivo T/$T/.MB(aruivo access) aos dados da tabela clientes: veamos ocKdigo abaixo&

    data5.Database4ame="C:%ES%E%ES%E.*DB" +pat!6nome do ar2ui3o data5.#ecordSource="Cientes" +-onte dos dados(tabea cientes) data5.recordset%&pe=0 +tipo de recordset(07tabea) data5.#e-res! +impementa as atera89es

    Control $ata: ?antagens;imita78es3

    ?antagens Controle de $ados

    8 principal vantagem do controle de dados 6 a necessidade de menor trabalho de programa#o paradesenvolver um aplicativo de aceso de dados% ocL no precisa fornecer cKdigo de programa paraabrir ou criar um banco de dados ou um recordset: para se movimentar pelos registros ou para editarregistros%Cnculo direto com os dados% ocL no precisa invocar os m6todos /dite K4datepara modificar osdados contidos no banco de dados% 8s altera#7es aparecem no banco de dados to logo sodigitadas%;s v"rios controles vinculados(b%ist bCombo b?rid ...) oferecem um meio f"cil de reali!artarefas ue via cKdigo seriam complexas%

    As limita78es do Controle de dados

    o apresentam fun#o para alterar ou excluir registros%Q mais difCcil a implementa#o do processamento de transa#7es%

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    21/170

    Visual Basic Curso Bsico. Pag..:

    2-'oto para excluso de dados:

    data5.#ecordset.Deete data5.#ecordset.*o3e'ast

    ;bserve ue no foi necess"rio utili!ar o comando %.date: pois as atuali!a#7es so feitasautomaticamente pelo controle de dados uando do deslocamento para um novo registro ou ao

    fechar o formul"rio atrav6s dos eventos Validatee 8e4osition%

    ?alidateEste evento ocorre sempre antes de um registro se tornar o registro corrente ou antes da execu#odo m6todo K4dateou antes da excluso de um registro ou do fechamento do recordset'formul"rioOocL pode associar a este evento o cKdigo para valida#o de seus dados: como no exemplo abaixo&

    ;ri3ate Sub data5nteger$ Sa3e ,s >nteger)>- Sa3e %!en Seect Case *sgBo("Sa3ar ,tera89es ?"$ 3b@uestion A 3bes4o) Case 3bes + >- nome.%et = Empt& %!en *sgBo ">n-orme o nome do Ciente "$$ "ra3ar Cientes"

    nome.Setocus Sa3e = ase ,ction = 3bData,ctionCance Eit Sub Ese>- endereco.%et = Empt& %!en *sgBo ">n-orme endere8o do ciente "$$ "ra3ar Cientes" endereco.Setocus Sa3e = ase +7n/o sa3a

    ,ction = 3bData,ctionCance +7cancea Eit Sub End >- Case 3b4o +F Sa3e = ase

    End SeectEnd >-End Sub

    ;utro evento ue pode ser utili!ado para validar dados 6 o evento 8e4osition&

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    22/170

    Visual Basic Curso Bsico. Pag..:

    Considera78es finais3

    ocL pode utili!ar o controle de dados so!inho no caso de aplicativos em ue o usu"rio tenha acessosomente para leitura ou uando no existe a necessidade de incluso'excluso de registros%; Fontrole de dados 6 Ktimo para prototipa#o de um aplicativo: pois vocL pode desenvolverrapidamente os formul"rios%Para um sistema multiusu"rio de uso intenso o controle de dados pode no ser uma boa escolha:pois pode aumentar a uantidade de conflitos de bloueio de registros%

    Provavelmente a melhor solu#o sea o uso combinado dos controle de dados e de cKdigo deprograma%

    ".L. /V/,T-$: KM ,-V- /,-K/ '/V/,T-$: C-,C/ados (8o 8lterar:etc%),@Eventos de foco (8o 1eceber Goco:=etfocus:etc%).@Eventos de teclado (8o Pressionar Decla:Se*press:etc%)

    4@Eventos de mouse (8o Flicar:FlicV:etc%)5@Eventos de impresso (8o $mprimir: etc%)N@Eventos de erros (;nError)

    eamos alguns eventos&

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    23/170

    Visual Basic Curso Bsico. Pag..:

    Close ocorre quando um 5ormulrio ou relat1rio 6 5echado e remo&ido da tela. - e&ento &penocorre antes do e&ento Load que 4or sua &e2 6 dis4arado quando um 5ormulrio 6aberto e seus registros e@ibidos.

    - e&ento Clo'e ocorre depoi' do evento (nload) *ue + di'parado depoi' *ue o ,ormulrio +,ecado) ma' ante' *ue ele 'eja removido da tela.#s formulrios2 relat+rios2 bot8es de comando2 caia de listagem2 caia de verifica74o2 bot4ode o.74o2 gru.o de o.74o e demais obGetos .ossuem .ro.riedades2 mtodos e eventos

    associados Hue .odemos utili@ar .ara eecutar rotinas a.ro.riadas ao conteto3 Alm dissoeventos .odem dis.arar outros eventos3

    ".Q. - P-/8 + $% '+ %

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    24/170

    Visual Basic Curso Bsico. Pag..:

    8DE >efine os valores dos campos de uma tabela em uma atuali!a#o

    D18G;1AFria uma tabela de resumo: utili!ando o conteIdo de um campo como cabe#alho decada coluna

    >E0EDE G1;A 1emove registros de uma tabela$E1D $D; 8crescenta um grupo de registros a uma tabela%

    eamos alguns exemplos da instru#o E0EFD&R) eleciona os campos JPrimeiro nomeJ e JobrenomeJ de todos os registros da tabela Empregados%

    S

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    25/170

    Visual Basic Curso Bsico. Pag..:

    o objeto de Banco de dado' relacionado) 'eu re0i'tro editado + de'cartado 'em avi'o al0um.

    Muando a propriedade oc-

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    26/170

    Visual Basic Curso Bsico. Pag..:

    Falma: isto 6 apenas uma chamada para alertar ue os desenvolvedores de aplica#7es no podemcantar o refro sem pensar ue na verdade !ime is against me333: i%e: o tempo est" contra mim%abe porue ] Por ue nos aproximamos do s6culo __$ e o )ug do MilQnioest" cada ve! maisperto%

    amos procurar entender a ra!o do problema e de como trat"@lo para evitar frustra#7es futuras%$remos nos ater apenas aos seguintes aplicativos da Aicrosoft utili!ados em aplica#7es desVtop&?isual )asic e Access3

    (m ouco de i'tria

    Para todas as vers7es do isual +asic ate a verso ,%: datas informadas com dois dCgitos(dd'mm'**): so consideradas como pertencentes ao s6culo __: i%e: R-%

    R2'R'- @@@@@T R2'R'R--R'R' @@@@@T R'R'R-,'2'. @@@@@T ,'2'R-.%

    ; cKdigo ue implementa este tratamento est": neste caso: embutido no run@time de cada verso: eno depende da verso do sistema operacional utili!ado nem do formato da data usada%

    Fom o surgimento da Automa74o #

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    27/170

    Visual Basic Curso Bsico. Pag..:

    ,@Fliue com o boto direito do mouse sobre o aruivoO.@elecione propriedadesO4@elecione a ficha erso e cliue em erso do ProdutoO5@e o nImero da verso for igual ou superior a 2%2%..- a nova regra esta sendo usada%

    Criando a 'ua prpria interpreta"#o.ocL pode uerer implementar as suas prKprias regras: comopor exemplo& @ datas com dois dCgitos no ano entre e .- sero interpretadas como do s6culo __$(2 e 2.-): @ e datas entre 4 e -- como do s6culo __%(R-4 e R---)% Para isto basta criar uma

    procedure com o seguinte cKdigo&

    ;ri3ate Sub cmdCon3ertDatenteger

    >- >sDate(ttDate) or ttDate = "H6HI600" %!en +procura primeiro separador intSas! = >nStr(ttDate$ "6") >- intSas! J 0 %!en +procura segundo separador intSas! = >nStr(intSas! A 5$ ttDate$ "6")

    >- intSas! J 0 %!en +Etrai ano da data strear = *id(ttDate$ intSas! A 5) >- 'en(strear) = H %!en >- C>nt(strear) K L0 %!en + *enor 2ue L0: ano = H0MM. strear = "H0" 1 strear Ese + *aior 2ue L0: ano = 5IMM. strear = "5I" 1 strear End >- End >- *sgBo "Data >n-ormada: " 1 ttDate

    *sgBo ",4O (Sua #egra): " 1 strear *sgBo ",4O (#egra do B): " 1 ear(ttDate) Ese *sgBo "Data no -ormato n/o esperado" End >- Ese *sgBo "Data no -ormato n/o esperado" End >- Ese *sgBo "Data in3Nida " End >- + 'impando a data no teto ttDate.%et = 'e-t(ttDate.%et$ intSas!) 1 strear

    End Sub+em: espero no ter criado mais confuso com as datas%

    (1eferLncia& 8rticle $>&MR52NR3 @ Aicrosoft )

    "."(. $% : C8

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    28/170

    Visual Basic Curso Bsico. Pag..:

    8o criar e arma!enar defini#7es de consultas atrav6s de instru#7es M0 o 8ccess analisa a instru#oe a otimi!a sK ento ele arma!ena a instru#o original e a otimi!ada: uando for executar a instru#oo trabalho estar" feito e o tempo de execu#o ser" diminuCdo%Fada consulta arma!enada em um banco de dados 8ccess 6 um obeto /uer0$ef2 o conunto deobetos Muer*>ef comp7em a cole74o /uer0$efs do obeto $atabase % Ento uma /uer0$ef 6 umaconsulta M0 pr6@compilada e pr6@otimi!ada%Para criar uma /uer0$ef usamos o m6todo Create/uer0 do obeto >ata+ase ou a criamosdiretamente usando o prKprio Aicrosoft 8ccess%

    ; Create/uer0necessita de dois parXmetros& o nome da Muer*>ef e a instru#o M0 ue o cria%eamos com o criar uma consulta M0 e arma!en"@la no banco de dados&Para criar uma consulta chamadaistaAlunos2ue lista todos os alunos por ordem alfab6tica databela tblalunose arma!en"@la no banco de dados

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    29/170

    Visual Basic Curso Bsico. Pag..:2d.Eecute

    8s /uer0$efpossuem as seguintes propriedades&

    Ma"ecords@ fixa um limite ue um Muer*>ef pode retornarName@ 8rma!ena e define o nome de um consulta"ecordsAffected @ arma!ena o nImero de registros afetados por um comando Execute%S/@ 1etorna o comando M0 ue originou a consulta%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    2-

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    30/170

    Visual Basic Curso Bsico. Pag..:

    5 !"A)ABAN$# C#M S/ (Conceitos )sicos

    #."

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    31/170

    Visual Basic Curso Bsico. Pag..:

    8 M0:por outro lado: 6 caracteri!ada por ser uma linguagem declarativa: ou sea: ela di! aocomputador o ue uer ue ele fa#a: sem se preocupar de ue forma o trabalho ser" reali!ado: o ueimporta 6 o resultado%

    8 M0 6 composta de subconuntos de comandos para executar diferentes tarefas% 8ssim podemosdi!er ue a M0 suporta &>0 )A0 )

    F0 )

    8 $$permite criar e modificar e excluir a estrutura de uma tabela e seus CndicesO seus principaiscomandos so&

    C"

    #.# Criando tabelas &ia $%.

    amos criar via M0 as tabelas utili!adas no primeira se#o de De'vendando o Cr6'tal eport'(ver Ctem N geral) K para lembrar a estrutura das tabelas 6 dada a seguir&

    !blAlunos !blCursos !blNotas !blProfessor codalunonomeenderecotelefonenascimentonomepainomemaeobservacaoPeriodoserienumero

    codcursonomecursocodprofessor

    codalunocodcursonotaanobimestre;bservacao

    cod.rofessornomeenderecotelefone

    ;bs & Codaluno : Codcurso: CodProfessor so chaves prim"rias de suas respectivas tabelas%Para exercitar iremos definir os relacionamentos entre as tabelas da seguinte forma (figura R%abaixo&

    figura R%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    ,R

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    32/170

    Visual Basic Curso Bsico. Pag..:

    8 tabela tbl.rofessorpode ser definida como a seguir (8ccess M0) &

    C#E,%E %,B'E tbpro-essor(codpro-essor >4%EE# CO4S%#,>4% primar&ke& ;#>*,# PE$nome %EM% (L0)$endereco %EM% (L0)$tee-one %EM% (5L) )Q

    8 instru#o C"

    C#E,%E %,B'E tbcursos(codcurso >4%EE# CO4S%#,>4% primar&ke& ;#>*,# PE$nomecurso %EM% (5L)$codpro-essor >4%EE# CO4S%#,>4% tbpro-essorP #EE#E4CES tbpro-essor)Q

    8 cl"usula C#NS!"AIN!6 utili!ada para definir uma chave prim"ria e uma chave externa%

    ote ue existe uma rela#o de um para muitos entre a tabela !blProfessore a tabela !blCursos:sendo ue a coluna codprofessor da tabela !blCursos: 6 uma chave estrangeira (Goreign Se* @ GS )

    #.; =ndices e Tabelas Criar +lterar e /@cluir.

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    33/170

    Visual Basic Curso Bsico. Pag..:

    R@ a incluso de um campo temos ue especificar o ;AE: D$P; e D8A8H; do campo: e usar acl"usula A$$ C#%MN

    8ssim para incluir o campo F$>8>E com 4 caracteres na tabela tblalunos fa!emos&

    80DE1 D8+0E tblalunos 8>> F;01;P F;01;P $>E_ series ; tblalunos

    #.A Testando +s 8D8 ue acompanha o isual +asic2@) ; Aicrosoft 8ccess,@) ; Aicrosoft Muer* (para usu"rios do Excel ou ;ffice)

    Eu o aconselho a evitar a codifica#o uando estiver testando as instru#7es: pois tanto o $>8D8como o 8ccess so mais f"cies de usar e lhe do o resultado de imediato%

    S/ F Criando Consultas Parametri@adas

    ; microsoft 8ccess nos d" a possibilidade de criar e arma!enar consultas dentro do aruivo de bancode dados% 8 vantagem em arma!enar as consultas no banco de dados 6 ue para executar uma

    instru#o M0 o BED verifica erros de sintaxe: depois ele tenta otimi!ar a instru#o e a seguir executaa instru#o: tudo isto leva tempo e a coisa piora se vocL estiver executando as mesmas instru#7esMl diversas ve!es: pois o BED ter" ue refa!er tudo novamente%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    ,,

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    34/170

    Visual Basic Curso Bsico. Pag..:

    8o criar e arma!enar defini#7es de consultas atrav6s de instru#7es M0 o 8ccess analisa a instru#oe a otimi!a sK ento ele arma!ena a instru#o original e a otimi!ada: uando for executar a instru#oo trabalho estar" feito e o tempo de execu#o ser" diminuido%

    Fada consulta arma!ada em um banco de dados 8ccess 6 um obeto /uer0$ef2 o conunto deobetos Muer*>ef comp7em a cole74o /uer0$efs do obeto $atabase % Ento uma /uer0$ef 6 umaconsulta M0 pr6@compilada e pr6@otimi!ada%

    Para criar uma /uer0$ef usamos o m6todo Create/uer0 do obeto >ata+ase ou a criamosdiretamente usando o prKprio Aicrosoft 8ccess%

    ; Create/uer0necessita de dois parXmetros& o nome da Muer*>ef e a instru#o M0 ue o cria%eamos com o criar uma consulta M0 e arma!en"@la no banco de dados&

    Para criar uma consulta chamadaistaAlunos : ue lista todos os alunos por ordem alfab6tica databela tblalunose arma!en"@la no banco de dados

    ; m6todo

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    35/170

    Visual Basic Curso Bsico. Pag..:

    Dim db as DatabaseDim 2d as @uer&De-Dim d&n as #ecordsetDim S2 as Stringset db=DbEngineorkspaces(0).Opendatabase(app.pat! 1 "escoa.mdb")s2= "DE'E%E #O* tbaunos WE#E ati3o=ase "set 2d=db.Create@uer&De-(",pagaef pode retornar Name@ 8rma!ena e define o nome de um consulta "ecordsAffected @ arma!ena o nImero de registros afetados por um comando Execute% S/@ 1etorna o comando M0 ue originou a consulta%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    ,4

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    36/170

    Visual Basic Curso Bsico. Pag..:

    !"A)ABAN$# C#M "

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    37/170

    Visual Basic Curso Bsico. Pag..:

    eamos as op#7es mais usadas&

    db$en0"ead $mpede os usu"rios de examinar os dados contidos na tabela:at6 vocL fech"@la% (>isponCvel para recordsets do tipo tabela)ocL usuar" esta op#o uando for necess"rio atuali!arinforma#7es na tabela inteira%Ex&

    Dim db as database$rs as recordsetSet rs=db.openrecordset ("nome*nasets enapshot) ocL pode usar esta op#o uando estiverincluindo novos registros na tabela e no houvessemodifica#7es nos registros existentes%Ex&Dim db as database$rs as recordsetSet rs=db.openrecordset( "nomeai conclui@se ue o cKdigo de tratamento de erros dever" ser utili!ado em todos os lugares onde om6todo #.en"ecordset for utili!ado: pois neste caso o m6todo falhar" e vocL tem ue estarpreparado para interceptar o erro gerado%

    Mue tal provarmos tudo isso ] Ento vamos l"%%%ea na se#o "

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    38/170

    Visual Basic Curso Bsico. Pag..:

    ;.; Bloqueio de 8egistros

    e sua aplica#o for rodar em um ambiente multiusu"rio mais cedo ou mais tarde algu6m tentar"atuali!ar um registro ue est" bloueado por outro usu"rio ou outro usu"rio tentar" modificar umregistro ue vocL esta atuali!ando% E ai%%%]

    8ntes de fa!er um pedido para editar um registro " existente ou incluir um novo registro: o Bet ir"verificar se nenhum outro usu"rio esta tentando modificar o registro ou acrescentando um registronovo: para isso o Bet utili!a a t6cnica debloueio de registros%

    Aas aten#o: o et no aceita o bloueio de registros: na verdade o ue ocorre 6 o bloueio da p"ginaou p"ginas contendo o registro% Fomo uma p"gina cont6m 2S (2.3 b*tes): o bloueio ser" efetuadono somente no registro deseado mas tamb6m nos adacentes: a no ser ue o registro tenhaexatamente otamanho de 2.3 b*tes%

    ; et trabalha ento com dois m6todos de bloueios & o 4essimistae o otimista% eamos cada umdeles&

    R@)loHueio .essimista(; padro usado pelo +)

    Executa o bloueio da p"gina ue cont6m o registro no momento ue sua aplica#o executar om6todo eterminar ual tipo de bloueio usar&4essimistaou otimista

    o primeiro caso temos os conflitos de bloueio: ou sea: se um usu"rio bloueou um registro e outrousu"rio reuisitou um bloueio no mesmo registro ocorr" um erro%

    Fomo o + no fornece uma maneira de verificar se um registro est" bloueado: vocL tem ue estarpreparado para os erros de bloueio implementando um cKdigo de tratamento de erros em todos oslugares onde ir" acrescentar ou atuali!ar os registros%

    >entre os inImeros erros ue o Bet retorna em ambiente multiusu"rio existem , ueso muitoimportantes e deles vocL deve se proteger: veamos &

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    39/170

    Visual Basic Curso Bsico. Pag..:

    este caso o erro ocorre uando vocL tentar executar o m6todo

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    40/170

    Visual Basic Curso Bsico. Pag..:

    W C#N!"# $A!A ( ProGeto Comentado

    Proeto inteiramente comentado utili!ando os controles vinculados: seus m6todos: eventos epropriedades% 8prenda a Friar Dabelas: Cndices: Fhaves Prim"rias: $ncluir: 8lterar: Excluir: alidar e0ocali!ar registros% Fonstrua uma aplica#o com poucas linhas de cKdigo% Fonsidera#7es sobre o usodo >ata Fontrol e compara#o com a >8; e M0%

    .%R 8cesso a +ase de >ados @ >ata Fontrol

    ocL uer implantar um cadastro de Flientes em sua empresa: e: desea arma!enar as seguintesinforma#7es& Fodigo: ome: Endere#o: Fidade: Fep: efini#o do banco de dados e tabelas%

    >efinindo banco de dados: tabelas: campos e registros%

    K para lembrar: vocL uer implantar um cadastro de Flientes em sua empresa e desea arma!enaras informa#7es& Fodigo: ome: Endere#o: cidade: cep:

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    41/170

    Visual Basic Curso Bsico. Pag..:

    (W)Fomo cada cliente deve ter um cKdigo Inico garantindo assim a exata identifica#o do mesmo:defina o tipo de dados para o campo cKdigo como 0;= $DE=E1: e ative o atributo Founter e aop#o 1euired: dessa forma criamos um campo do tipo contador ue o prKprio sistema ir" controlara cada incluso'excluso%,@>efina um Cndice para o campo codigo ativando as seguintes op#7es& esenhar a interface da aplica#o com o usu"rio

    >esenhando a interface com o usu"rio

    8 tela principal de nossa aplica#o dever" ter o seguinte aspecto&

    5igura ".(

    Podemos observar ue no formul"rio Flientes temos&

    R) ete etiuetas(labels) e sete caixas de texto (Dextbox)

    2) ata Fontrol)

    ,) Finco bot7es de comandos (Fommand+utton)

    amos montar o formul"rio Flientes conforme descrito abaixo&

    R) $nicie um novo proeto no isual +asic%=rave o formul"rio GormR como Flientes%

    2) 8dicione ao GormR os obetos e configure as propriedades conforme a tabela R% abaixo &

    Dabela R% @ ;betos e propriedades do formul"rio Flientes;beto Propriedade Fonfigura#o

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Gorm ame Flientes

    Faption JFadastro de FlientesJ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ >ata ame dtaFli

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    .R

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    42/170

    Visual Basic Curso Bsico. Pag..:

    Faption JDotal de clientes&J Fonnect 8ccess

    >atabasename JF&ZF;D1;0EZF;D1;0E%A>+J(W) 1ecordetD*pe @Dable

    1ecordource JFlientesJ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ label ame labelR Faption JFKdigoJ

    8utosi!e Drue @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ label ame label2 Faption JomeJ 8utosi!e Drue @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ label ame label, Faption JEndere#oJ 8utosi!e Drue @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ label ame label. Faption JFidadeJ 8utosi!e Drue

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ label ame label4 Faption JataGield JFodigoJ

    >ataource dtaFli @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Dext+ox ame nome >ataGield JomeJ

    >ataource dtaFli @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Dext+ox ame endereco >ataGield JEnderecoJ

    >ataource dtaFli @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Dext+ox ame cidade

    >ataGield JcidadeJ>ataource dtaFli

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Dext+ox ame uf >ataGield Jataource dtaFli @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Dext+ox ame cep >ataGield JFepJ

    >ataource dtaFli @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Dext+ox ame telefone >ataGield JDelefoneJ

    >ataource dtaFli @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Fommand+utton ame incluir

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    .2

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    43/170

    Visual Basic Curso Bsico. Pag..:

    Faption J$ncluirJ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Fommand+utton ame excluir Faption JExcluirJ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Fommand+utton ame locali!ar Faption J0ocali!arJ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    Fommand+utton ame gravar Faption J=ravarJ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Fommand+utton ame sair Faption JairJ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@(W) ; aruivo Fontrole%mdb deve estar no diretKrio F;D1;0E%

    ,) $mplementar o cKdigo da aplica#o

    FKdigo >a 8plica#o

    ;beto Fontrole de >ados(>ata Fontrol)

    0embre@se ue vocL esta usando um banco de dados do Aicrosoft 8ccess: ento&Para o obeto >ata voce deve configurar as propriedades como abaixo&

    R@ 8 propriedade Fonnect deve estar como& 8ccess%

    2@ 8 propriedade ame do controle deve ser& >taFli%

    ,@ ; >atabaseame 6 o nome do seu aruivo de banco de dados: no caso& Fontrole%mdb

    .@ ; 1ecordource poder" ser uma tabela ou uma instru#o M0: no seu caso: 6 a tabela Flientes dobanco de dados Fontrole%mdb%

    4@ 8 propriedade 1ecordetD*pe deve ser definida como @Dable%

    Por isso criamos o Cndice com o campo cKdigo: para utili!ar com o m6todo eeV do 1ecordset Dabela%e recordetD*pe fosse definido como "Gnaset ou #$na4shot n4opoderiamos usar o m6todoSee-e sim o *ind*irst2 *indNet2 *indast: etc%

    ;bs% ocL poderia ter incluido o cKdigo no evento 0oad do seu formul"rio configurando aspropriedades discutidas acima da seguinte forma&

    Sub ormataource deve receber o nome do obeto >ata& >taFli

    2@ 8 propriedade >ataGield de cada Dext+ox deve ser vinculada ao respectivo campo da tabelaFlientes% (elecione na lista de campos)%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    .,

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    44/170

    Visual Basic Curso Bsico. Pag..:

    Geito isto o Fontrole de dados: >taFli fornecer" o vinculo entre o seu formul"rio e o +anco de dadosatrav6s da propriedade >ataGield das Faixas de Dexto(Dext+ox) e tamb6m as ferramentas para anavega#o atrav6s do banco de dados%

    Para movimentar@se pelos registros da tabela Flientes basta clicar nos bot7es do obeto >taFli%

    FKdigo associado a cada boto de commando

    >ica& @ 8 palavra 1ecordset pode representar um obeto e uma propriedade% >esta forma vocL pode atribuir um 1ecordset a uma vari"vel obeto: da seguinte forma&

    Set meusdados = Data5.#ecordset

    8 seguir vocL pode se referir ao seu 1ecordset usando a vari"vel obeto%(o esue#a de definC@lapreviamente%)

    o exemplo a seguir no usaremos esta nota#o%Para inserir as linhas de cKdigo basta clicar duas ve!es no boto correspondente do seu formul"rio%

    "C1digo 4ara boto incluir dados:

    ;ri3ate Sub >ncuir- >- endereco.%et = Empt& %!en *sgBo ">n-orme o endereco do ciente."$ 3bEcamation$"ra3ar Cientes" endereco.Setocus Eit Sub End >- >- cidade.%et = Empt& %!en *sgBo ">n-orme a cidade do ciente."$ 3bEcamation$"ra3ar Cientes" cidade.Setocus Eit Sub End >- >- u-.%et = Empt& %!en *sgBo ">n-orme a G do ciente."$ 3bEcamation$ "ra3ar Cientes" u-.Setocus Eit Sub End >- >- cep.%et = Empt& %!en *sgBo ">n-orme o Cep do ciente."$ 3bEcamation$ "ra3ar Cientes" cep.Setocus

    Eit Sub End >- dtaci.Gpdate#ecord dtaci.#ecordset.Bookmark = dtact.#ecordset.'ast*odi-ied

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    ..

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    45/170

    Visual Basic Curso Bsico. Pag..:sair(U).Caption = "1Sair"

    ocaiar.Enabed = %rue End Sub

    a rotina de grava#o verificamos se os dados ue so obrigatKrios:no nosso caso sK o telefone no6: foram informadosO ento nome: endere#o: cidade: uf: cep no podem ser va!ios(empt*)%

    e ualuer deles no for informado 6 exibida a mensagem respectiva(msgbox): o foco retorna ao

    campo para preenchimento(setfocus) e a rotina de grava#o 6 abandonada%(Exit ub)e todos os campos obrigatKrios foram informados os sistema acrescenta fisicamente o registro natabela: atrav6s do m6todo

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    46/170

    Visual Basic Curso Bsico. Pag..:

    )C1digo 4ara o boto %ocali2ar dados:

    ;ri3ate Sub ocaiarnde = "codigo" +recordset V do tipo %abe

    criterio = >nputBo("Codigo do ciente a ocaiar: "$ "'ocaiar Cientes")

    >- criterio KJ Empt& %!en dtaci.#ecordset.Seek "="$ criterio >- dtaci.#ecordset.4o*atc! %!en *sgBo "Ciente n/o ocaiado "$ 3bEcamation$ "'ocaiar Cientes" dtaci.#ecordset.Bookmark = marcador End >- Ese dtaci.#ecordset.Bookmark = marcador End >- End Sub

    Para a rotina de locali!a#o definimos a posi#o atual do registro ativo usando a propriedade

    booVmarV>efinimos o Cndice ativo (codigo ue foi criando anteriormente olicitamos o cKdigo do cliente:arma!enando o valor na vari"vel crit6rio%e ($f) criterio for diferente (T) de va!io (empt*): ento um valor foi fornecido e podemos iniciar alocali!a#o usando o m6todo seeV% e no for informado nenhum valor para a vari"vel criterioretormamos o ponteiro de registro para a posi#o anterior ao inicio da locali!a#o%e o valor no for encontrado (omatchYDrue) o sistema emite uma mensagem (msgbox):informando ao usu"rio e posiciona o ponteiro de registro na posi#o anterior a busca%

    LC1digo do e&ento 8e4osition:

    ;ri3ate Sub dtact- dtaci.#ecordset.#ecordCount K J 0 %!en incuir(0).Enabed = %rue ecuir(5).Enabed = %rue dtaci.Caption = "%ota de Cientes: " 1 dtact.#ecordset.#ecordCount Ese ecuir(5).Enabed = ase incuir(0).Enabed = %rue gra3ar(H).Enabed = ase dtaci.Caption = "O ar2ui3o esta 3aio" End >-End Sub

    ; evento 1eposition ocorre uando o >ata control move@se de um registro para outro% o cKdigoacima cada ve! ue o o evento 1eposition 6 disparado atuali!amos a propriedade Faption do controlede dados atribuando a mesma o nImero total de registro do aruivo via propriedade 1ecordFount%8l6m disso habilitamos os bot7es incluir e excluir se houver registros no aruivo e desabilitamos osbot7es excluir e gravar se o aruivo estiver va!io%

    QC1digo do e&ento Validate:

    ;ri3ate Sub dtactnteger$ Sa3e ,s >nteger) >- Sa3e %!en Seect Case *sgBo("DeseXa Sa3ar ,tera89es ?"$ 3b@uestion A 3bes4o) Case 3bes + >- nome.%et = Empt& %!en *sgBo "4ome do Ciente de3e ser in-ormado "$$ "ra3ar Cientes" nome.Setocus

    Sa3e = ase +nao sa3a os dados ,ction = 3bData,ctionCance +Cancea acao Eit Sub Ese>- endereco.%et = Empt& %!en

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    .5

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    47/170

    Visual Basic Curso Bsico. Pag..:*sgBo "Endereco do Ciente de3e ser in-ormado "$$ "ra3ar Cientes"

    endereco.Setocus Sa3e = ase ,ction = 3bData,ctionCance Eit Sub Ese>- cidade.%et = Empt& %!en *sgBo ";or -a3or$ in-orme a cidade do Ciente "$$ "ra3ar Cientes" cidade.Setocus Sa3e = ase

    ,ction = 3bData,ctionCance Eit Sub Ese>- cep.%et = Empt& %!en *sgBo "Cep do Ciente de3e ser in-ormado "$$ "ra3ar Cientes" cep.Setocus Sa3e = ase ,ction = 3bData,ctionCance Eit Sub Ese>- u-.%et = Empt& %!en *sgBo ";or -a3or$ in-orme a G do Ciente "$$ "ra3ar Cientes" u-.Setocus Sa3e = ase ,ction = 3bData,ctionCance Eit Sub End >-

    Case 3b4o +F Sa3e = ase End Seect End >-End Sub

    ; evento alidate 6 acionado uando o >ata Fontrol est" para mover@se de um registro para umnovo% esse meio tempo vocL pode cancelar ou no as mudan#as feitas no registro% 8 sub rotina doevento alidate possui dois argumentos&

    Action >escreve o evento ue causou o evento alidateSave 8ssume dois valores!rue se ualuer dado for modificado

    *alse se no houver modifica#o

    ata8ctionFancel) e mudar o valor deave uando necess"rio%

    RC1digo 4ara tratamento de erros

    ;ri3ate Sub dtactnteger$ response ,s >nteger) +trata erros 2uando nen!um cTdigo esta sendo eecutado

    Seect Case dataerr

    Case Y0UU +camin!o in3aido *sgBo "O camin!o in-ormado n/o V 3aido$ 3eri-i2ue " End +uma maneira muito rude de interromper sua apicacao$ mas...

    Case Y0HU +nao ac!ou banco de dados *sgBo "O ar2ui3o de-inido n/o -oi encontrado " End

    Case Ese +*sgBo "Erro em : " 1 Error(dataerr) +para mostrar o erro. response = 3bDataErrcontinue +ou 3bdataErrdispa&

    End Seect

    End Sub

    8 rotina acima 6 utili!ado para interceptar erros ue ocorrem uando nenhum cKdigo est" sendo

    executado%

    Estes erros podem ocorrer uando a carga do formul"rio ainda no estiver completa%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    .N

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    48/170

    Visual Basic Curso Bsico. Pag..:

    X $3A3# (ProGeto comentado

    $ata Access #bGet@ *nasets: napshots: Dables: incluir: alterar: excluir e a manipular os dados dessesobetos via >%8%;% Proeto explicado passo a passo%

    /strutura da tabela.$efinicao da estrutura da tabela3

    amos definir uma tabela com o nome de fornecedores ue estar" arma!enada no banco de dadosControle3mdbe ue possuir" a seguinte estrutura&

    777777777777777777777777777777777777777777777777777777777 nome do campo %ipo de Dados %aman!o do Campo 777777777777777777777777777777777777777777777777777777777 nome Caracter Y0 cgc Caracter 5Z endereco Caracter Y0

    cep Caracter 0I u- Caracter 0H ddd Caracter 0U -one Caracter 50 rama Caracter 0U -a Caracter 50 contato Caracter H0 produto Caracter H0 777777777777777777777777777777777777777777777777777777777R@;s campos ome: F=F e Endere#o no podem ser ulos: ou sea so de preenchimentoobrigatKrio%

    2@>efina um Cndice para o campo nome desativando as op#7es&

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    49/170

    Visual Basic Curso Bsico. Pag..:

    Gig@RPara montar o formul"rio acima descrito observe os seguintes passos&

    R@$nicie um novo proeto no isual +asic%=rave o formul"rio GormR como Gornecedores%

    2@8dicione ao GormR os obetos e configure as propriedades conforme a tabela R% abaixo &

    Dabela R% @ ;betos e propriedades do formul"rio Gornecedores777777777777777777777777777777777777777777777777777777777777777777777777777 ObXeto ;ropriedade Con-igura8/o777777777777777777777777777777777777777777777777777777777777777777777777777 orm 4ame ornecedores

    Caption "Cadastro de ornecedores"777777777777777777777777777777777777777777777777777777777777777777777777777 %etBo 4ame 4ome *aengt! Y0777777777777777777777777777777777777777777777777777777777777777777777777777 *askedBo 4ame CC *ask [[.[[[.[[[6[[[7[[ ;romp>ncude ase ;romptC!ar " "777777777777777777777777777777777777777777777777777777777777777777777777777 %etBo 4ame Endereco *aengt! Y0777777777777777777777777777777777777777777777777777777777777777777777777777

    *askedBo 4ame Cep *ask [[[[[7[[[ ;romp>ncude ase ;romptC!ar " "777777777777777777777777777777777777777777777777777777777777777777777777777 %etBo 4ame G *a'engt! H777777777777777777777777777777777777777777777777777777777777777777777777777 %etBo 4ame DDD *a'engt! U777777777777777777777777777777777777777777777777777777777777777777777777777 *askedBo 4ame one *ask [[[[7[[7[[ ;romp>ncude ase ;romptC!ar " "777777777777777777777777777777777777777777777777777777777777777777777777777 %etBo 4ame #ama

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    .-

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    50/170

    Visual Basic Curso Bsico. Pag..:*a'engt! U

    777777777777777777777777777777777777777777777777777777777777777777777777777 *askedBo 4ame a *ask [[[[7[[7[[ ;romp>ncude ase ;romptC!ar " "777777777777777777777777777777777777777777777777777777777777777777777777777 %etBo 4ame Contato

    *a'engt! H0777777777777777777777777777777777777777777777777777777777777777777777777777 %etBo 4ame ;roduto *a'engt! H0777777777777777777777777777777777777777777777777777777777777777777777777777 rame Caption "" 4ame rame5777777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame >ncui Caption "1>ncui"77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame ,tera Caption "1,tera"

    77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame Ecui Caption "1Ecui"77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame ra3a Caption "1ra3a"77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame Cancea Caption "1Cancea"77777777777777777777777777777777777777777777777777777777777777777777777777 rame Caption "%ee-one6Contato6;roduto" 4ame rameH77777777777777777777777777777777777777777777777777777777777777777777777777

    ()CommandButton 4ame Command5(0) Caption "\K"77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame Command5(5) Caption "K"77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame Command5(H) Caption "J"777777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame Command5(Y) Caption "J\"777777777777777777777777777777777777777777777777777777777777777777777777777()'abe Caption

    ,utoSie 777777777777777777777777777777777777777777777777777777777777777777777777777

    (W)Constituem um control arra0 F Controles com o mesmo nome e do mesmo ti.o2 dotados deum Yndice identificador3

    (WW)!odos os controles abel .ossuem a .ro.riedade AutoSi@eD!rue e Ca.tion sendo igual aonome do res.ectivo controle !et)o2Mas-

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    51/170

    Visual Basic Curso Bsico. Pag..:

    1FC+digo da se74o :eneral Declaration' do formulrio

    ;ri3ate base ,s Database;ri3ate tabea ,s #ecordset;ri3ate atuaia ,s >nteger

    >efine as vari"veis ue sero visCveis em todo o formul"rio%

    5FC+digo do evento oad do formulrio3

    ;ri3ate Sub orm- (tabea.Edit*ode = dbEdit,dd) Or n;rogress) %!en cancea- Seect Case >nde Case *OE#S% tabea.*o3eirst Case *OEOGS tabea.*o3e;re3ious >- tabea.BO %!en tabea.*o3eirst Case *OE- tabea.EO %!en tabea.*o3e'ast Case *OE

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    52/170

    Visual Basic Curso Bsico. Pag..:

    ;ri3ate Sub incui- 4ot tabea.BO %!en tabea.*o3e;re3ious

    End >- mostra-End Sub

    VFC+digo associado ao bot4o Alterar dados3

    ;ri3ate Sub ateran;rogress) %!en atuaia = %rue gra3a- atuaia %!en tabea.Gpdate

    incui.Enabed = %rue ecui.Enabed = %rue atera.Enabed = %rue gra3a.Enabed = %rue cancea.Enabed = %rue End >-End >-End Sub

    ZFC+digo associado ao bot4o Cancelar3

    ;ri3ate Sub cancea- (tabea.Edit*ode = dbEdit,dd) Or < (tabea.Edit*ode = dbEdit>n;rogress) %!en tabea.CanceGpdate

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    42

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    53/170

    Visual Basic Curso Bsico. Pag..:tabea.Bookmark = marca

    mostra- incui.Enabed = %rue ecui.Enabed = %rue atera.Enabed = %rue gra3a.Enabed = %rue cancea.Enabed = %rue

    End Sub

    FProcedimento de evento .ara gravar os registros3

    ;ubic Sub gra3a- nome = Empt& %!en *sgBo "O nome V obrigatorio " nome.Setocus atuaia = ase Eit Sub End >- >- cgc = Empt& %!en *sgBo "O CC tambem V obrigatorio "

    cgc.Setocus atuaia = ase Eit Sub End >- >- endereco = Empt& %!en *sgBo "O endereco V obrigatorio " endereco.Setocus atuaia = ase Eit Sub End >- tabeaRnome = nome tabeaRcgc = cgc tabeaRendereco = endereco

    tabeaRcep = >>-(>s4u(cep)$ ""$ cep) tabeaRu- = >>-(>s4u(u-)$ ""$ u-) tabeaRddd = >>-(>s4u(ddd)$ ""$ ddd) tabeaR-one = >>-(>s4u(-one)$ ""$ -one) tabeaRrama = >>-(>s4u(rama)$ ""$ rama) tabeaR-a = >>-(>s4u(-a)$ ""$ -a) tabeaRcontato = >>-(>s4u(contato)$ ""$ contato) tabeaRproduto = >>-(>s4u(produto)$ ""$ produto)End Sub

    $ica:Poderiamos usar a seguinte nota#o abaixo para diminuir o cKdigo&

    8o inv6s de @T tabeaRcep = >>-(>s4u(cep)$ ""$ cep)

    Ga!emos @T tabeaRcep = "" 1 cep

    ou @T tabeaR3aor- 4ot >s4u(tabeaRcgc) %!en cgc = tabeaRcgc

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    4,

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    54/170

    Visual Basic Curso Bsico. Pag..:Ese

    cgc = "" End >- >- 4ot >s4u(tabeaRendereco) %!en endereco = tabeaRendereco Ese endereco = "" End >-

    >- 4ot >s4u(tabeaRcep) %!en cep = tabeaRcep Ese cep = "" End >- >- 4ot >s4u(tabeaRu-) %!en u- = tabeaRu- Ese u- = "" End >- >- 4ot >s4u(tabeaRddd) %!en ddd = tabeaRddd Ese

    ddd = "" End >- >- 4ot >s4u(tabeaR-one) %!en -one = tabeaR-one Ese -one = "" End >- >- 4ot >s4u(tabeaRrama) %!en rama = tabeaRrama Ese rama = "" End >- >- 4ot >s4u(tabeaR-a) %!en

    -a = tabeaR-a Ese -a = "" End >- >- 4ot >s4u(tabeaRcontato) %!en contato = tabeaRcontato Ese contato = "" End >- >- 4ot >s4u(tabeaRproduto) %!en produto = tabeaRproduto Ese produto = ""

    End >-

    End Sub

    11FProcedimento de

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    55/170

    Visual Basic Curso Bsico. Pag..:produto = ""

    End Sub

    $ica:e tivessemos utili!ado um control arra* poderiamos ter usado um la#o Gor'ext para diminuir o cKdigo%

    E: -or =0 to L tet5().tet=""

    net

    ;u: de forma mais elegante: poderiamos criar uma rotina gen6rica&

    ;ubic Sub 'impaControes(tea as orm) Dim i as integer

    or i=0 to tea.contros75 i- %&peO- tea.Contros(i) is %etBo t!en tea.Contros(i).tet="" endi- 4et

    End Sub11F"otina associada a caia de teto vinculada ao cam.o "amal 3

    ;ri3ate Sub ramanteger) >- Pe&,scii K UZ Or Pe&,scii J LF %!en Pe&,scii = 0End Sub

    15F"otina associada a caia de teto vinculada ao cam.o %* 3

    ;ri3ate Sub u-nteger) Pe&,scii = ,sc(GCase(C!r(Pe&,scii)))End Sub

    1FC+digo associado a o.74o locali@ar do menu 3

    ;ri3ate Sub mnuocaiande = "nome"busca = >nputBo(">n-orme o nome do -ornecedor : "$ "'ocaia")

    >- busca = Empt& %!en

    Eit Sub Ese tabea.Seek "="$ busca End >->- 4ot tabea.4o*atc! %!en

    mostra-End Sub

    1WFC+digo associado a o.74o Sair do menu3

    ;ri3ate Sub mnusair

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    56/170

    Visual Basic Curso Bsico. Pag..:End Sub

    1XF*un74o .ara ?alidar o CTC3

    Podemos implementar nosso sistema com uma fun#o ue valide o nImero do F=F do Fliente%

    8 funco para valida#o pode ser colocada no evento ostfocus do controle AasVedbox F=Fchamando a fun#o Falculacgc e passando como parXmetro o nImero do F=F digitado da seguinte

    forma&

    ;ubic unction aidaCC(CC as string) as Booean

    i- en(cgc) K J 5U t!en 3aidacgc = ase

    Eit -unctionEndi-

    i- cacuacgc(e-t(cgc$5H)) KJ mid(cgc$5Y$5) t!en 3aidacgc=ase

    Eit unctionEndi-

    i- cacuacgc(e-t(cgc$5Y)) KJ mid(cgc$5U$5) t!en 3aidacgc=ase Eit unctionEndi-

    3aidacgc=%rue

    End unction

    8 fun#o ue fa! o calculo do dCgito verificador 6 a seguinte&;ubic unction CacuaCC(4umero as string) as string

    dim i as integerdim prod as integerdim mut as integerdim digito as integer

    i- not isnumeric(numero) t!en cacuacgc="" Eit -uncionEndi-

    mut=H-or i=en(numero) to 5 step 7 5 prod=prodA 3a(mid(numero)$i$5)) mut mut = ii-(mut=I $ H$ mutA5)net

    digito= 55 7 int(prod mod 55)digito= ii-(digito=50 or digito=55 $ 0 $ digito)

    cacuacgc=trim(str(digito))

    End unction

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    45

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    57/170

    Visual Basic Curso Bsico. Pag..:

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    4N

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    58/170

    Visual Basic Curso Bsico. Pag..:

    V S/

    Strutured /uer0 anguage@ ;timi!e sua aplica#o usando a M0 em seu cKdigo e agili!e o acessoa seus dados% 8prenda a manipular as principais instru#7es da linguagem M0 de uma forma pr"tica%ea nesta aplica#o como incluir: atuali!ar: excluir dados de suas tabelas usando a M0% >eixa aM0 fa!er todo o servi#o%

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    59/170

    Visual Basic Curso Bsico. Pag..:

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    60/170

    Visual Basic Curso Bsico. Pag..:777777777777777777777777777777777777777777777777777777777777777777777777777 %etBo 4ame encuir Caption "1>ncuir"77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame ,terar Caption "1,terar"77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame Ecuir Caption "1Ecuir"77777777777777777777777777777777777777777777777777777777777777777777777777

    CommandButton 4ame >mprime Caption ">m1prime"77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton([) 4ame ra3ar Caption "1ra3ar"77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton([) 4ame Cancear Caption "1Cancear"77777777777777777777777777777777777777777777777777777777777777777777777777 CommonDiaog 4ame CommonDiaog577777777777777777777777777777777777777777777777777777777777777777777777777 Cr&sta#eport 4ame Cr&sta#eport577777777777777777777777777777777777777777777777777777777777777777777777777

    ;icture 4ame ;icture5 isibe %rue BackCoor au77777777777777777777777777777777777777777777777777777777777777777777777777 ;icture 4ame ;ictureH isibe ase BackCoor au77777777777777777777777777777777777777777777777777777777777777777777777777 >mage 4ame >mage5 Stretc! %rue77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame -oto Caption >ncui -oto

    77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame primeiro Caption "\K"77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame anterior Caption "K"77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame proimo Caption "J"77777777777777777777777777777777777777777777777777777777777777777777777777 CommandButton 4ame utimo Caption "J\"77777777777777777777777777777777777777777777777777777777777777777777777777()'abe Caption ,utoSie 77777777777777777777777777777777777777777777777777777777777777777777777777

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    5

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    61/170

    Visual Basic Curso Bsico. Pag..:

    (WW) !odos os controles abel .ossuem a .ro.riedade+uto$i2eITruee Ca4tionsendo igual aonome do res.ectivo controle !et)o2Mas-nde = "sobrenome"

    enc!e-

    mostras4u(tabeaRsobrenome) %!en sobrenome = tabeaRsobrenome Ese sobrenome = "" End >- >- 4ot >s4u(tabeaRnome) %!en nome = tabeaRnome Ese

    nome = "" End >- >- 4ot >s4u(tabeaRendereco) %!en

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    5R

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    62/170

    Visual Basic Curso Bsico. Pag..:endereco = tabeaRendereco

    Ese endereco = "" End >- >- 4ot >s4u(tabeaRcep) %!en cep = tabeaRcep Ese cep = ""

    End >- >- 4ot >s4u(tabeaRu-) %!en cmbestados.%et = tabeaRu- Ese cmbestados.%et = "" End >- >- 4ot >s4u(tabeaRnascimento) %!en nascimento = tabeaRnascimento Ese nascimento = "" End >- >- 4ot >s4u(tabeaRtee-one) %!en tee-one = tabeaRtee-one

    Ese tee-one = "" End >- >- 4ot >s4u(tabeaRpais) %!en cmbpaises.%et = tabeaRpais Ese cmbpaises.%et = "" End >- >- 4ot >s4u(tabeaRe- >- 4ot >s4u(tabeaR-oto) %!en nome-oto = %rim(tabeaR-oto) >mage5.;icture = 'oad;icture(nome-oto) Ese nome-oto = "" >mage5.;icture = 'oad;icture("") End >- 'abe55.Caption = "#eg.: " 1 tabea.#ecordCount

    End Sub

    .FC+digo da .rocedure .ara .reencer as caias de combina74o3

    ;ri3ate Sub enc!etem ar2temp(campo) ar2temp.*o3e4et 'oop ar2temp.Cose combo.'ist>nde = 0End Sub

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    52

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    63/170

    Visual Basic Curso Bsico. Pag..:

    XFC+digo da .rocedure .ara lim.ar as caias de teto3

    Sub impanteger or i = 0 %o Xanea.Contros.Count 7 5 >- %&peO- Xanea.Contros(i) >s %etBo %!en Xanea.Contros(i).%et = "" End >-

    4et iEnd Sub

    VFC+digo associado ao bot4o Incluir3

    ;ri3ate Sub incui

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    64/170

    Visual Basic Curso Bsico. Pag..:End >-

    End Sub

    16FC+digo associado ao bot4o Cancelar3

    ;ri3ate Sub cancea-End Sub

    1FC+digo associado ao bot4o .rimeiro([3

    ;ri3ate Sub primeiro

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    65/170

    Visual Basic Curso Bsico. Pag..:End Sub

    1VFC+digo associado ao bot4o ultimo(E[3

    ;ri3ate Sub utimo

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    66/170

    Visual Basic Curso Bsico. Pag..:

    ;ri3ate Sub e- sobrenome = Empt& %!en + Eit Sub +End >- tabea.Seek "="$ sobrenome >- tabea.4o*atc! %!en Eit Sub End >- mostra

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    67/170

    Visual Basic Curso Bsico. Pag..:

    O C"\S!A "ata Gile : para onosso caso Fontrole%mdb%

    8 seguir temos um lista de todas as tabelas e consultas gravadas na base de dados @ exclua todos oselementos da lista: exceto a tabela 8genda e cliue no boto ext para prosseguir%

    Fomo nosso relatKrio esta baseado somente na tabela 8genda: o prKximo passo 0inVs: pode serdispensado: portanto cliue novamente no boto ext%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    5N

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    68/170

    Visual Basic Curso Bsico. Pag..:

    amos selecionar os campos da tabela ue sero impressos no relatKrio @ selecione cadacampo e cliue no boto 8dd%

    8o final devemos ter algo parecido com a figura 2% abaixo&

    Gig@2

    8 esta altura o relatKrio esta praticamente terminado: para visuali!"@lo cliue no boto Preview"e.ort% Q mostrada a tela da figura ,% onde apKs clicarmos na aba $esignpodemos notar cinco

    se#7es&

    Gig@,

    R @ !itle @ para o tCtulo da aplica#o%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    53

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    69/170

    Visual Basic Curso Bsico. Pag..:

    2 @ Page Beader @ cont6m os elementos do cabe#alho da p"gina%, @ $etails @ cont6m os campos de dados a serem impressos%. @ Page*ooter @ refere@se ao rodap6 da p"gina%4 @ Summar0 @ impresso de resumos%

    +gru4ando e ordenando registros.

    Para agrupar registros: ordenando@os por uma determinada coluna selecione a op#o Trou. Sectiondo menu Insert% 8grupando pelo campo sobrenomeem ordem ascendente veremos na tela a figura.%&

    Gig@.

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    70/170

    Visual Basic Curso Bsico. Pag..:

    Gig@4

    Pelo menu podemos acessar as op#7es pertinentes a um determinado campo do relatKrio%Para o caso selecionamos o tCtulo Agenda Pessoal: vamos alterar a fonte (Cange *ont333) para R.e o estilo para negrito%

    Para alterar mais de um campo selecione@os mantendo a tecla Sift pressionada%

    8proveitando vamos inserir um campo referente a data no canto superior esuerdo%

    elecione a op#o S.ecial *ield333do menu Insertescolha a op#o Print $atee posicione no localindicado%

    Fliue com o boto direito do mouse sobre o campo nascimento e selecione a op#oCange*ormat333escolhendo o formato $M\(dia@mLs@ano) e cliue ;S%

    Ginalmente vamos desenhar um retXngulo ao redor do tCtulo% elecione a op#o)odo Aenu Insert:note ue o ponteiro do mousemudou para um l"pis&>esenhe o retXngulo ao redor do tCtulo mantendoo boto esuerdo do mouse pressionado%

    e uiser colorir o retXngulo cliue com o boto direito do mouse sobre o mesmoe preencha@o comuma cor de sua escolha%

    8trav6s do menu Insertpodemos desenhar linhas: retXngulos: uadrados: al6m de inserir figuras eat6 gr"ficos em nossos relatKrios%

    Podemos tamb6m usar os Ccones correspondentes da barra de ferramentas como na figura 5%abaixo&

    Gig@5

    Trabalhando com 51rmulas.

    amos montar uma fKrmula para imprimir o nImero da p"gina no rodap6 do relatKrio%Para isso usamos o editor de fKrmulas do Fr*stal 1eports ue pode ser disparado atrav6s do Ccone

    ou da op#o *ormula *ield333do menu Insert%8pKs isso vocL deve informar o nome da fKrmulano campo *ormula Namepara o nosso caso informe 4aginae cliue no boto ;S%

    ; Editor 6 mostrado na figura N% &

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    N

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    71/170

    Visual Basic Curso Bsico. Pag..:

    Gig@N

    8gora basta digitar a fKrmula na caixa *ormula !et: vamos l": digite& JP"gina& J e: a seguirselecione a fun#o !rimeftna lista *unctionsO: ainda na lista *unctions: selecione a fun#o !o!ete finalmente selecione o item PageNumber no final da lista *unctions% 8o final deveremoster oseguinte na caixa *ormula !et&

    ";Ngina: " A %rim'e-t (%o%et (;age4umber$ 0 ) )

    8 fun#o PageNumberretorna um valor nImerico do nImero da p"gina por isso usamosa fun#o!o!etpara convertL@la em uma string : e a seguir usamos a fun#o !rimeftpara removermos osespa#os a direita%

    amos verificar a fKrmula clicando no boto Cec-: se tudo estiver corretoo cr*stal informa com amensagem No errors foundindicando ue a sintaxe est" correta%

    8gora basta clicar no boto Acce.te posicionar a fKrmula no canto esuerdo da se#o Page *ooter%

    Encerrado o relatKrio basta salv"@lo atrav6s da op#o Savedo menu *ileeinformar o nome para orelatKrio%(osso caso informa agenda)%

    >evemos ressaltar ue a linguagem de fKrmulas do Fr*stal 1eports 6 diferente do isual+asic: assimpor exemplo: se usarmos a propriedade Selection*ormulado Fr*stalue permite definir condi#7espara a impresso em nosso relatKrio de forma a imprimir somente os nomes iniciados pela letra JBJterCamos algo como&

    Cr&sta#eport5.Seectionormua = "],E4D,.4O*E^ J= " 1 "++" 1 "_" 1 "++"

    ote ue a refLrencia a campos da tabela 6 feita entre chaves (j)%

    eterminando o estilo e inserindo uma 5igura em seu relat1rio.

    ocL pode utili!ar a guia St0lepara escolher a forma de apresenta#o do relatKrio%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    NR

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    72/170

    Visual Basic Curso Bsico. Pag..:

    Gig@3

    Para isto selecione um dos estilos na caixa de listagem stGlee vea " direita o eito do relatKrio%

    e uiser pode inserir uma figura no relatKrio clicando no boto Add Picture333com o Ccone%

    8 caixa de texto !itlelhe permite inserir o tCtulo para o relatKrio%

    etermina o nImero de cKpias do relatKrio%$nforme um (R)5 F $estination @ >ireciona a impresso&

    @na tela R@na impressora 2@em aruivo% $nforme !ero ()% F "e.ort*ileName @ $ndica a locali!a#o do relatKrio (aruivo %1PD) a ser impresso%W F ,indow!itle @ DCtulo a anela Preview : informe 8genda %X F Sort*ields @ Fonfigura a ordem de classifica#o%(er abaixo%)

    Ginalmente crie um boto de comando no formul"rio ue ir" disparar a impresso do relatKrio com onome de Im.rimee a seguir associe o seguinte cKdigo ao boto de comando&

    ;ri3ate Sub imprime

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    73/170

    Visual Basic Curso Bsico. Pag..:Cr&sta#eport5.,ction = 5

    End Sub

    8 propriedade Actiondefinida para R dispara a impresso do relatKrio%

    ;utra forma de ordenar os registros via cKdigo 6 utili!ar a propriedade sortfields% a propriedadeSortfields: J8genda%obrenomejJ: indica ue a ordem de impresso ser" por campo sobrenome(8genda%sobrenome) e em ordem ascendente ()%

    8elat1rio com dados de &rias tabelas e $eleo de registros

    ; Fr*stal 1eports 6 o gerador de relatKrios ue vem unto com o isual +asic%Para uma introdu#ot6orica " com um exemplo pr"tico cliue no linV Fr*stal%

    esta sec#o iremos abordar exemplos pr"ticos abordando as dIvidas mais comuns dos iniciantes%amos l"%

    eremos como gerar um relatKrio ue contenha dados oriundos de diversas tabelas: e de comoselecionar os registros ue ueremos imprimir%

    Estaremos usando a verso do Fr*stal 1eports ue acompanha o isual +asic 4%%

    Proeto 8lunos @ 1elatKrio @ +;0ED$A EF;081

    ocL trabalha como programador em uma grande escola e recebeu a incumbLncia de gerar orelatKrio bimestral para os alunos do 2k grau com os seguintes dados&

    FKdigo do 8luno ome do 8luno >ata de Emisso do relatKrio Periodo: Furso: 6rie : +imestre ome da Aat6ria Fursada ota do bimestre para cada aluno'mat6ria%

    K para lembrar vocL possui somente o isual +asic 4%%E vai ter ue usar o Fr*stal 1eports paragerar o relatKrio%

    8h: esueci de avisar: o relatKrio era para ontem%%%

    @ amos supor ue temos trLs tabelas&

    >ados >isclipinas'otas @ !blnotasFadastro dos alunos @ !blAlunosFadastro de >isciplinas @ !blCursosFadastro Professores @ !blProfessor

    8 estrutura das tabelas 6 dada a seguir&

    !blAlunos !blCursos !blNotas !blProfessor codalunonomeenderecotee-onenascimentonomepainomemae

    obser3acao;eriodoserienumero

    codcursonomecursocodpro-essor

    codaunocodcursonotaanobimestre

    Obser3acao

    codprofessornomeenderecotee-one

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    N,

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    74/170

    Visual Basic Curso Bsico. Pag..:

    #bs : Fodaluno : Fodcurso: FodProfessors4o caves .rimrias de suas res.ectivas tabelas3

    B" deu para perceber ue os dados dos seus relatKrios no esto todos em uma Inica tabela: e: vocLvai ter ue untar os dados para obter o relatKrio ue dever" ter o seguinte la*out&

    4ome Escoa BO'E%>* ESCO',# pag. n`Bimestre

    7777777777777777777777777777777777777777777777777777777777777777777777774ome do ,uno cod. auno data emiss/o;erodo Curso SVrie 4mero77777777777777777777777777777777777777777777777777777777777777777777777774ome das discipinas\ 4ota \ OBSE#,ES77777777777777777777\777777777\777777777777777777777777777777777777777777 . \ \ . \ \ . \ \7777777777777777777777777777777777777777777777777777777777777777777777777

    o espa#o reservado para observa#7es devemos informar uando o aluno no atingiu a m6diamCmina para aprova#o: nota inferior a 4: e colocar a mensagem&

    J;D8 8+8$_; >8 ;D8 A$A8 @ 80

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    75/170

    Visual Basic Curso Bsico. Pag..:

    8 seguir temos um lista de todas as tabelas e consultas gravadas na base de dados ue iremosutili!ar (fig 2%)

    Gig% 2%

    o prKximo passo: 0inVs: 6 ue esta o segredo para ue os dados das trLs tabelas seamincorporados ao nosso relatKrio e mantenham a correspondencia entre os dados das mesmas&

    ; Fr*stal reconhece os relacionamentos entre as tabelas automaticamente: mas 6 possCvel cri"@losnesta etapa: bastando clicar sobre o campo de uma tabela e arrast"@lo at6 o campo correspondente

    da outra tabela: apos feito isto uma linha unindo os dois campos indica ue o relacionamento foicriado%

    esta etapa podemos tamb6m eliminar as associa#7es existentes bem como admitir novas bases dedados ao relatKrio%

    aturalmente uma rela#o v"lida somente ser" efetivada entre campos indexados (pelo menos um) edo mesmo tipo%

    Gig% ,%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    N4

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    76/170

    Visual Basic Curso Bsico. Pag..:

    Para verificar o relacionamento cliue com o boto direito do mouse sobre uma das linhase na op#o options do menu suspenso%(fig .%)

    Gig% .%

    8 caixa de di"logo in- #.tionssurge mostrando os detalhes dos vCnculos (fig 4%)

    Gig% 4%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    N5

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    77/170

    Visual Basic Curso Bsico. Pag..:

    amos selecionar os campos da tabela ue sero impressos no relatKrio @ selecione cada campo ecliue no boto 8dd% ;s campos do nosso relatKrio sero os seguintes&

    Nome do Cam.o !abela de #rigemFodaluno tblalunosome tblalunosperiodo tblalunosserie tblalunos

    numero tblalunosnomecurso tblcursosnota tblnotas8no tblnotasbimestre tblnotas

    ,o -ina de3emos ter ago parecido com a -igura .0 abaio:

    Gig% 5%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    NN

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    78/170

    Visual Basic Curso Bsico. Pag..:

    B" podemos clicar no boto Previewpara podermos visuali!armos nosso relatKrio(fig% N%)

    Gig% N%

    ada animador no 6 mesmo] Aas iremos aust"@lo ao nosso la*@out%Fliue na aba >esign parapodermos austar o la*@out do relatKrio%(fig% 3%)

    Gig% 3%

    Primeiro iremos inserir um gru.oem nosso relatKrio: pois ueremos agrupar os alunos por cKdigo%Para isso cliue no menu Insertop#o Trou. Section% e selecione a op#o tblalunos3codigo(fig%-%) e cliue em ;S%

    Gig% -%

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    N3

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    79/170

    Visual Basic Curso Bsico. Pag..:

    e vocL fe! tudo certo obter" algo parecido com a figura R abaixo&

    Gig% R

    8gora e sK austar os campos conforme o la*@out da figura RR abaixo&

    Gig% RR

    Para mover os campos cliue sobre os mesmos e arraste@os para a nova posi#o%

    Para inserir um texto selecione a op#o do menu Inserte a seguir !et *ield2digitando o textodeseado e posicionando@o no relatKrio%Para formatar um campo cliue com o boto direito do mouse sobre o campo: o menu da figura R2

    surgir" com as v"rias op#7es de formata#o%

    Gig% R2

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    N-

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    80/170

    Visual Basic Curso Bsico. Pag..:

    $remos formatar a se#o ue inserimos de forma a obter os dados de cada aluno em p"ginasdistintas: para isso cliue com o boto direito do mouse sobre a se#o e ative as op#7es mostradasna figura R,&

    Gig% R,

    amos agora inserir o campo ue calcular" a m6dia aritm6tica das notas dos alunos%

    Fliue no campo notae a seguir no boto com sCmbolo de somatKria%

    8 seguir na anela da figura abaixo(figura R.) selecione a op#o averagee posicione o campo abaixodo campo nota%

    Gig% R.%

    >everemos tamb6m inserir uma fKrmula ue ir" mostrar a mensagem no espa#o observa#7es uandoa nota do aluno para a mat6ria for abaixo da nota mCnima (4)

    Power Informtica Joo Manoel !"# $ do %i&ramento '())* 242-5427

    3

  • 7/21/2019 VISUAL BASIC APOSTILA.doc

    81/170

    Visual Basic Curso Bsico. Pag..:

    Para isso cliue na op#o do menu Insert e *ormula *ield: a seguir informe o nome da formulafigura R4&

    Gig% R4

    0ogo a seguir a anela da figura R5 ser" mostrada e iremos montar a fKrmula nela mostrada&