Kopiowanie pliku

Jak szybko skopiować dowolny plik? Sposobów jest kilka, jednym z nich jest wykorzystanie obiektu FileSystem.Object.
Służy do tego metoda FileSystem.Object.Copy
Ma ona kilka parametrów wejściowych:

    • Object – nazwa obiektu zdefiniowanego jako obiekt FSO. Argument obowiązkowy.
    • Source – nazwa pliku do skopiowania. Argument obowiązkowy, ale dozwolone są znaki zastępcze w  nazwie.
    • Destination – nazwa pliku po skopiowaniu. Argument obowiązkowy.
    • Overwrite – opcjonalny argument typu Boolean. Jeżeli kopiowany plik ma być zapisany pod nazwą już istniejącego pliku, wartość False nie skopiuje pliku. Domyślna wartość True, zastąpi plik plikiem kopiowany.

Przykładowy kod kopiujący plik może wyglądać tak:

Public Sub KopiujPlik()
Dim FSO As Object
Dim KopiowanyPlik As String
Dim
NowyPlik As String
KopiowanyPlik= “C:\Wprawki\PrzykladowaBaza.accdb”
NowyPlik= “C:\NaBlogi\PrzykladowaBaza.accdb”
Set FSO=CreateObject(“Scripting.FileSystemObject”)
FSO.Copy  KopiowanyPlik, NowyPlik, True
Set FSO=Nothing
End Sub

 


FileSystem.Object

Scripting.FileSystemObject to obiekt służący do zarządzania plikami i folderami. Wprawdzie w kodzie VBA są dostępne proste i przyjemne funkcje Dir, MkDir itp., ale przy odwołaniach do folderów sieciowych niestety często zawodzą. Wówczas pozostaje wykorzystanie właśnie obiektu FileSystemObject, popularnie nazywanym FSO.

Dostępne są tu następujące właściwości i metody:

    • GetDrive – informacje o napędzie (dysku)
    • GetFolder – informacje o folderze
    • GetFile– informacje o pliku
    • CreateFolder – tworzenie folderu
    • CreateFile – tworzenie pliku
    • DeleteFolder – usuwanie folderu
    • DeleteFile – usuwanie pliku
    • CopyFolder – kopiowanie folderu
    • CopyFile – kopiowanie pliku
    • MoveFolder – przenoszenie folderu
    • MoveFile – przenoszenie pliku

To tylko te podstawowe, jest ich więcej. I każda będzie tematem notki.


Otwieranie folderu kodem VBA

Jak z poziomu aplikacji otworzyć określony folder na dysku? Sposobów jest kilka, jeden z nich to wykorzystanie funkcji Shell.

Public Sub OtworzFolder()
Dim a
Dim JSciezka As String
JSciezka = “C:\CWICZENIAFORA”
a = Shell(“explorer.exe ” & JSciezka, vbNormalFocus)
End Sub

Po uruchomieniu kodu w aplikacji Access – w oddzielnym oknie Windows otwiera się folder zdefiniowany w zmiennej JSciezka, a kod VBA przechodzi do kolejnego kroku.


Funkcja Shell

Funkcja VBA Shell to funkcja uruchamiająca inny program wykonywalny.
Ma 2 argumenty wejściowe:

    • PathName  – argument obowiązkowy. Wartość typu String określająca nazwę programu do otwarcia;
    • WindowStyle – argument opcjonalny. Wartość typu Integer określająca widok okna uruchomionego programu.
      Dostępne są tu następujące wartości:

      • 0 (vbHide) – okno uruchomionego programu jest ukryte
      • 1 (vbNormalFocus) – okno uruchomionego programu jest widoczne  i ma fokus
      • 2  (vbMinimizedFocus) – okno uruchomionego programu jest widoczne jako ikona i ma fokus
      • 3  (vbMaximizedFocus) – okno uruchomionego programu jest maksymalnie powiększone i ma fokus
      • 4  (vbNormalNoFocus) – okno uruchomionego programu jest widoczne, ale nie ma fokusu
      • 6 (vbMinimizedNoFocus) – okno uruchomionego programu jest widoczne jako ikona i nie ma fokusu

Wartością domyślną jest tu 1 (vbNormalFocus)

W wyniku działania funkcji VBA otrzymujemy wartość typu Variant będącą identyfikatorem numeru zadania uruchomionego programu. Jeżeli uruchomienie programu się nie powiedzie – zwracana jest wartość 0.


Kurs Access - programowanie w VBA

Literatura informatyczna

Poproszono mnie ostatnio o polecenie wartościowej literatury z dziedziny Accessa. W takich przypadkach wiadomo, że najlepiej szukać pozycji w GW Helion.
Ja osobiście polecam:

Biblia Access (w zależności od posiadanej wersji Accessa)

I oczywiście pozycja związana z programowaniem czyli VBA dla Accessa:

Niektóre z tych pozycji są dostępne tylko w wersji elektronicznej, ale nawet nie mając czytnika można z nich korzystać, gdyż są dostępne również w formacie PDF.
A literatura wartościowa i bardzo przydatna.

 

%d bloggers like this: