Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

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

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

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

Σύνταξη

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 για να προσδιορίσετε την τιμή που είναι αποθηκευμένη στην ιδιότητα Value ενός στοιχείου ελέγχου. Το παρακάτω παράδειγμα μεταβιβάζει μια συμβολοσειρά που περιέχει μια πλήρη αναφορά σε ένα στοιχείο ελέγχου στη συνάρτηση 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... Και ή Απευθείας στον κείμενό σας, αλλά μπορείτε να τα χρησιμοποιήσετε σε μια παράσταση που μεταβιβάζεται στη συνάρτηση Eval .

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

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

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

Expression

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

SELECT Eval("15+3") AS Παράστ1 FROM ProductSales GROUP BY Eval("15+3");

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

SELECT Eval("Date()+month(date())") AS NewDate FROM ProductSales Group by Eval("Date()+month(date())");

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

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

Το παρακάτω παράδειγμα προϋποθέτει ότι έχετε μια σειρά από 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. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

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

×