Bij het programmeren in Microsoft Office Visual Basic for Applications (VBA), is het soms noodzakelijk om open of bel van andere programma's van binnen Word, Excel of Access. De gemakkelijkste manier om deze taak uit te voeren is door de VBA-SHELL commando. Deze opdracht lanceert een ander Windows of command line programma uitgevoerd onafhankelijk van de Office-programma. Zodra het andere programma wordt uitgevoerd, kunt het Office-programma doorgaan met het uitvoeren van andere taken. Een eenvoudige techniek gebruiken Winzip uitvoeren en archiveren van een reeks van bestanden met behulp van een Microsoft Access-formulier.
Wat die u nodig hebt
- Microsoft Access 2000 of hoger
- WinZip
Open Microsoft Access (2000 of hoger) en maak een nieuwe database genaamd ZipSample.
Maak een nieuwe niet-afhankelijke formulier met de naam ZipForm. Deze vorm heeft geen tabel gekoppeld. In plaats daarvan, accepteert het map- en bestandsnamen van de zip ingetoetst door de gebruiker dan zip de dossiers wanneer de knop wordt geklikt.
Twee tekstvakken en een knop op het formulier toevoegen.
Naam van het eerste tekstvak "mapnaam" en geef het het bijschrift "map:"
Naam van het tweede tekstvak "ZipFile" en geef het het bijschrift "zipbestand:"
De naam van de knop omzetten in "Zip."
Klik met de rechtermuisknop op de knop Zip en kies BUILD gevolgd door de CODE. Dit wordt de Visual Basic-venster geopend met een nieuwe lege methode. Voer de volgende code in de hoofdtekst van de methode (op de lege regel boven End Sub):
SHELL """c:\Program Files\WinZip\WinZip32" "--min--een - r" & ZipFile & "" & FolderName & "*. *"
Wanneer geëvalueerd door de VBA-interpreter, zullen deze code de volgende tekst doorgeven aan het opdrachtverwerkingsprogramma:
"c:\Program Files\WinZip\WinZip32"--min--een--r zipfile.zip folderName *. *
WinZip kunt uitvoeren met een aantal opdrachtregelparameters. In dit geval vraagt de opdracht WinZip alle bestanden in de map mapnaam toevoegen aan het archief zipFile.zip. Het argument--min vertelt WinZip uitvoeren geminimaliseerd (in de achtergrond), - een geeft aan dat het toevoegen van bestanden aan het archief en--r geeft aan dat alle bestanden in de submappen in deze map ook moeten worden toegevoegd. Zie de website van WinZip (zie bronnen) voor de command line opties en een complete lijst van command line argumenten.
Opslaan en sluit het venster van de Visual Basic, het formulier opslaan en vervolgens overschakelen naar de formulierweergave. Het formulier wordt weergegeven met de twee tekstvakken en een knop. Vul het formulier in en klik op de knop Zip om te testen van het formulier.
- Op de opdrachtregel van winzip zijn de aanhalingstekens vereist omdat de map 'Program Files' een spatie bevat. Het toevoegen van twee offertes samen binnen een letterlijke VBA zet één citaat in de tekenreeks.