Συνάρτηση Eval

Σημείωση:  Θέλουμε να σας παρέχουμε το πιο πρόσφατο περιεχόμενο βοήθειας στη γλώσσα σας όσο πιο σύντομα γίνεται. Αυτή η σελίδα έχω μεταφραστεί μέσω αυτοματοποιημένης διαδικασίας και ενδεχομένως να περιέχει γραμματικά λάθη και ανακρίβειες. Ο σκοπός μας είναι αυτό το περιεχόμενο να σας φανεί χρήσιμο. Μπορείτε να μας ενημερώσετε στο κάτω μέρος αυτής της σελίδας εάν οι πληροφορίες σάς φάνηκαν χρήσιμες; Εδώ θα βρείτε το άρθρο στα Αγγλικά , για να το συμβουλεύεστε εύκολα.

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση Eval προς αξιολόγηση παράσταση που καταλήγει σε μια συμβολοσειρά κειμένου ή μια αριθμητική τιμή.

Μπορείτε να δημιουργήσετε μια συμβολοσειρά και να μεταβιβάσετε στη συνάρτηση Eval τη συμβολοσειρά σαν μια πραγματική παράσταση. Η συνάρτηση Eval αξιολογεί τα παράσταση συμβολοσειράς και επιστρέφει την τιμή. Για παράδειγμα, Eval("1 + 1") επιστρέφει 2.

Εάν περάσετε στη συνάρτηση Eval μια συμβολοσειρά που περιέχει το όνομα μιας συνάρτησης, η συνάρτηση Eval επιστρέφει την τιμή επιστροφής της συνάρτησης. Για παράδειγμα, Eval("Chr$(65)") επιστρέφει "Α".

Σύνταξη

Eval ( παράσταση_συμβολοσειράς )

Το όρισμα παράσταση_συμβολοσειράς είναι μια παράσταση που αξιολογείται σε αλφαριθμητική συμβολοσειρά κειμένου. Για παράδειγμα, παράσταση_συμβολοσειράς μπορεί να είναι μια συνάρτηση που επιστρέφει μια συμβολοσειρά ή αριθμητική τιμή. Ή μπορεί να είναι μια αναφορά σε μια στοιχείο ελέγχου σε μια φόρμα. Το όρισμα παράσταση_συμβολοσειράς πρέπει να υπολογιστεί σε μια συμβολοσειρά ή αριθμητική τιμή. Αυτό δεν είναι δυνατό να είναι ένα αντικείμενο Microsoft Access.

Σημείωση: Παραδείγματα που ακολουθούν δείχνουν τη χρήση αυτής της συνάρτησης σε ένα έργο Visual Basic για τη λειτουργική μονάδα Applications (VBA). Για περισσότερες πληροφορίες σχετικά με την εργασία με τη VBA, επιλέξτε Αναφορά προγραμματιστών στην αναπτυσσόμενη λίστα δίπλα στο στοιχείο Αναζήτηση και πληκτρολογήστε μία ή περισσότερες όρων στο πλαίσιο αναζήτησης.

Σημείωση: Εάν δώσετε το όνομα μιας συνάρτησης στη συνάρτηση Eval , πρέπει να συμπεριλάβετε παρενθέσεις μετά το όνομα της συνάρτησης στο όρισμα παράσταση_συμβολοσειράς . Για παράδειγμα:

' ShowNames is user-defined function.
Debug.Print Eval("ShowNames()")

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")

Παρατηρήσεις

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση Eval σε ένα στοιχείο ελέγχου υπολογισμού σε μια φόρμα ή έκθεση ή σε μια μακροεντολή ή μια λειτουργική μονάδα. Η συνάρτηση Eval επιστρέφει ένα μεταβλητή που είναι μια συμβολοσειρά ή αριθμητική έναν τύπο.

Το όρισμα παράσταση_συμβολοσειράς πρέπει να είναι μια παράσταση που είναι αποθηκευμένο σε μια συμβολοσειρά. Εάν περάσετε στη συνάρτηση Eval μια συμβολοσειρά που δεν περιέχει μια αριθμητική παράσταση ή όνομα συνάρτησης, αλλά μόνο μια συμβολοσειρά απλού κειμένου, εμφανίζεται ένα σφάλμα χρόνου εκτέλεσης. Για παράδειγμα, Eval("Smith") προκαλεί σφάλμα.

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση Eval για να καθορίσετε την τιμή που είναι αποθηκευμένη στην ιδιότητα τιμή ενός στοιχείου ελέγχου. Το παρακάτω παράδειγμα μεταβιβάζει μια συμβολοσειρά που περιέχει μια πλήρη αναφορά σε ένα στοιχείο ελέγχου στη συνάρτηση Eval . Στη συνέχεια, εμφανίζει την τρέχουσα τιμή του στοιχείου ελέγχου σε ένα παράθυρο διαλόγου.

Dim ctl As Control
Dim strCtl As String
Set ctl = Forms!Employees!LastName
strCtl = "Forms!Employees!LastName"
MsgBox ("The current value of " & ctl.Name & _
" is " & Eval(strCtl))

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση Eval για πρόσβαση σε παραστάσεις τελεστών που συνήθως δεν είναι διαθέσιμοι σε μια Visual Basic for Applications (VBA) λειτουργική μονάδα. Για παράδειγμα, δεν μπορείτε να χρησιμοποιήσετε τους τελεστές SQL μεταξύ... Και ή στο απευθείας στον κώδικά σας, αλλά μπορείτε να τις χρησιμοποιήσετε σε μια παράσταση που διαβιβάζεται στη συνάρτηση Eval .

Το επόμενο παράδειγμα καθορίζει εάν η τιμή ενός στοιχείου ελέγχου περιοχής αποστολής σε μια φόρμα "Παραγγελίες" είναι μία από τις καθορισμένες συντομογραφίες. Εάν το πεδίο περιέχει μία από τις συντομογραφίες, intState θα είναι True (– 1). Σημειώστε ότι μπορείτε να χρησιμοποιήσετε μονά εισαγωγικά (') για να συμπεριλάβετε μια συμβολοσειρά μέσα σε μια άλλη συμβολοσειρά.

Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Παράδειγμα

Το παρακάτω παράδειγμα προϋποθέτει ότι έχετε μια σειρά από 50 συναρτήσεις που ορίζονται από το A1, A2 και ούτω καθεξής. Αυτό το παράδειγμα χρησιμοποιεί τη συνάρτηση Eval για κάθε συνάρτηση call στη σειρά.

Sub CallSeries()
Dim intI As Integer
For intI = 1 To 50
Eval("A" & intI & "()")
Next intI
End Sub

Στο επόμενο παράδειγμα ενεργοποιείται ένα συμβάν κάντε κλικ στην επιλογή , όπως αν ο χρήστης έκανε κλικ σε ένα κουμπί σε μια φόρμα. Εάν η τιμή της ιδιότητας OnClick του κουμπιού αρχίζει με το σύμβολο ίσον (=), που σημαίνει ότι είναι το όνομα μιας συνάρτησης, το Eval λειτουργία καλεί τη συνάρτηση, η οποία είναι ισοδύναμη με το συμβάν κάντε κλικ στην επιλογή ενεργοποίηση. Εάν η τιμή δεν αρχίζει με το σύμβολο ίσον, στη συνέχεια, η τιμή πρέπει να ονομάσετε μια μακροεντολή. Τη μέθοδο RunMacro του αντικειμένου DoCmd εκτελείται η καθορισμένη μακροεντολή.

Dim ctl As Control
Dim varTemp As Variant
Set ctl = Forms!Contacts!HelpButton
If (Left(ctl.OnClick, 1) = "=") Then
varTemp = Eval(Mid(ctl.OnClick,2))
Else
DoCmd.RunMacro ctl.OnClick
End If
Αναπτύξτε τις δεξιότητές σας στο Office
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Γίνετε μέλος του Office Insider

Σας βοήθησαν αυτές οι πληροφορίες;

Σας ευχαριστούμε για τα σχόλιά σας!

Σας ευχαριστούμε για τα σχόλιά σας! Φαίνεται ότι μπορεί να είναι χρήσιμο να συνδεθείτε με έναν από τους συνεργάτες υποστήριξης του Office.

×