2014-02-22 130 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

謝謝蒂姆,正在把你的解決方案,然後我從你的解決方案意識到我需要參考標籤控制之前,我指的是我想要的網頁。 我添加了行 Dim OriginalPage as String,並用Me.tabDeposits.Pages(OriginalPage).SetFocus替換了Me.OriginalPage.SetFocus,並立即運行。 非常感謝。 – Avagut