You are on page 1of 21

 -XOLR%DWWLVWL

[LIVRO:] WINDOWS SERVER 2012 R2 E ACTIVE DIRECTORY ­ CURSO
COMPLETO
PROMOÇÃO DE LANÇAMENTO ­ CLIQUE AQUI

3HVTXLVDUQRVLWH  3HVTXLVDU

 ZHEPDVWHU#MXOLREDWWLVWLFRPEU

/,9526'2-8/,2%$77,67,
$FFHVV$YDQoDGR
$FFHVV%iVLFR
$FFHVV$YDQoDGR
([FHO$YDQoDGR
([FHO%iVLFR
([FHO$YDQoDGR
0DFURVH9%$QR([FHO
64/6HYHU5
7&3,37HRULDH3UiWLFD
:LQGRZV%iVLFR
:LQGRZV,QWHUPHGLiULR
:LQGRZV&RPSOHWR
:LQGRZV6HUYHU
:LQGRZV6HUYHU5
:RUG$YDQoDGR
9Ë'(2$8/$6
$FFHVV
$GPLQLVWUDomRH1HJyFLRV
%DQFRGH'DGRV
&$'
&RQFXUVRV3~EOLFRV
([FHO
,QWHUQHW
3RZHU3RLQW
3URJUDPDomR
3URJUDPDV*UiILFRV
5HGHVH7&3,3
9%$QR([FHO±6LVWHPDV3URQWRV
+DUGZDUHH0RQWDJHP
9tGHRHÈXGLR
:HEGHVLJQ
:LQGRZV
KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

:RUG
(%22.6
$FFHVV
$GPLQLVWUDomRH1HJyFLRV
ÈUHD*UiILFD
%DQFRGH'DGRV
%U2IILFH
&$'
&HUWLILFDo}HV0LFURVRIWH2XWUDV
&RQFXUVRV3~EOLFRV
&XOWXUDH,QWHUHVVH*HUDO
)LQDQoDV
0DWHPiWLFDH)tVLFD
([FHO
)RUPDomR3HVVRDOH3URILVVLRQDO
,QWHUQHW
/LQX[
/LWHUDWXUDH2XWURV
3RZHU3RLQW
3URJUDPDomR
5HGHVH7&3,3
9uGHR
:HEGHVLJQ
:LQGRZV
:RUG
/,9526
$FFHVVH%DQFRGH'DGRV
$GPLQLVWUDomRH1HJyFLRV
$SOLFDWLYRV
$XWR&$'
&DUUHLUDH7UDEDOKR
&RQFXUVRV3~EOLFRV
&ULDomRGH6LWHVH:HEGHVLJQ
&XOWXUDH,QWHUHVVH*HUDO
([DPHVGH&HUWLILFDomR
([FHO
)LQDQoDVH,QYHVWLPHQWRV
*HUHQFLDPHQWRGH3URMHWRV
*UiILFRVH&RUHO'UDZ
+DUGZDUHH0RQWDJHP
,QWHUQHW
0DWHPiWLFDH)tVLFD
2IILFH
3RZHU3RLQW
3URJUDPDomR
5HGHV
6HJXUDQoD
:LQGRZVH/LQX[
:RUG
&8562621/,1(
%DQFRVGH'DGRVH$FFHVV
&DUUHLUDH7UDEDOKR
&RPSXWDomR*UiILFDH(GLWRUDomR
&ULDomRGH/RMDV9LUWXDLV
KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

&ULDomRGH6LWHVH:HEGHVLJQ
([FHO
)RUPDo}HV&RPSOHWDV
*HUHQFLDPHQWRGH3URMHWRV
+DUGZDUH0RQWDJHPH0DQXWHQomR
3URJUDPDomR
5HGHV
6$3
:LQGRZVH/LQX[
:RUG
&217(Ò'2*5$78,72
/LYURVJUDWXLWRVHDUWLJRV
7XWRULDLV
$63
$631(7
$FFHVV%iVLFR
$FFHVV$YDQoDGR
([FHO%iVLFROLo}HV
([FHO$YDQoDGROLo}HV
64/6HUYHU
:LQGRZV
:LQGRZV;3
:LQGRZV6HUYHU
:LQGRZV6HUYHU

9RFrHVWiHP3ULQFLSDO¾$UWLJRV¾/LYURDFFYED¾&DStWXOR
Quer receber novidades e e­books gratuitos?
¾¾¾
,QIRUPHVHXPHOKRUHPDLO  4XHUR5HFHEHU

6HOHFLRQHDFDWHJRULDGHVHMDGD

Conheça o Júlio Battisti
-~OLR%DWWLVWLWHPPDLVGHOLYURVSXEOLFDGRVGH]HQDVGHHERRNVHpFHUWLILFDGR
0LFURVRIW

6$,%$0$,6

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

Ganhe o e­book a Seguir
:LQGRZV%iVLFR

476 páginas

6HXPHOKRUHPDLO

Curta Nossa Fanpage
&XUWLU SHVVRDVFXUWLUDPLVVR
&DGDVWUDUVHSDUDYHUGRTXH
VHXVDPLJRVJRVWDP

Loja Virtual do Site
/LYURV
9tGHR$XODV
&XUVRV2QOLQH
(ERRNV

Livros do Julio Battisti

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

« Anterior Δ Página principal ¤ Índice Próxima »

Criando Relatórios de Impacto no MS Access
Autor: Robert Friedrick Martim

LIÇÕES DESTE MÓDULO ­ SELECIONE UMA LIÇÃO:

Lição 28 de 50 ­ Relatórios com VBA, Macros e Formulários Auxiliares
Chegou a hora de adicionarmos alguns extras em nossos relatórios utilizando VBA, macros e Formulários
Auxiliares.

Tecnicamente, o que escrevemos em VBA é uma macro, porém o que escrevemos na macro não é “VBA”.
O motivo para isso é que macros no Access já “vem de fábrica” e tudo que precisamos fazer é escolher o
tipo de comando que desejamos utilizar e aplicá­los ao nosso problema.

Podemos também criar condições em macros para que as mesmas somente sejam executadas quando um
critério é verdadeiro (ou falso). Veremos diversos exemplos de aplicabilidade de macros e VBA a seguir.

Utilizando macros para abrir e imprimir relatórios
Macros em Access representam uma classe distinta de objetos e não estão relacionados diretamente com o
VBA. Macros apresentam instruções prontas as quais podem ser utilizadas para efetuar as mais diversas
ações.

Neste exemplo, veremos como abrir e imprimir um relatório utilizando macros. Siga os passos abaixo para
completar o exercício:

Clique no objeto Macros;
Clique em Novo;
Na coluna Ação procure pela ação AbrirRelatório;

Ao selecionar esta ação, na parte inferior da ação da macro aparecerá diversas opções:

Nome do relatório à Permite escolher o nome do relatório que deve ser aberto;
Exibir à Permite escolher o tipo de exibição. Neste caso, queremos a exibição Imprimir;
Nome do filtro à Permite determinar o nome de uma consulta ou filtro utilizado durante a
abertura/impressão do relatório;
Condições onde à Permite determinar uma instrução SQL utilizando a cláusula WHERE (ONDE) que
permite filtrar os dados no processo de abertura e impressão, por exemplo;
Modo janela à Permite definir o modo da janela. Escolha entre os vários tipos de modo disponível. Caso
tenha alguma dúvida, pressione F1 durante a escolha.

A Figura 7‑1 mostra os passos acima visualmente:

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

Figura 7‑1 Definindo as propriedades da macro

Utilizando macros com condicionalidade
Como vimos no tópico anterior, é possível adicionar condicionalidade no processo de abertura e impressão
em uma macro. Você pode definir um filtro, que funcionará como a condicionalidade, ou você pode utilizar
uma instrução SQL.

Neste caso, iremos inserir uma condicionalidade na opção Condição Onde. A condição a ser inserida é:

CódigoDoCliente]=[Tópico7_2]![IDCliente].

Note que o campo IDCliente não existe. Portanto, quando o usuário tentar acessar tal relatório para
impressão ele será solicitado a inserir o Código do Cliente para que o relatório possa ser impresso:

Figura 7‑2 Inserindo o parâmetro na condição WHERE

Agora, supondo que o relatório não possua dado algum para o ID digitado, o relatório ainda assim será
impresso. Para evitar tal erro, você pode adicionar o seguinte código no relatório para cancelar a operação
caso não exista dado algum para impressão:

Private Sub Report_NoData(Cancel As Integer)
    Cancel = 1
    MsgBox "Não há nenhuma informação para impressão!", _
        vbCritical, "Sem dados..."
End Sub

Zebrando o relatório com VBA
Quando possuímos um relatório muito extenso, fica relativamente difícil ler cada linha do relatório e
associar os dados de uma mesma linha. Observe a figura abaixo:

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

Figura 7‑3 Relatório não zebrado

O relatório acima representa despesas em uma conta pessoal (este BD completo não está diponível com
este curso, somente uma tabela e formulário para exemplo) em determinado período. Embora não exista
nada de errado com ele, note que a leitura pode ser melhorada se adicionarmos um zebramento no
relatório:

Figura 7‑4 Detalhes do relatório zebrados

Com o zebramento de cada linha na área de detalhes a leitura fica bem mais simples e organizada. Para
zebrar a área de detalhes, utilize o código abaixo:

' Variável global para contagem da linha atual
Private linCont As Long

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

'   Conta o número da linha e adiciona 1 durante o
'   processo (evento) de formatação dos detalhes do relatório
    linCont = linCont + 1
 
'   Determina o resto da divisão do número da linha atual
'   Se for zero, a cor de fundo é branca.
    If linCont Mod 2 = 0 Then 
      Me.Detail.BackColor = 16777215

'   Caso contrário, a cor é cinza.
    Else
      Me.Detail.BackColor = 15263976
    End If
End Sub

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

O que o leitor deve ter em mente diz respeito ao tamanho do conjunto de registros. Caso este seja muito
grande o tempo de processamento pode ser considerável.

Filtros por intervalo de datas
Um cenário comum é onde precisamos de um relatório que nos traga informações relativas a algum
intervalo de datas qualquer. Por exemplo, poderíamos querer um relatório para o ano fiscal e teríamos que
filtrá­lo para somente mostrar as informações para o Intervalo determinado.

Para resolvermos tal problema, precisaremos de um formulário de suporte o qual irá filtrar as informações
que desejamos.

Este formulário trabalhará em conjunto com o relatório. Desta forma, quebro abaixo em duas seções os
passos que devemos seguir para completar o exercício.

Criando o formulário de suporte

A nossa primeira tarefa é criar o formulário de suporte. Para tanto, siga os passos abaixo (utilizando os
dados do BD deste tópico):

Na janela do banco de dados clique em Formulários e em seguida em Design;
No modo de design adicione os seguintes controles:
Duas caixas de texto (nomeie­as como txtDataInicial e txtDataFinal respectivamente);
Um botão de comando (nomeie­o como cmdVisualizar e modifique o seu rótulo para Visualizar)
Modifique a máscara de entrada para as caixas de texto para aceitar datas abreviadas. Para tanto,
selecione o controle e acesse suas propriedades. Sob a guia Dados selecione a opção Máscara de
entrada a qual deve ser 99/99/00;0;_ (voce pode abrir o assistente de máscaras e criar sua
própria máscara ou selecionar uma da lista)

Figura 7‑5 Máscara de entrada para datas abreviadas

Neste ponto, teremos um formulário como segue abaixo:

Figura 7‑6 Layout do formulário de apoio

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

Feito isso, selecione o botão de comando Visualizar e na guia Evento adicione um procedimento de
evento para o evento Ao Clicar utilizando o seguinte código (explicações acompanham o código):

Option Explicit

Private Sub cmdVisualizar_Click()
'   Verifica se os campos para data inicial e final
'   forma preenchidos antes de continuar. Caso ambos ou um esteja vazio, entao
    If IsNull([txtDataInicial]) Or IsNull([txtDataFinal]) Then

'       Mostrar mensagem de que ambos os campos devem ser preenchido
        MsgBox "Você deve inserir datas de início e de fim.", vbExclamation
        
'       Ir para o controle de data inicial
        DoCmd.GoToControl "txtDataInicial"
    Else

'       Caso ambos campos tenha sido preenchidos, mas a data inicial
'       seja maior do que a data final...
        If [txtDataInicial] > [txtDataFinal] Then

'           ... mostrar mensagem avisando do erro...
            MsgBox "Data final deve ser maior do que a data inicial.", _
              vbExclamation
            
'           ... e ir para o controle de data inicial
            DoCmd.GoToControl "txtDataInicial"
        Else

'           Se condicao for falsa, entao ocultar o formulário.
            Me.Visible = False 
        End If
    End If
End Sub

Isso é tudo que precisamos para o nosso formulário. O próximo passo requer a criação de nosso relatório o
qual discuto a seguir.

Criando o relatório, instrução SQL e VBA do relatório

Com o formulário fora do caminho, precisamos agora criar o nosso relatório. Utilizando o pequeno banco de
dados deste tópico, utilize o assistente de relatórios para criar um relatório contendo todos os campos da
tabela. Aqui, nós ainda não estamos interessados em filtragem.

Uma vez que o leitor tenha criado o relatório, abra a caixa de propriedades para o relatório onde
modificaremos a fonte de registros. A fonte de registro conterá o nome da tabela. O que desejamos fazer é
construir a instrução SQL para filtrar os registros requeridos.

Siga os passos abaixo:

Abra a caixa de propriedades e selecione Relatório na caixa de seleção;
Selecione a guia Dados e clique no botão de edição de consulta para abrir a janela do construtor de
consulta;
Selecione todos os campos da tabela de origem de dados, conforme mostra a figura:

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

Figura 7‑7 Construtor de consultas

Para o campo DataDaTransação, adicione o seguinte critério na linha de critérios: >=[forms]!
[frmDatas]![txtDataInicial] E <=[Forms]![frmDatas]![txtDataFinal];
Finalmente, dê os toques finais no seu relatório conforme o gosto.

A primeira parte de nossa tarefa está pronta. O próximo passo requer a escrita do VBA.

Lembra que no código para o formulário nós o deixávamos invisível quando ele continha datas válidas? Pois
bem, a primeira coisa que precisamos fazer é criar uma função em VBA para determinar se o formulário
está ou não aberto.

Adicione um módulo comum onde o código abaixo deve ser entrado:

Option Explicit

Function EstáAberto(ByVal strNomeForm As String) As Boolean

'   Constantes para os estados do formulário (fechado ou
'   em "modo de design"). Note que as constantes não são
'   necessárias. Elas apenas facilitam a leitura do código.
    Const constFrmFechado = 0
    Const constFrmDesign = 0
    
    
'   Checa para saber se o formulário está aberto. Se sim...
    If SysCmd(acSysCmdGetObjectState, acForm, strNomeForm) <> _
        constFrmFechado Then

'       Checar para saber não está aberto em modo de design.
'       Se não estiver em modo de design, então...
        If Forms(strNomeForm).CurrentView <> constFrmDesign Then

'           formulário está aberto
            EstáAberto = True 
        End If
    End If
    
End Function

Com a função pronta, abra o VBE do relatório onde devemos inserir os seguintes procedimentos:

Private Sub Report_Close()
'   Ao fechar o relatório, fechar o formulário também
    DoCmd.Close acForm, "frmDatas"
End Sub

Private Sub Report_Open(Cancel As Integer)
    
'   Abre o formulário e determina o seu título, pois o mesmo
'   formulário pode ser usado por qualquer relatório

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

'   que necessite de filtro por datas.
    DoCmd.OpenForm "frmDatas", , , , , _
        acDialog, "Transações por datas"
    
'   Se o formulário estiver fechado, cancelar operação
    If Not EstáAberto("frmDatas") Then 
        Cancel = True 
    End If
End Sub

O leitor pode agora experimentar o trabalho feito. Abra o relatório através de um duplo­clique e o formulário
de apoio será aberto. Digite a data inicial e a data final e clique no botão de comando para visualização do
relatório.

Caso o período selecionado não contenha dados, a mensagem será mostrada e o relatório será cancelado.
Se houver dados, o relatório filtrará o período digitado.

Apenas como sugestão, o leitor pode inserir um rótulo o qual lê as datas do formulário e imprime no
relatório o período selecionado. Este fica como exercício para o leitor.

Filtros por contas
O exemplo anterior filtra por datas, porém poderíamos ter um cenário onde além de filtrarmos por datas
nós desejamos filtrar por conta também. Filtros como estes, embora aparentemente simples, causam
bastante confusão, pois geralmente a lista de contas é a partir de uma caixa de combinação.

Infelizmente, ao passarmos o parâmetro de filtro de uma caixa de combinação para a consulta o mesmo
não é passado, causando um erro no filtro do relatório.

Continuarei a partir do exemplo anterior, porém uma nova tabela é adicionada ao projeto contendo
algumas contas as quais serão relacionadas à tabela existente.

A primeira coisa que precisamos fazer é adicionar os novos controles ao formulário:

Figura 7‑8 Design do formulário

Agora, possuimos uma caixa de combinação e uma caixa de texto extra (no topo direito do formulário).
Modifique a propriedade Visível para Não desta caixa de texto, pois não desejamos que ela fique visível ao
usuário. Ela é apenas usada para armazer o número de identificação da conta.

O próximo passo requer a entrada do seguinte código para o evento Change da caixa de combinação:

Private Sub cboIDConta_Change()
    Me.txtIDConta = Me.cboIDConta.Value
End Sub

O código acima simplesmente passa o valor da seleção da caixa de combinação para a caixa de texto.

Feito isso, precisamos adaptar o código original para o botão de visualização como segue:

Private Sub cmdVisualizar_Click()
'   Verifica se os campos para data inicial e final
'   forma preenchidos antes de continuar. Caso ambos ou um esteja vazio, entao
KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

    If IsNull([txtDataInicial]) Or IsNull([txtDataFinal]) Then

'       Mostrar mensagem de que as datas precisam ser preenchidas
'       e uma conta selecionada.
        MsgBox "Você deve inserir datas de início e de fim " _
        & "e escolher uma conta válida.", vbExclamation
        
'       Ir para o controle de data inicial
        DoCmd.GoToControl "txtDataInicial"
    Else

'       Caso ambos campos tenha sido preenchidos, mas a data inicial
'       seja maior do que a data final...
        If [txtDataInicial] > [txtDataFinal] Then

'           ... mostrar mensagem avisando do erro...
            MsgBox "Data final deve ser maior do que a data inicial.", _
              vbExclamation
            
'           ... e ir para o controle de data inicial
            DoCmd.GoToControl "txtDataInicial"
        Else

'           Se condicao for falsa, entao ocultar o formulário.
            Me.Visible = False 
        End If
    End If
End Sub

Agora que possuimos estes dois pontos prontos, nós precisamos adaptar o nosso relatório para incluir em
nossa consulta original o campo de identificação da conta e o nome da conta.

Abra o relatório em modo de design e efetue as seguintes modificações:

Adicione uma caixa de texto no cabeçalho do relatório. Nesta caixa de texto, adicione a seguinte
fórmula: ="Transações para a conta " & [NomeConta] & " para o período de " &
Forms!frmDatas!txtDataInicial & " a " & Forms!frmDatas!txtDataFinal & ".". O seu
cabeçalho deve ser algo como segue:

Figura 7‑9 Cabeçalho do novo relatório

Modifique a fonte de registros para incluir os dois novos campos (IDConte e NomeConta);
Adicione o critério: [forms]![frmDatas]![txtIDConta] ao campo IDConta na consulta.

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

Figura 7‑10 Redefinindo a consulta

O leitor pode agora executar o relatórios e abrí­lo filtrando por data e número da conta.

4XHU'RPLQDURV5HFXUVRV$YDQoDGRVGR$FFHVV
"

Apre.nda com Júlio Battisti: "Access 2010
Avançado, Macros e Programação VBA ­
Através de Exemplos Práticos" ­ 828 Páginas
-XQWRFRPROLYURYRFr5HFHEH9tGHR$XODVGH%{QXVKRUDV

Único Livro Sobre Access 2010 Avançado, Macros e
Programação VBA que Você irá Precisar. Será sua Fonte de
Referência.

Cli.que Aqui Para Baixar um Trecho Demonstração do Livro

­ É com alegria que Comunico o lançamento do meu 35º
Livro.

­ Eu garanto que você irá aprender os Recursos
Avançados do Access 2010, Inclusive Macros e
Programação VBA.

­ Será seu Livro de Referência, ao lado do seu
Computador.

­  Exemplos Práticos, Passo a Passo, no estilo de
Estudo Dirigido.

­ Todos os Exemplos Passo a Passo e com Telas
Ilustrativas.

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

­ Muito Fácil de Acompanhar e de Praticar. De Fácil
Aprendizado.
 
­ Dou suporte, via e­mail, a dúvidas sobre os Exemplos
do livro.

­  Junto  com  o  livro  você  recebe  61,5  horas  de  vídeo


aulas.

[Bônus]:  61,5  horas  de  Vídeo  Aulas:  1  Vídeo  Aula  de 


Windows 7 + 4 Vídeo Aulas de Excel + 4 Vídeo Aulas de
Access.
 

LIÇÕES DESTE MÓDULO ­ SELECIONE UMA LIÇÃO:
« Anterior Δ Página principal ¤ Índice Próxima »

* Você pode baixar (fazer download) do conteúdo completo deste curso,
em formato PDF, com 38 páginas, comprando o seguinte e­book:

VBA NO ACCESS 2003

LIVROS INDICADOS DE ACCESS:

     

 
KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

Gostou deste artigo?

Ajude a divulgá­lo! Indique­o para seus amigos.
Comente sobre este artigo, use o campo de comentários logo
abaixo.
Compartilhe através do Twitter, Facebook, Google+ ou Pinterest! 
&XUWLU 

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

Dúvidas?

8WLOL]HDiUHDGHFRPHQWiULRVDVHJXLU

0HDMXGHDGLYXOJDUHVWHFRQWH~GRJUDWXLWR

8VHDiUHDGHFRPHQWiULRVDVHJXLUGLJDRTXHDFKRXGHVWDOLomRRTXHHVWi
DFKDQGRGRFXUVR
&RPSDUWLOKHQR)DFHERRNQR*RRJOH7ZLWWHUH3LQWHUHVW

,QGLTXHSDUDVHXVDPLJRV4XDQWRPDLVFRPHQWiULRVIRUHPIHLWRVPDLVOLo}HV
VHUmRSXEOLFDGDV

FRPHQWiULRV &ODVVLILFDUSRU 3ULQFLSDLV

$GLFLRQDUXPFRPHQWiULR

)DFHERRN&RPPHQWV3OXJLQ

Quer receber novidades e e­books gratuitos?
¾¾¾
,QIRUPHVHXPHOKRUHPDLO  4XHUR5HFHEHU

6HOHFLRQHDFDWHJRULDGHVHMDGD

Vídeo­Aulas
$FFHVV
([FHO
3URJUDPDomR
:LQGRZV/LQX[
5HGHV

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

7RGDVDVFDWHJRULDV

E­books
$FFHVV
([FHO
3URJUDPDomR
:LQGRZV/LQX[
5HGHV
7RGDVDVFDWHJRULDV

Livros
$GPLQLVWUDomR
([FHO
3URJUDPDomR
:LQGRZV/LQX[
5HGHV
7RGDVDVFDWHJRULDV

Cursos Online
%DQFRGH'DGRV
&DUUHLUD
&ULDomR:HE
([FHO3URMHWRV
)RUPDomR
7RGDVDVFDWHJRULDV

Conteúdo Gratuito
$UWLJRVH7XWRULDLV
$63
$631(7
$FFHVV%iVLFR
$FFHVV$YDQoDGR
([FHO%iVLFROLo}HV
([FHO$YDQoDGROLo}HV
64/6HUYHU
:LQGRZV
:LQGRZV;3
:LQGRZV6HUYHU
:LQGRZV6HUYHU

Novidades e E­books grátis
)LTXHSRUGHQWURGDVQRYLGDGHVODQoDPHQWRGHOLYURVFXUVRVHERRNVHYtGHRDXODVHUHFHEDRIHUWDVGH
HERRNVHYtGHRDXODVJUDWXLWDVSDUDGRZQORDG

6HXPHOKRUHPDLO

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 
 -XOLR%DWWLVWL

4XHURUHFHEHU

   

Institucional
4XHPVRPRV
*DUDQWLDGH(QWUHJD
)RUPDVGH3DJDPHQWR
&RQWDWR
2$XWRU

Endereço
-~OLR%DWWLVWL/LYURVH&XUVRV/WGD
&13-
5XD9HUHDGRU,YR&OiXGLR:HLJHO8QLYHUVLWiULR
6DQWD&UX]GR6XO56
&(3
Atendimento:  ZHEPDVWHU#MXOLREDWWLVWLFRPEU
7RGRVRVGLUHLWRVUHVHUYDGRV-~OLR%DWWLVWLŠ

[CURSO ONLINE:] WINDOWS SERVER 2008 E ACTIVE DIRECTORY ­ CURSO
COMPLETO
COM JULIO BATTISTI ­ ÚLTIMAS VAGAS COM 50% DE DESCONTO ­ CLIQUE
AQUI

KWWSMXOLREDWWLVWLFRPEUDUWLJRVOLYURDFFYEDFDSLWXORDVS 

You might also like