Συνάρτηση Eval

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

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

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

Σύνταξη

Αξιολόγηση ( stringexpr )

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

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

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

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

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

Debug.Print Eval("Date()")

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

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

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

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

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))

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

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

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

Παραδείγματα ερωτημάτων

Παράσταση

Αποτελέσματα

Επιλέξτε αξιολόγηση ("15 + 3") ως Έκφρ1 από το ProductSales GROUP BY αξιολόγηση ("15 + 3").

Αξιολογεί την τιμή συμβολοσειράς και υπολογίζει το αποτέλεσμα. Αποτέλεσμα: 18.

Επιλέξτε αξιολόγηση ("Date () + month (Date ())") ως NewDate FROM ProductSales Group by αξιολόγηση ("Date () + month (Date ())");

Αξιολογεί την τιμή συμβολοσειράς, προσδιορίζει τις συναρτήσεις και τις εκτελεί. Αποτέλεσμα: τρέχουσα ημερομηνία συστήματος + τρέχων μήνας, που εμφανίζεται στη στήλη "NewDate".

Παραδείγματα VBA

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

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

Το επόμενο παράδειγμα ενεργοποιεί ένα συμβάν Click ως εάν ο χρήστης είχε κάνει κλικ σε ένα κουμπί σε μια φόρμα. Εάν η τιμή της ιδιότητας με το κλικ του κουμπιού αρχίζει με το σύμβολο ίσον (=), γεγονός που υποδηλώνει ότι είναι το όνομα μιας συνάρτησης, η συνάρτηση υπολογισμού καλεί τη συνάρτηση, η οποία είναι ισοδύναμη με την ενεργοποίηση του συμβάντος κλικ . Εάν η τιμή δεν ξεκινά με το σύμβολο ίσον, τότε η τιμή πρέπει να ονομάσει μια μακροεντολή. Η μέθοδος 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.

×