Eval İşlevi

Bir metin dizesi veya sayısal değer sonucu veren bir ifade değerlendirmek için eval işlevini kullanabilirsiniz.

Dizenin gerçek bir ifade olduğu gibi, bir dize oluşturabilir ve bunu eval işlevine geçirebilirsiniz. Eval işlevi dize ifadesi değerlendirir ve değerini döndürür. Örneğin, Eval("1 + 1") 2 sonucunu verir.

Eval işlevine bir işlevin adını içeren bir dize yazarsanız, eval işlevi işlevin dönüş değerini döndürür. Örneğin, Eval("Chr$(65)") "A" sonucunu verir.

Söz Dizimi

Değerlendirme ( stringexpr )

Stringexpr bağımsız değişkeni alfasayısal bir metin dizesine değerlendirilen bir ifadedir. Örneğin, stringexpr dize veya sayısal değer döndüren bir işlev olabilir. Veya bir formdaki denetim başvuru olabilir. Stringexpr bağımsız değişkeni bir dize veya sayısal değer olarak değerlendirilmelidir; Microsoft Access nesnesi değerlendirilemiyor.

Not: Aşağıdaki örneklerde, bu işlevin Visual Basic for Applications (VBA) modülünde kullanımı gösterilir. VBA ile çalışma hakkında daha fazla bilgi için, rama'nın yanındaki açılan listede Geliştirici Başvurusu'nu seçin ve arama kutusuna bir veya birden çok terim yazın.

Not: Bir işlevin adını eval işlevine geçirıyorsanız, stringexpr bağımsız değişkeninde işlevin adından sonra ayraç eklemeniz gerekir. Örneğin:

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

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

Debug.Print Eval("Date()")

Açıklamalar

hesaplanmış denetim bir formda veya raporda ya da bir makroda veya modülde eval işlevini kullanabilirsiniz. Eval işlevi, dize veya sayısal türde bir değişken döndürür.

Bağımsız değişken dizesi, bir dizede depolanan bir ifade olmalıdır. Eval işlevine, sayısal ifade içermeyen bir dize veya yalnızca basit bir metin dizesi yazarsanız, çalıştırma hatası gerçekleşir. Örneğin Eval("Smith") bir hatayla sonuçlanır.

Bir denetimin Value özelliğinde depolanan değeri belirlemek için eval işlevini kullanabilirsiniz. Aşağıdaki örnek, eval işlevine bir denetime tam başvuru içeren bir dize geçirir. Ardından iletişim kutusunda denetimin geçerli değerini görüntüler.

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

Genellikle Visual Basic for Applications (VBA) modülünde bulunmayan ifade işleçlerine erişmek için eval işlevini kullanabilirsiniz. Örneğin, Between... Veya doğrudan kodunuzda, ancak eval işlevine geçirilen bir ifadede kullanabilirsiniz.

Sonraki örnek, Siparişler formundaki ShipRegion denetiminin değerinin belirtilen birkaç durum kısaltmadan biri olup olmadığını belirler. Alanda kısaltmaların bir kısmı varsa intStatetrue olur (– 1). Başka bir dizenin içine dize eklemek için tek tırnak işareti (') kullanacağınızı unutmayın.

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

Sorgu örnekleri

İfade

Sonuçlar

Ifade1 ile ProductSales GROUP BY eval ("15 + 3") arasında olarak eval ("15 + 3") SEÇIN;

Dize değerini değerlendirir ve sonucu hesaplar. Sonuç: 18.

ProductSales Group By eval ("date () + month (Date ())") ile NewDate ("date () + month (Date ())") öğesini SEÇIN;

Dize değerini değerlendirir, işlevleri tanımlar ve bunları yürütün. Sonuç: geçerli sistem tarihi + geçerli ay, "NewDate" sütununda görüntülenir.

VBA örnekleri

Aşağıdaki örnekte, a1, a2 gibi bir dizi 50 fonksiyonunuzda olduğu varsayılır. Bu örnekte, serideki her işlevi aramak için eval işlevi kullanılır.

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

Sonraki örnekte, Kullanıcı formdaki bir düğmeyi tıklamış gibi bir Click olayı tetiklenir. Düğmenin OnClick özelliğinin değeri eşittir işaretiyle (=) başlıyorsa, işlevin adı olduğunu belirten eval işlevi, Click olayının tetiklenmesi gereken işlevi çağırır. Değer eşittir işaretiyle başlamıyorsa, değer bir makro adı olmalıdır. DoCmd nesnesinin MakroÇalıştır yöntemi adlandırılmış makroyu çalıştırır.

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

Not:  Bu sayfanın çevirisi otomasyon aracılığıyla yapılmıştır ve bu nedenle hatalı veya yanlış dil bilgisi kullanımları içerebilir. Amacımız, bu içeriğin sizin için faydalı olabilmesini sağlamaktır. Bu bilgileri yararlı bulup bulmadığınızı bizimle paylaşır mısınız? Kolayca başvurabilmek için İngilizce makaleye buradan ulaşabilirsiniz.

Office yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Office Insider Programına Katılın

Bu bilgi yararlı oldu mu?

Görüşleriniz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×