2014-02-22 1 views
0

MS Access 폼에 다중 페이지 요소가 있는데 GetArgs를 사용하여 아래 코드를 사용하여 열 페이지를 식별하려고합니다. 누구든지 페이지 이름을 MS Access에서 사용할 수있는 형식으로 변환하는 방법을 알려 주실 수 있습니까?변수를 사용하여 요소 이름을 전달합니다.

Dim WrdArray() As String 
If Not IsNull(Me.OpenArgs) Then 
    LoadAndLocation = Me.OpenArgs 
    WrdArray() = Split(LoadAndLocation, "|") 
    OriginalPage = WrdArray(1) 'This works and results in the correct page name eg Fina 
    Me.OriginalPage.SetFocus 
End If 
+0

멀티 페이지 요소 란 무엇입니까? 둘 이상의 탭이있는 탭 컨트롤을 의미합니까? 지금 OpenArgs에 무엇을 전달하고 있습니까? 이 코드의 문제점은 무엇입니까? 잘 작동하는 것 같습니다. – HK1

+0

당신은 바로 HK1입니다, 그것은 여러 개의 탭이있는 탭 컨트롤입니다. 나는 탭이있는 폼을 열고 OpenArgs 값은 선택된 탭과 실행될 값 (예 : Final | 9)의 조합 인 문자열을가집니다. 분할 후 변수 OriginalPage가 선택되어야하는 탭의 이름을 보유하고 있습니다. 이 경우에는 Final이라는 탭이 있습니다. MS Access에서 컴파일 오류가 발생했습니다 : 메서드 또는 데이터 멤버를 찾을 수없고 'Me.OriginalPage.SetFocus'행을 가리키고 있습니다 – Avagut

+0

@HansUp이 문제를 해결할 수있는 가능성이 있습니까? – Avagut

답변

2

Access에 익숙하지 않으므로 더 깨끗한 방법 일 수 있습니다. 그러나 이것이 당신이 찾고있는 것이라고 생각합니다.

Private Sub Tester() 

    SetTabByName Me.TabCtl0, "Second" 'set by Caption 

    SetTabByName Me.TabCtl0, "Page1" 'set by Name 

End Sub 


'Set tab control active page: match on tab name *or* caption... 
Sub SetTabByName(tabCtrl As TabControl, sVal As String) 
    Dim x As Long 
    For x = 0 To tabCtrl.Pages.Count - 1 
     If tabCtrl.Pages(x).Name = sVal Or _ 
      tabCtrl.Pages(x).Caption = sVal Then 
      tabCtrl.Value = x 
      Exit For 
     End If 
    Next x 
End Sub 
+0

감사합니다. Tim, 해결책을 찾았습니다. 솔루션에서 깨달았습니다. 원하는 페이지를 참조하기 전에 탭 컨트롤을 참조해야했습니다. Dim OriginalPage를 String으로 추가했으며 Me.OriginalPage.SetFocus를 Me.tabDeposits.Pages (OriginalPage) .SetFocus로 바꿨고 즉시 실행되었습니다. 대단히 감사합니다. – Avagut