Συνάρτηση Eval

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο προέρχεται από μηχανική μετάφραση, δείτε την αποποίηση ευθυνών. Θα βρείτε την αγγλική έκδοση του παρόντος άρθρου εδώ για αναφορά.

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

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

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

Σύνταξη

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

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

ΣΗΜΕΙΩΣΗ : Τα παραδείγματα που ακολουθούν δείχνουν τη χρήση αυτής της συνάρτησης σε μια λειτουργική μονάδα Visual Basic for 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 Between...And ή In απευθείας στον κώδικά σας, αλλά μπορείτε να τους χρησιμοποιήσετε σε μια παράσταση που δίνετε στη συνάρτηση Eval.

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

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

Παράδειγμα

Στο επόμενο παράδειγμα υποτίθεται ότι έχετε μια σειρά από 50 συναρτήσεις με ονόματα A1, A2 κ.λπ. Στο παράδειγμα αυτό χρησιμοποιείται η συνάρτηση Eval για την κλήση κάθε συνάρτησης της σειράς.

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

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

ΣΗΜΕΙΩΣΗ : Αποποίηση ευθυνών αυτόματης μετάφρασης: Αυτό το άρθρο έχει μεταφραστεί από ένα σύστημα υπολογιστή χωρίς ανθρώπινη παρέμβαση. Η Microsoft προσφέρει αυτές τις αυτόματες μεταφράσεις για να βοηθά τους μη αγγλόφωνους χρήστες να απολαμβάνουν περιεχόμενο σχετικά με προϊόντα, υπηρεσίες και τεχνολογίες της Microsoft. Το άρθρο προέρχεται από μηχανική μετάφραση, συνεπώς ενδέχεται να περιέχει λάθη λεξιλογίου, σύνταξης ή γραμματικής.

Κοινή χρήση Facebook Facebook Twitter Twitter Ηλεκτρονικό ταχυδρομείο Ηλεκτρονικό ταχυδρομείο

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

Πολύ ωραία! Έχετε άλλα σχόλια;

Πώς μπορούμε να το βελτιώσουμε;

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

×