2012-01-25 5 views
2

도와주세요.액세스 VBA의 평가 범위

= 작동하지 않습니다 :

Function f() 
    f = 1 
End Function 

Private Sub Button1_Click() 
    k = Eval("f()") 
End Sub 

가 = 작동하지 않습니다 :

Private Sub Button1_Click() 
    с=1 
    k = Eval("с") 
End Sub 

= 수행 작업 :

Function f() 
    f = 1 
End Function 

Private Sub Button1_Click() 
    k = f() 
End Sub 

= 도움말이 : 다음 예제에서는 가정합니다 A1, A2 등으로 정의 된 일련의 50 가지 함수가 있습니다. 이 예제에서는 Eval 함수를 사용하여 시리즈의 각 함수를 호출합니다.

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

변형 1을 만드는 방법은 무엇입니까?

미리 감사드립니다.

++++++++++++++++++++++++++++

는 = 업데이트 : 내가 함께 얻을 오류의 수는 "하지 않습니다 2425입니다. "함수의 이름을 찾을 수 없습니다." (또는 "표현의 이름을 찾을 수 없습니다."두 번째 경우). 미안해, 내 영어로.

= UPDATE : I 명시 적 평가에서 함수 이름을보십시오 :

k = Eval("[Forms]![Form1].f()") 

을 나는 오류 31005을 얻을 - "참조가 있기 때문에 액세스 식을 계산할 수 없습니다에"F "". Eval에서 사용자 정의 함수 및 변수 사용을 금지하는 Access에 대한 의심이 들기 시작합니다. 도움이 반대 상태.

= UPDATE : 작업을 수행 이중 인용 나에게로의

Function f() 
     f = 1 
    End Function 

    Private Sub Button1_Click() 
     k = Eval("val(""551" & "9" & "6"")") 
    End Sub 

매우 이상한 규칙. 그러나 이것은 내 문제를 해결하지 못합니다.

+1

"작동하지 않음"으로 확장하십시오. –

+0

나는 어떻게하는지 정말로 모른다. 그게 전부입니다. –

+2

오류 메시지가 나타 납니까? k = 2입니까? 컴퓨터가 계속 불이 나나요? * "작동하지 않는"것은 무엇을 의미합니까? * –

답변

5

Eval 함수는 Form 모듈에있는 함수에 액세스 할 수 없습니다. 함수를 일반 Module에 배치하십시오.

+0

네, 맞습니다. 고맙습니다. 질문에 답합니다. –

1

흥미로운 사실 ​​하나가 있습니다. Eval()은 사용자 변수를 인수로받지 않지만 양식 컨트롤 데이터를 허용합니다.