Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

Views

VBA - Convertendo o número do mês no nome por extenso - Convertendo o nome por extenso do mês no número

Hello folks!

Ao lidar com periodicidades móveis como MAT (Moving Annual Total), YTD (Year to Date)QTD (Quarter-To-Date), MTD (Month-To-Date), Year-ending, etc... Talvez necessitemos ajustar os nossos meses movendo-os dinamicamente.

How to convert month number to month name
Convert numbers to month names
Convert Month Name To Number
Convert Month Number to Month Name in Report based on query

A movimentação dos meses ajustada nas apresentações dos gráficos e das tabelas dos nossos Dashboards e Scorecards, invariavelmente requererão que os meses sejam manipulados internamente por somá-los ou subtraí-los, adequando as apresentações dos mesmos. Para que este feito fosse facilmente implementado precisaríamos transformar Novembro em 11 11 em Novembro, porexemplo. Como ?

Para o vosso regalo, seguem funções abaixo:

Function ABL_Convert_Number2MonthName (ByVal lngMonth As Long) As String
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             28/06/2011 13:58    bernardess@gmail.com     http://inanyplace.blogspot.com/
    ' Application: ®
    ' Converte o número do mês no respectivo nome (11 em Novembro).
    ' Listening: 20 - Flynn Lives - Daft Punk - TRON Legacy Soundtrack [Complete Edition](MP3@320Kbps)
    
    On Error GoTo Err_GetMonthName

    Dim dteTemp As Date

    If lngMonthName < 1 And lngMonthName > 12 Then
        Let ABL_Convert_Number2MonthName = vbNullString
        
        Exit Function
    End If

    Let dteTemp = DateSerial(Year(Date), lngMonth, 1)
    Let ABL_Convert_Number2MonthName = Format(dteTemp, "mmmm")

    Exit Function

Err_GetMonthName:
    Let ABL_Convert_Number2MonthName = vbNullString
End Function

Function ABL_Convert_MonthName2Number (monthName As String) As Integer
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             28/06/2011 14:01    bernardess@gmail.com     http://inanyplace.blogspot.com/
    ' Application: ®
    ' Converte o nome de um mês em número (Novembro em 11).
    ' Listening: 20 - Flynn Lives - Daft Punk - TRON Legacy Soundtrack [Complete Edition](MP3@320Kbps)
    
    ' try to convert month name to actual date type
    Dim dtestr As String

    Let dtestr = monthName & "/1/2011"

    Dim dte As Date

    On Error Resume Next

    Let dte = CDate(dtestr)

If Err.Number <> 0 Then
  Let ABL_Convert_MonthName2Number = -999
  
  Exit Function
End If

    On Error GoTo 0

    Let ABL_Convert_MonthName2Number = Month(dte)
End Function

Vocabulário:

YTDYear to Date

QTD = É um período iniciado no começo do trimestre em curso, terminando na data atual.

MAT = Moving Annual Total.

MTD = Month-To-Date


Tags: André Luiz Bernardes, MS, Microsoft, Office, VBA, Access, Excel, Word, Outlook, Sharepoint, convert, YTD, QTD, MAT, MTD, Month, Mês, converter,



André Luiz Bernardes
A&A® - Work smart, not hard.

VBA Access - Como apagar arquivos - Delete, Kill, Erase

images?q=tbn:ANd9GcSZ-Cq8_QecEo2KqZMuthWjgD0YoogjLImgdFwR-fGGcmOO1_mA Não é rara a necessidade de precisarmos apagar arquivos temporários que utilizamos para importação, exportação, consolidação, geração de relatórios externos, etc...

Como posso excluir a tais?

A instrução Kill exclui os arquivos de um disco.

Sintaxe: Kill pathname

O argumento pathname é uma expressão de seqüência de caracteres que especifica um ou mais nomes de arquivo a serem excluídos. O pathname pode incluir o diretório ou pasta e a unidade.

No Microsoft Windows, Kill aceita o uso de curingas de múltiplos caracteres (*) e de um único caractere (?) para especificar múltiplos arquivos. Entretanto, no Macintosh, esses caracteres são tratados como caracteres de nomes de arquivo válidos e não podem ser usados como curingas para especificar múltiplos arquivos.

Como o Macintosh não aceita os curingas, use o tipo de arquivo para identificar grupos de arquivos a excluir. Você pode usar a função MacID para especificar o tipo de arquivo em vez de repetir o comando com nomes de arquivo separados. Por exemplo, a instrução a seguir exclui todos os arquivos TEXT da pasta atual.

Kill MacID ("TEXT")

Se você usar a função MacID com Kill no Microsoft Windows, ocorrerá um erro. Se você tentar usar Kill para excluir um arquivo aberto, ocorrerá um erro.

Você pode deletar vários arquivos em um diretório
Estou tentando apagar arquivos temporários que o MS Word às vezes deixa para trás, quando não os consegue limpar corretamente. 

Digamos os arquivos como ~$lename.dot. Utilizar apenas o comando Kill, não funciona para arquivos ocultos como estes. mas, se eu mudar seus atributos ele funciona perfeitamente. 

Existe uma comando que pode matar arquivos ocultos também? Se não, como posso contornar uma situação como este problema que impede alguns modelos mailmerge de serem excluídos? 

Como quero executar o comando fora de um botão. Estou pegando o caminho de um DLookup, pois varia de local para local.

Function KillTempFiles()

If Dir(DLookup("[Path]", "tblMailmerge", "mID=1") & "~*.dot") > "" Then
Kill (DLookup("[Path]", "tblMailmerge", "mID=1") & "~*.dot")
End If

On Error Resume Next

End Function

No entanto, a declaração Kill não pode excluir arquivos somente leitura, por isso, a menos que não exista chance de que o arquivo possa ser marcado como readonly, deve-se primeiro remover o atributo readonly do arquivo. Pode fazer isso da seguinte forma:

Dim KillFile As String

Let KillFile = "c:\bernardes\inanyplace.doc"

' Checa se o arquivo existe
If Len(Dir$(KillFile)) > 0 Then

    ' Primeiro remove o atributo de readonly, caso esteja assim configurado
    SetAttr KillFile, vbNormal

    ' Deleta o aqruivo.
     Kill KillFile
End If

Para deletar todos os arquivos em um diretório:
' Faz um Loop através de todos os arquivos em um diretório por usar a função Dir$
Dim MyFile As String

Let MyFile = Dir$("c:\Bernardes\*.*")

Do While MyFile <> ""
    KillProperly "c:\Bernardes\" & MyFile

    ' É necessário especificar o caminho novamente, porque o arquivo foi deletado.
    Let MyFile = Dir$("c:\Bernardes\*.*")
Loop

Alternativamente, você pode ler todos os valores em uma matriz, e excluir todos os arquivos usando um loop. Esse será um processo mais rápido se o diretório for muito grande, caso contrário não notará qualquer diferença.

Tags: André Luiz Bernardes, MS, Microsoft, MS Office, MS Access, Kill, Delete, Del, Excluir, deletar, apagar, arquivo, file, archive, MacID, Windows, Macintosh, 

Referências: StackoverFlow
               Bytes
               MVPS

André Luiz Bernardes
A&A® - Work smart, not hard.

         


ACCESS - Usando Gauges em Dashboards - Usando Dashboard Gráfico no Access

Ahhh, os Dashboards e os Scorecards... São um desafio. Diante de tantos softwares criados especificamente com esta finalidade.

Será que nossa tão conhecida e amplamente utilizada suíte MS Office consegue atender-nos quanto aos nossos anseios por belos 
 e finalmente Cockpits?

Talvez deseje ler adicionalmente o artigo 

Bem, agora é o momento de olharmos o modo como podemos fazer uso da visualização de KPI,  com medidores e/ou mostradores,  em Dashboards no MS Access. Sim, você realmente pode usar o MS Access para criar alguns Dashboards executivos visualmente interessantes.

Dê uma olhada abaixo no screenshot de um Dashboards desenvolvido em MS Access:

Dashboard_Andre_Luiz_Bernardes_01.png

Ou algo parecido com isso:

Dashboard_Andre_Luiz_Bernardes_02.png

Muito legal, não é mesmo? Quer saber como criar seu próprio painel de acesso com estes gráficos para Dashboards?

Bem o MS Access não é tipicamente uma ferramenta na qual pensaria quando se considera desenvolver uma plataforma de Dashboards. As ferramentas de relatório no MS Access, ainda não têm tais funcionalidades facilitadoras. Ou seja, o MS Access não oferece uma série com Dashboards
gráficos. Claro que ele tem gráficos e formatação condicional, mas nada como no MS Excel.

No próximo artigo, mostro um hack, algumas pequenas dicas, para que possa adicionar características profissionais aos seus relatórios MS Access para Dashboards.

Tags: André Luiz Bernardes, MS, Microsoft, MS Office, Office, MS Access, Microsoft Access, Dashboard, Forecard, Business Information, BI, gauges, Google Charts API, bitmap, bmp,

Referências: DataPigTechnologies

André Luiz Bernardes
A&A® - Work smart, not hard.

         

VBA - Deletando arquivos - Deletando pastas - Deletando Diretórios - Delete via Vba

Delete Files Via Vba
Delete Text File
Delete a folder and all subfolders and files
Delete files in a folder VBA
Deleting a file in VBA
How remove file
How to delete files using VBA
How to use VBA to delete files
I need to copy, rename and delete files in a folder
Macro to delete all files
Move and Delete files and folders
Remove Files

Já tentou apagar um arquivo externo a sua aplicação? Talvez uma planilha ou um arquivo texto?

Pense, como posso excluir um arquivo?

- Olhe para isto: "Poderia basicamente usar o comando Kill, mas um programador preocupado precisa permitir a possibilidade de existir um arquivo que está sendo usado somente como leitura, eis a função para você:

 DeleteFile ("Bernardes_Dashboard_Results.txt")

Sub DeleteFile(ByVal FileToDelete As String)

   If FileExists(FileToDelete) Then 'See above

      SetAttr FileToDelete, vbNormal

      Kill FileToDelete
   End If

End Sub

Não se esqueça da função que checa a existência do arquivo:

Function FileExists(ByVal FileToTest As String) As Boolean
   Let FileExists = (Dir(FileToTest) <> "")
End Function

Ahhh, você pode definir uma referência para a biblioteca Scripting.Runtime e depois usar o FileSystemObject, este tem dois métodos DeleteFile e FileExists.


Não vou esconder que temos outras opções:

Let nTest = Dir(filename)

If not nTest="" then
Kill(Filename)
end if

O código a seguir pode ser usado para testar a existência de um arquivo, e depois excluí-lo:

Dim aFile As String

Let nFile = "c:\Bernardes_Dashboard_Results.txt"

If Len(Dir$(nFile)) > 0 Then
     Kill nFile
End If

Estava me segurando, mas preciso avisar-lhe quanto a não permitir que o código retorne uma mensagem de erro do tipo "Descupe-me, mas não existe nenhum código para apagar", então coloque também algo como o mostrado abaixo:

On Error Resume Next 

Kill "
c:\Bernardes_Dashboard_Results.txt
"

On Error Goto 0

Return Len(Dir$(aFile)) > 0 

As opções não param. Aqui está um método simples de apagar uma pasta e todos os arquivos e subpastas. Ele usa o File System Object (objeto sistema de arquivos). 

Para usá-lo, você terá que definir uma referência para o Microsoft Scripting Runtime geralmente encontrada em C:\WINDOWS\system32\scrrun.dll.

Sub DeleteAllFolders(FolderPath As String)

   Dim fso As Scripting.FileSystemObject
   Set fso = New Scripting.FileSystemObject
  
   On Error Resume Next
   fso.DeleteFolder (FolderPath)
   Set fso = Nothing

End Sub

O método fso.DeleteFolder não pode retirar a barra à direita ("\")  do path, por isso precisamos removê-la quando aparecer.

Function CorrectPath(FolderPath As String) As String
    
    Let FolderPath = Trim(FolderPath)

    If Right(FolderPath, 1) = "\" Then
        Let CorrectPath = Left(FolderPath, Len(FolderPath) - 1)
    Else
        Let CorrectPath = FolderPath
    End If
End Function

Referências: MSDN
                    Stackoverflow
                    Tektips

Tag: André Luiz Bernardes, MS, Microsoft, MS Office, MS Office 2007, MS Office 2010, Excel, Access, Word, Powerpoint, Sharepoint, Delete files, delete, files, deletando, apagando arquivos, arquivo, exclusão, excluir arquivo, archive, kill, scrrun.dll, FSO, file system object, MSDN, tektips, stackoverflow


André Luiz Bernardes
A&A® - Work smart, not hard.

         

LinkWithinBrazilVBAAccessSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine