我需要一個緊急的方式來做到這一點。目前我有一個文本框會根據搜索條件顯示一些文本。顯示的文本將是表格的名稱。我能否做到這一點,如果我點擊文本框中的表格名稱,它會爲我打開表格?當點擊文字將鏈接我到表
感謝您的幫助!
我需要一個緊急的方式來做到這一點。目前我有一個文本框會根據搜索條件顯示一些文本。顯示的文本將是表格的名稱。我能否做到這一點,如果我點擊文本框中的表格名稱,它會爲我打開表格?當點擊文字將鏈接我到表
感謝您的幫助!
在文本框的Click事件:
DoCmd.OpenTable Me.MyTextbox
編輯再評論,這是一個草圖,如果表名中有空格將無法正常工作。
Private Sub Text0_Click()
i = Me.Text0.SelStart
j = InStr(i, Me.Text0, " ")
k = InStrRev(Me.Text0, " ", i)
tbl = Mid(Me.Text0, k, j - k)
DoCmd.OpenTable tbl
End Sub
或者更好的是,在列表框中按行而不是在文本框中捕獲構造。
基於您的代碼示例,你可以說:
Public Sub SearchTables(SearchString As String)
Dim tdf As DAO.TableDef
Dim sTable As String
Dim sField As String
Dim sMsg As String
sMsg = ""
For Each tdf In CurrentDb.TableDefs
sTable = tdf.Name
sField = SearchTable(sTable, SearchString)
If sField <> vbNullString Then
sMsg = sMsg & ";" & sTable & ";" & sField
End If
Next
'listbox0
'Row source type: Value List
'Column count: 2
'You will get a two column listbox with table in one column
'and field in another
Forms!Search!listbox0.RowSource = Mid(sMsg, 2)
End Sub
然後在listbox0 click事件:
Private Sub listbox0_Click()
DoCmd.OpenTable Me.listbox0
End Sub
你的意思是特意點擊文本是名字... 所以如果文本是「約翰12345桌子」你想只打開桌子?
沒有足夠的信息給了堅實的答案,但如果你想只從上面的文字得到表,那麼你可以使用屏幕座標基礎上,你的關係點擊文本的位置。這將是更容易做到這一點的另一種方式......
是的,這是我想要的。如果我點擊它,表格將打開。這正是我需要的。 – nonion
如果您的文本的格式是這樣的:
Table = NAMEOFTABLE Field = NAMEOFSEARCH Table = NAMEOFTABLE2 Field = NAMEOFSEARCH2
您可以使用此代碼:
Private Sub Text0_Click()
i = Me.Text0.SelStart
If i > 0 Then
startTable = InStrRev(Me.Text0, "Table = ", i)
startField = InStr(startTable + 8, Me.Text0, "Field = ")
If startTable > 0 And i < InStr(startTable + 8, Me.Text0, "Field = ") Then
DoCmd.OpenTable Mid(Me.Text0, startTable + 8, startField - startTable - 9)
End If
End If
End Sub
如果你點擊任何表的名稱,它會打開該表。
這裏有一點解釋:使用光標的當前位置,我向後搜索"Table = "
字符串,然後從那裏搜索下一個字符串"Field = "
。我們所要做的就是檢查光標是否在下一個字段之前。
感謝您的回覆。然而,在框中,格式是這樣的: 表= NAMEOFTABLE場= NAMEOFSEARCH 我需要它,讓我點擊NAMEOFTABLE,它會聯繫我的表?那可能嗎?可能有超過1個搜索結果,從而就會變成這樣的: 表= NAMEOFTABLE場= NAMEOFSEARCH 表= NAMEOFTABLE2場= NAMEOFSEARCH2 – nonion
你會如何按行辦呢? – nonion
你如何填充文本框?發佈您的代碼。 – Fionnuala