Propósito
✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.
Meni
.: Vitrine
Views
VBA Access - Criando uma planilha (MS Excel com gráfico) a partir de uma aplicação MS Access.
VBA Access - Removendo campos programaticamente
Function RemoveFieldFromMSACCESSTable (ByVal AccessDBPath, _
ByVal AccessTableName As String, _
AccessFieldName As String _
) As Boolean
' Declaração das variáveis.
Dim AccessDB As Database
Dim AccessDBPath As Variant
Dim Td As TableDef
On Error Resume Next
' Informa o Path do MS Access DB, baseado na TableName.
' Abre a base de dados.
Set AccessDB = OpenDatabase(AccessDBPath) 'if linked table
If Err <> 0 Then
' Caso falhe, retorna a base de dados.
Exit Function
End If
' Retorna a tabela.
Set Td = AccessDB.TableDefs(AccessTableName)
If Err <> 0 Then
' caso falhe obtém a tabela.
GoTo End
End IF
' Deletando o campo.
With Td
' Deleta o campo.
.Fields.Delete AccessFieldName
If Err <> 0 Then
' Caso falhe a deleção do campo - possivelmente não existe.
GoTo End
End If
End With
Let RemoveFieldFromMSACCESSTable = True ' O Default é False caso tenha falhado.
' Limpa.
End:
Set Td = Nothing
' Close the Database
If Not AccessDB Is Nothing Then AccessDB.Close
Set AccessDb = Nothing
End Function-
Public Sub RemoveField () ' Exemplo da chamada: If (RemoveFieldFromMSACCESSTable ( "C:\Bernardes\A&A.mdb", "Clientes", "TimeStamp") Then MsgBox "Campo removido com sucesso!" End If End Sub -
VBA Access - Função para saber se existe um arquivo.
Tudo bem que seja uma função básica, mas com sua utilidade.
Esta função retorna True se não houver um arquivo com o nome que você passar, mesmo que esteja escondido ou seja um arquivo de sistema.
Assume o diretório atual, se você não incluir um caminho.
Retorna False se o nome do arquivo for uma pasta, a menos que você passe True para o segundo argumento.
Retorna False para qualquer erro, por exemplo: nome de arquivo inválido, a permissão foi negada, o servidor não foi encontrado.
Procura um arquivo chamado nFile.accdb na pasta de dados: ExisteArquivo ("C: \ Data \ nFile.accdb")
Procura um arquivo chamado nFile.txt em um servidor de rede: ExisteArquivo ("\ \ MyServer \ MyPath \ nFile.txt")
Verifique se há um arquivo ou pasta no servidor com o nome Bernardes: ExisteArquivo ("\ \ MyServer \ Bernardes", True)
Verifica a pasta do banco de dados atual para um arquivo chamado A&A-InAnyPlace.xlsx: ExisteArquivo (TrailingSlash (CurrentProject.path) & "A&A-InAnyPlace.xlsx")
Function ExisteArquivo (ByVal strFile As String, Optional bFindFolders As Boolean) As Boolean Dim lngAttributes As Long
'Inclui arquivos read-only (somente leitura), hidden (escondidos), e system (de sistema). Let lngAttributes = (vbReadOnly Or vbHidden Or vbSystem)
If bFindFolders Then Let lngAttributes = (lngAttributes Or vbDirectory) 'Inclui pastas. Else Do While Right$(strFile, 1) = "\" Let strFile = Left$(strFile, Len(strFile) - 1) Loop End If
' Se Dir() retornar alguma coisa, é porque existem arquivos. On Error Resume Next Let FileExists = (Len(Dir(strFile, lngAttributes)) > 0) End Function
VBA Excel - Trabalhado com múltiplas WorkSheets - 02
Selecione o objeto. expression.Select(Replace) A expressão requer uma expressão que retorne um dos objetos acima (Chart, Charts, Shape, ShapeRange, Sheets, Worksheet, e objetos Worksheets). Replace É uma Variant opcionalO exemplo de código abaixo seleciona os Sheet2 Chart1, copiando-os para um novo workbook.Sheets ( "Sheet2"). Selecione Sheets ( "Chart1"). Selecione False ActiveWindow.SelectedSheets.CopyComo comentei anteriormente, a seleção e ativação dos objetos deve ser utilizada como último recurso. Veremos como fazer isso em seguida.... Twitter: @officespecialis @brzexceldevelop @brzaccessdevel Veja também: Blog Office VBA | http://inanyplace.blogspot.com/ Blog Excel | http://brzexceldeveloper.blogspot.com/ Blog Access | http://brzaccessdeveloper.blogspot.com/
VBA Excel - Trabalhado com múltiplas WorkSheets
Dois exemplos onde os resultados são diferentes:
Quando se copia um gráfico, e os dados associados a este, num único processo para outra pasta de trabalho, as referências ao gráfico também são atualizadas, fazendo referência aos dados da nova pasta. No entanto, se estas são copiados individualmente, o gráfico faria referência à worksheet original.
Outro exemplo pode ser observado no momento da impressão simultânea de várias worksheets, ao imprimi-las as páginas serão numeradas sequencialmente. Faça isso uma folha de cada vez e as páginas serão numeradas separadamente. Além disso, cada folha será um trabalho de impressão separado. Enquanto alguns podem não considerar isto como um grande problema, para outros pode ser.
Nesta dica veremos como trabalhar com várias sheets.
Usando o gravador de macro
Começando com o nosso amigo de confiança, o gravador de macro, temos a impressão de duas folhas:
Dim nPlan As StringSheets (Array ( nPlan, nChart)). Selecione
Dim nChart As String
Dim nSheet As String
Sheets ( nSheet). Activate
Let Application.ActivePrinter = "HP-Printer on Ne01:"
ActiveWindow.SelectedSheets.PrintOut Copies: = 1, ActivePrinter: = "Acrobat Distiller Ne06 em:", Collate: = True
Observe que o código utiliza essencialmente uma matriz com um índice para o endereçamento (Sheets(1)), ao invés da típica sintaxe Sheets("Sheet1"). Isso permitirá o funcionamento em várias worksheets ao mesmo tempo.

