sábado, 26 de setembro de 2015

Sites muito bons sobre Outlook

http://www.howto-outlook.com/

http://www.slipstick.com/

;-)

sábado, 19 de setembro de 2015

Atualização da planilha ao usar funções personalizadas

Sempre achei que funções personalizadas (aquelas que a gente escreve no VBA) necessitavam de comandos para atualizar os valores, normalmente F2 para editar e para o recálculo.
Para contornar essa característica, basta acrescentar no início o comando:

Application.Volatile

Assim, em qualquer alteração nos valores envolvidos na função personalizada, a atualização será automática, da mesma forma como funcionam as funções do Excel.

;-)

domingo, 13 de setembro de 2015

Caixa de diálogo "Selecionar Arquivo"

Código completo.
Tempos atrás eu tinha postado um código mais enxuto que usava no Word, este está completo com todas as opções.

Original em: https://msdn.microsoft.com/pt-br/library/office/ff196794.aspx


;-)


Private Sub cmdFileDialog_Click() 
  
   ' Requires reference to Microsoft Office 11.0 Object Library. 
 
   Dim fDialog As Office.FileDialog 
   Dim varFile As Variant 
 
   ' Clear listbox contents. 
   Me.FileList.RowSource = "" 
 
   ' Set up the File Dialog. 
   Set fDialog = Application.FileDialog(msoFileDialogFilePicker) 
 
   With fDialog 
 
      ' Allow user to make multiple selections in dialog box 
      .AllowMultiSelect = True 
             
      ' Set the title of the dialog box. 
      .Title = "Please select one or more files" 
 
      ' Clear out the current filters, and add our own. 
      .Filters.Clear 
      .Filters.Add "Access Databases", "*.MDB" 
      .Filters.Add "Access Projects", "*.ADP" 
      .Filters.Add "All Files", "*.*" 
 
      ' Show the dialog box. If the .Show method returns True, the 
      ' user picked at least one file. If the .Show method returns 
      ' False, the user clicked Cancel. 
      If .Show = True Then 
 
         'Loop through each file selected and add it to our list box. 
         For Each varFile In .SelectedItems 
            Me.FileList.AddItem varFile 
         Next 
 
      Else 
         MsgBox "You clicked Cancel in the file dialog box." 
      End If 
   End With 
End Sub


sábado, 18 de julho de 2015

Anexando arquivos em campos de tabelas no Access

Um recurso muito interessante do Access é a possibilidade de gravar arquivos em campos.
Alguém já deve estar se perguntando qual a utilidade disto, mas imagine por exemplo, poder catalogar e guardar fotos ou imagens.
Obviamente o recurso deve ser utilizado com moderação para não aumentar o tamanho do mdb.
Bem, como sempre, pensando em automação para tornar simples as tarefas rotineiras, segue abaixo um código VBA para executar a operação de anexar arquivos.

;-)

 
 
Option Compare Database
Option Explicit

Sub AnexaArquivo()

    Dim rs          As DAO.Recordset
    Dim rsAnexo     As DAO.Recordset
    Dim db          As DAO.Database    

    Set db = CurrentDb()   

    db.Execute "DELETE FROM tabela1"    

    Set rs = db.OpenRecordset("tabela1")       

    rs.AddNew
    Set rsAnexo = rs.Fields("CampoAnexo").Value
    rsAnexo.AddNew
    rsAnexo.Fields("FileData").LoadFromFile "c:\teste.txt"
    rsAnexo.Update
    rs.Update

    rs.Close
    Set rs = Nothing    

    Set db = Nothing

End Sub

terça-feira, 14 de julho de 2015

Código para apagar tabelas no Access

A fim de evitar mensagens de erro, é conveniente sempre verificar se a tabela existe antes de comandar um DROP.
Segue abaixo um exemplo.

Obs.: marcar a referência no VBA – ActiveX Data Objects


Sub ApagaTabela()
On Error GoTo Erro

    Dim rst As New ADODB.Recordset
   
    rst.Open "SELECT name FROM MSysObjects where type = 1 AND name = 'Tabela3'", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    'type 6 = tabela vinculada

    If rst.RecordCount > 0 Then
        CurrentProject.Connection.Execute "DROP TABLE Tabela3"
    End If

Saida:
    rst.Close
    Set rst = Nothing
    Exit Sub

Erro:
    MsgBox Err.Description, vbOKOnly
    Resume Saida

End Sub

quarta-feira, 13 de maio de 2015

Mais um código para encerrar processos no TaskManager

Public Function KillProcess(Processo As String)

    'O nome do processo é case sensitive
    'Exemplo: WINWORD.EXE / EXCEL.EXE / wordpad.exe / etc

    Dim oServ As Object
    Dim cProc As Variant
    Dim oProc As Object

    Set oServ = GetObject("winmgmts:")
    Set cProc = oServ.ExecQuery("Select * from Win32_Process")

    For Each oProc In cProc
        If oProc.Name = Processo Then errReturnCode = oProc.Terminate()
    Next

End Function

domingo, 26 de abril de 2015

Dica para melhorar seus textos

Uma das dicas para escrever bem é não repetir palavras dentro da mesma frase.
Vale até utilizar sinônimos, mas sempre evite a repetição.
Para isso, o Microsoft Word é um grande aliado: ALT + click do mouse em cima da palavra e os dicionários se abrem, dentre eles o de sinônimos.
Maravilha!
A dica serve também para o Outlook, desde que o Word tenha sido definido como editor padrão.

Outra dica: não acredite piamente no corretor ortográfico. Se é um texto importante, leia, releia, peça para alguém revisar, enfim, corretor não acerta em 100% das revisões.

;-)



domingo, 12 de abril de 2015

O Access é bom para desenvolvimento?

Esta é uma questão que normalmente gera bastante discussão, principalmente entre desenvolvedores, DBA's (Data Base Administrator) e usuários.
Vou deixar aqui meu comentário:
Access é uma ferramenta completa, talvez a melhor da Microsoft para desenvolvimento de aplicações desktop.Possui gerador de relatórios e telas, módulos de programação em VBA, conectividade com praticamente todos os banco de dados e a maioria  dos aplicativos da Microsoft.
Não vou entrar no mérito quanto ao Access ser considerado ou não um "banco de dados", isso já foi exaustivamente discutido em vários fóruns e a última que presenciei foi na pós-graduação que fiz onde o professor afirmou que o Access não é um banco de dados. Não entrei na briga por assim dizer, porque tenho meu conceito e o que importa para mim, é o que eu penso e não o que os outros acham.
Num antigo grupo de discussão que eu participava, tem um tópico muito interessante chamado "Até onde podemos ir com o Access?" e lá está as mais variadas opiniões, vale a pena ler:

http://comunidade.itlab.com.br/eve/forums/a/tpc/f/273606921/m/614608921

Até que me provem o contrário, o que faz a diferença é o programador e não a ferramenta que utiliza.
Exemplificando, um banco de dados mal estruturado, é mal estruturado seja em Access ou SQL Server (este sim, um grande banco de dados com estrutura cliente-servidor), o problema está em que o fez. O mesmo conceito se aplica quando tratamos de Front End.
A ideia vale para qualquer outra ferramenta de desenvolvimento.
Se só o fato do "novo ser melhor", não existiram aplicações por aí rodando até hoje em Clipper, Cobol, Delphi, etc.


;-)





domingo, 5 de abril de 2015

Bel Pesce

Embora este tópico não tenha a ver com escopo geral do blog, trata-se de uma super dica para quem quer aprender muito sobre empreendedorismo com a Bel Pesce.
São links onde vocês poderão encontrar farto material sobre o empreendedorismo e dicas de diversos assuntos para o dia a dia.
A Bel Pesce é uma profissional fantástica que foge ao padrão dos "super profissionais" na minha opinião, seus ensinamentos vão muito além do âmbito profissional e são uma verdadeira lição de vida.
O material em vídeo é muito abundante, dá para passar horas e horas assistindo, se divertindo, refletindo e principalmente aprendendo sem se cansar (pesquisem no YouTube).
Destaque para o e-book gratuito "A Garota do Vale", disponível para download no site da Bel.
Aproveitem!

;-)


http://cbn.globoradio.globo.com/comentaristas/bel-pesce/BEL-PESCE.htm
http://www.fazinova.com.br/
http://belpesce.com.br/





sexta-feira, 6 de fevereiro de 2015

Macro de dados - Access 2010

Um recurso interessante que foi introduzido no Access 2010 são as macros de dados que executam comandos em determinados eventos como inserção, alteração ou exclusão de dados.
Obviamente com programação conseguem-se as mesmas ações, talvez até com mais flexibilidade, mas não deixa de ser um recurso bem interessante.
Usuários do SQL Server lembraram de trigger???

;-)


sábado, 3 de janeiro de 2015

Programas antigos

Às vezes a gente precisa de versões antigas de programas, seja lá qual for o motivo...
Segue um site com muito material para download:
 http://www.oldversion.com/
 ;-)

Pesquisar este blog

Arquivo do blog

Quem sou eu

Minha foto
Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.