Η Visual Basic for Applications (VBA) δεν είναι γλώσσα προγραμματισμού μόνο για τη Microsoft Access 2003. Είναι μια γλώσσα προγραμματισμού για όλα τα προγράμματα εφαρμογών που υποστηρίζουν Automation. Ο αυτοματισμός (με κεφαλαίο Α ) αναφέρεται στην ικανότητα ενός προγράμματος να ελέγχεται μέσω προγραμματισμού ή να ελέγχεται αυτόματα χρησιμοποιώντας μια γλώσσα προγραμματισμού όπως η VBA. Όλες οι κύριες εφαρμογές του Microsoft Office, συμπεριλαμβανομένων των Microsoft Access, Microsoft Excel, Microsoft Outlook, Microsoft PowerPoint και Microsoft Word υποστηρίζουν την αυτοματοποίηση. Μπορείτε να γράψετε κώδικα για αυτόματη κοινή χρήση δεδομένων μεταξύ τους.
Οι όροι Component Object Model ( COM ) και OLE automation είναι παλαιότεροι όροι για (αλλά είναι βασικά συνώνυμοι) αυτό που σήμερα ονομάζεται Αυτοματισμός.
Πριν ξεκινήσετε να γράφετε κώδικα
Προτού ανταλλάξετε δεδομένα μεταξύ της Access και άλλων προγραμμάτων στο Microsoft Office Suite, έχετε υπόψη σας ότι η σύνταξη κώδικα για την εκτέλεση της εργασίας σπάνια απαιτείται. Μπορείτε να κάνετε άφθονη εισαγωγή και εξαγωγή δεδομένων μεταξύ εφαρμογών του Microsoft Office χωρίς να γράψετε καθόλου κώδικα. Για παράδειγμα, μπορείτε να εκτελέσετε τις ακόλουθες ενέργειες:
- Εισαγάγετε και εξάγετε δεδομένα χρησιμοποιώντας επιλογές στο μενού Access File.
- E-mail Αποκτήστε πρόσβαση σε αντικείμενα, όπως αναφορές, επιλέγοντας Αποστολή σε –> Παραλήπτης αλληλογραφίας.
- Χρησιμοποιήστε τη δυνατότητα OfficeLinks για να στείλετε αντικείμενα σε άλλα προγράμματα.
- Χρησιμοποιήστε βασικές τεχνικές αποκοπής και επικόλλησης των Windows και OLE (Σύνδεση και ενσωμάτωση αντικειμένων) για να αντιγράψετε και να συνδέσετε δεδομένα μεταξύ προγραμμάτων.
- Συγχώνευση δεδομένων από πίνακες της Access σε γράμματα, ετικέτες, φακέλους ή άλλες αναφορές του Microsoft Word, χρησιμοποιώντας τη δυνατότητα Συγχώνευσης αλληλογραφίας του Word. (Αναζητήστε το σύστημα Βοήθειας του Word για συγχώνευση. )
Αν απλώς θέλετε να λάβετε δεδομένα από την Access σε άλλο πρόγραμμα (ή το αντίστροφο), η σύνταξη κώδικα μάλλον δεν είναι η πιο εύκολη προσέγγιση. Οποιαδήποτε από τις προηγούμενες προσεγγίσεις είναι πιο εύκολη από τη σύνταξη προσαρμοσμένου κώδικα VBA για να γίνει η δουλειά.
Φυσικά, όταν βρίσκεστε σε ένα παροιμιώδες μπλε φεγγάρι, συναντάτε μια κατάσταση όπου η σύνταξη κώδικα VBA είναι ο μόνος, ή ίσως απλώς ο καλύτερος, τρόπος για να ολοκληρώσετε τη δουλειά. Αυτό το άρθρο σας δείχνει μερικές βασικές έννοιες που θα θέλετε να κατανοήσετε.
Φόρτωση των κατάλληλων μοντέλων αντικειμένων
Το μοντέλο αντικειμένου της Access παρέχει ένα μέσο αναφοράς σε αντικείμενα με όνομα, ώστε να μπορείτε να χειρίζεστε αυτά τα αντικείμενα χρησιμοποιώντας κώδικα VBA. Κάθε πρόγραμμα εφαρμογής του Office που εκτίθεται σε VBA έχει ένα μοντέλο αντικειμένου, όπως ακριβώς κάνει η Access. Αφού είναι διαθέσιμη η βιβλιοθήκη αντικειμένων ενός προγράμματος εφαρμογής, μπορείτε να χρησιμοποιήσετε το VBA για τον έλεγχο αυτής της εφαρμογής.
Ένα μοντέλο αντικειμένου ορίζει τα ονόματα και την οργάνωση των αντικειμένων στην εφαρμογή. Μια βιβλιοθήκη αντικειμένων είναι το πραγματικό αρχείο που είναι αποθηκευμένο στον σκληρό σας δίσκο και καθορίζει αυτό το εννοιολογικό μοντέλο αντικειμένου.
Πριν γράψετε κώδικα για τον έλεγχο μιας εξωτερικής εφαρμογής από την Access, πρέπει να φορτώσετε την κατάλληλη βιβλιοθήκη αντικειμένων στο παράθυρο διαλόγου Αναφορές στην Access. Ακολουθήστε αυτά τα βήματα:
1. Βεβαιωθείτε ότι βρίσκεστε στο πρόγραμμα επεξεργασίας της Visual Basic.
Πατήστε Alt+F11 εάν βρίσκεστε στο παράθυρο του προγράμματος Access.
2. Επιλέξτε Εργαλεία –> Αναφορές από το μενού Επεξεργαστής της Visual Basic.
Ανοίγει το παράθυρο διαλόγου Αναφορές.
3. Κάντε κύλιση στη λίστα Διαθέσιμες αναφορές και επιλέξτε τις βιβλιοθήκες αντικειμένων για τα προγράμματα που θέλετε να ελέγξετε.
Στην Εικόνα 1, οι επιλεγμένες βιβλιοθήκες αντικειμένων είναι για Access, Excel, Outlook, PowerPoint και Word (μεταξύ άλλων).
Εικόνα 1: Επιλέχθηκαν πολλές βιβλιοθήκες αντικειμένων στο πλαίσιο διαλόγου Αναφορές.
4. Κάντε κλικ στο OK.
Όλες οι επιλεγμένες βιβλιοθήκες αντικειμένων θα ανοίξουν και θα έχετε πρόσβαση σε όλα τα μοντέλα αντικειμένων τους από αυτό το σημείο και μετά.
Εκφόρτωση βιβλιοθηκών αντικειμένων
Η φόρτωση περισσότερων βιβλιοθηκών αντικειμένων από ό,τι χρειάζεται είναι σπάταλη επειδή τα προγράμματα VBA τρέχουν πιο αργά. Στην πραγματική ζωή, σπάνια χρειάζεται να επιλέξετε όλες τις διαθέσιμες βιβλιοθήκες αντικειμένων (βλ. Εικόνα 1), εκτός εάν σκοπεύατε πραγματικά να αλληλεπιδράσετε με όλα αυτά τα προγράμματα από την τρέχουσα βάση δεδομένων.
Μπορείτε να ξεφορτώσετε βιβλιοθήκες τόσο εύκολα όσο τις φορτώνετε. Ανοίξτε το παράθυρο διαλόγου Αναφορές και καταργήστε την επιλογή δίπλα σε οποιαδήποτε βιβλιοθήκη αντικειμένων που δεν σκοπεύετε πραγματικά να χρησιμοποιήσετε.
Εξερεύνηση του μοντέλου αντικειμένου ενός προγράμματος
Το πρόγραμμα περιήγησης αντικειμένων στο πρόγραμμα επεξεργασίας της Visual Basic παρέχει πρόσβαση σε όλα τα μοντέλα αντικειμένων που επιλέγονται αυτήν τη στιγμή στο παράθυρο διαλόγου Αναφορές. Κάθε μοντέλο φορτωμένου αντικειμένου περιέχει πολλά αντικείμενα, κλάσεις, ιδιότητες και άλλα. Αλλά για την Αυτοματοποίηση, θέλετε κυρίως να δείτε το Αντικείμενο Εφαρμογής κάθε προγράμματος. Για παράδειγμα, το αντικείμενο εφαρμογής Access εκθέτει την Access σε άλλα προγράμματα που υποστηρίζουν την αυτοματοποίηση. Το αντικείμενο εφαρμογής Excel (περιέχεται στη βιβλιοθήκη αντικειμένων του Excel) εκθέτει το Excel σε άλλα προγράμματα αυτοματισμού και ούτω καθεξής.
Για να ανοίξετε το Object Browser στο VBA Editor, επιλέξτε View –> Object Browser ή πατήστε F2. Για να λάβετε βοήθεια με ένα στοιχείο στο Object Browser, κάντε κλικ στο όνομά του και, στη συνέχεια, κάντε κλικ στο κουμπί Help (?) στη γραμμή εργαλείων του Object Browser.
Όταν επιλέγετε από τη λίστα Έργο/Βιβλιοθήκη στο Object Brower και κάνετε κύλιση προς τα κάτω στη λίστα Τάξεις στην αριστερή στήλη, βλέπετε πολλά αντικείμενα εφαρμογής. Όταν κάνετε κλικ σε ένα από τα αντικείμενα της εφαρμογής, το όνομα της εφαρμογής εμφανίζεται στο κάτω μέρος του πλαισίου διαλόγου. Τα μέλη αυτού του αντικειμένου εφαρμογής εμφανίζονται στο παράθυρο στα δεξιά, όπως φαίνεται στην Εικόνα 2.
Εικόνα 2: Το πρόγραμμα περιήγησης αντικειμένων μετά την προσθήκη πολλών βιβλιοθηκών αντικειμένων.
Ρύθμιση παραπομπών σε άλλα προγράμματα
Με φορτωμένα μοντέλα αντικειμένων, είστε έτοιμοι να ξεκινήσετε τη ρύθμιση αναφορών σε διαθέσιμα προγράμματα σε κώδικα VBA. Το πρώτο βήμα είναι να χρησιμοποιήσετε μια δήλωση Dim για να δημιουργήσετε μια μεταβλητή αντικειμένου που αναφέρεται στην εφαρμογή στην οποία θέλετε να συνδεθείτε, χρησιμοποιώντας την ακόλουθη σύνταξη:
Dim anyName As [New] program.Application
Στη σύνταξη, anyName είναι οποιοδήποτε όνομα θέλετε, για να χρησιμοποιηθεί στον κώδικά σας για αναφορά στην εφαρμογή. Το όρισμα προγράμματος είναι το επίσημο όνομα του προγράμματος Αυτοματισμού. Η νέα λέξη-κλειδί είναι προαιρετική. Εάν περιλαμβάνεται, η λέξη-κλειδί Νέα ανοίγει ένα αντίγραφο της εφαρμογής στο παρασκήνιο (δεν είναι απαραίτητα ορατό στην οθόνη) πριν από την εκτέλεση του κώδικα.
Μερικά παραδείγματα δηλώσεων Dim είναι τα ακόλουθα:
Dim appExcel As New Excel.Application
Dim appOutlook As New Outlook.Application
Dim appPowerPoint As New PowerPoint.Application
Dim appWord As New Word.Application
Μια δήλωση Dim είναι έγκυρη μόνο εάν έχει φορτωθεί η κατάλληλη βιβλιοθήκη αντικειμένων. Για παράδειγμα, η δήλωση Dim appWord As New Word.Application αποτυγχάνει εάν η βιβλιοθήκη αντικειμένων για το Microsoft Word δεν είναι επιλεγμένη στο παράθυρο διαλόγου References.
Οι δηλώσεις Dim δημιουργούν απλώς μεταβλητές αντικειμένων που αναφέρονται στην εφαρμογή μέσα από τον κώδικά σας. Για να πραγματοποιήσετε πραγματικά τη σύνδεση με το αντικείμενο εφαρμογής μιας εφαρμογής, πρέπει να ορίσετε το όνομα της μεταβλητής αντικειμένου στην εφαρμογή. Η σύνταξη είναι
Ορισμός objectVariable ως CreateObject ("appName.Application")
όπου το objectVariable είναι το ίδιο με το όνομα που καθορίσατε στη δήλωση Dim και το appName είναι το όνομα του προγράμματος εφαρμογής. Αναφορικά με τις προηγούμενες εντολές Dim, οι δηλώσεις Set που χρησιμοποιείτε για κάθε καθορισμένη μεταβλητή αντικειμένου είναι οι ακόλουθες:
Ορισμός appExcel = CreateObject("Excel.Application")
Set appOutlook = CreateObject("Outlook.Application")
Set appPowerPoint = CreateObject("PowerPoint.Application")
Ορισμός appWord = CreateObject("Word.Application")
Κάθε εφαρμογή στη σουίτα του Office έχει το δικό της μοντέλο αντικειμένου με τα δικά της αντικείμενα και ιδιότητες, αλλά οι βασικές ιδέες είναι οι ίδιες ανεξάρτητα από το πρόγραμμα και το μοντέλο αντικειμένου που χρησιμοποιείτε.