Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

12下一頁(yè)
返回列表 發(fā)新帖
查看: 5282|回復(fù): 14
打印 上一主題 下一主題

[ADO/DAO] ADO隱藏表的代碼能否改成隱藏查詢?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2013-12-7 11:08:16 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
下面的代碼是網(wǎng)上下載的,能否改成徹底隱藏查詢的?請(qǐng)高手指教。

ADO編程隱藏表
sub hide_table()
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog

Set cat.ActiveConnection = CurrentProject.Connection
Dim tbl As ADOX.Table
Dim pro As Property
For Each tbl In cat.Tables
Debug.Print tbl.name
For Each pro In tbl.Properties
Debug.Print pro.name & "=" & pro.Value
Next
If tbl.name = "需要隱藏的表名" Then tbl.Properties.Item("JetOLEDB:Table Hidden In Access") = True
Next
End Sub



同理,你還可以隱藏其他的數(shù)據(jù)庫(kù)對(duì)象,一樣使用 ADO

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱

點(diǎn)擊這里給我發(fā)消息

2#
發(fā)表于 2013-12-7 11:11:21 | 只看該作者
ADOX.Table 改成 ADOX.QueryDef
3#
 樓主| 發(fā)表于 2013-12-7 11:37:49 | 只看該作者
按2樓的辦法改動(dòng)不行的,提示cat As New ADOX.Catalog未定義。請(qǐng)問(wèn),如何辦?
4#
 樓主| 發(fā)表于 2013-12-7 11:52:26 | 只看該作者
看過(guò)幫助,不明。

點(diǎn)擊這里給我發(fā)消息

5#
發(fā)表于 2013-12-7 14:28:32 | 只看該作者
查詢隱藏不了
6#
發(fā)表于 2013-12-7 14:41:58 | 只看該作者
查詢可以用代碼隱藏,但是不能達(dá)到隱藏表那樣的效果。如果你想達(dá)到你預(yù)期的效果查詢盡量使用代碼來(lái)實(shí)現(xiàn)查詢
7#
發(fā)表于 2013-12-7 21:05:04 | 只看該作者
Public Function XianShiChaXun()
    On Error GoTo Err_XianShiChaXun
    '======================================================================================
    '顯示系統(tǒng)中所有的查詢
    'DoCmd.SetWarnings 0     '關(guān)閉系統(tǒng)提示

    Dim db As Database
    Dim i As Integer
    Set db = DBEngine.Workspaces(0).Databases(0)

    db.QueryDefs.Refresh
    For i = db.QueryDefs.Count - 1 To 0 Step -1
        ' MsgBox db.QueryDefs(i).Name

        Application.SetHiddenAttribute acQuery, db.QueryDefs(i).Name, False
        'MsgBox db.QueryDefs(i).Name
    Next i
    Set db = Nothing
    'MsgBox "當(dāng)前數(shù)據(jù)庫(kù)中的所有查詢都已顯示!", vbInformation, "系統(tǒng)提示"

Exit_XianShiChaXun:
    Exit Function

Err_XianShiChaXun:
    'MsgBox Err.Description
    Resume Exit_XianShiChaXun

End Function


Public Function YinCangChaXun()
    On Error GoTo Err_YinCangChaXun
    '======================================================================================
    '隱藏系統(tǒng)中所有的查詢,以確保不會(huì)被非法鏈接,
    'DoCmd.SetWarnings 0     '關(guān)閉系統(tǒng)提示

    Dim db As Database
    Dim i As Integer
    Set db = DBEngine.Workspaces(0).Databases(0)

    db.QueryDefs.Refresh
    For i = db.QueryDefs.Count - 1 To 0 Step -1
        ' MsgBox db.QueryDefs(i).Name
        Application.SetHiddenAttribute acQuery, db.QueryDefs(i).Name, True
        'MsgBox db.QueryDefs(i).Name
    Next i
    Set db = Nothing

Exit_YinCangChaXun:
    Exit Function

Err_YinCangChaXun:
    'MsgBox Err.Description
    Resume Exit_YinCangChaXun

End Function
8#
發(fā)表于 2013-12-7 21:28:24 | 只看該作者
版主說(shuō)的徹底隱藏,你這個(gè)好像不是啊
9#
 樓主| 發(fā)表于 2013-12-8 08:43:41 | 只看該作者
netguestcn 發(fā)表于 2013-12-7 21:05
Public Function XianShiChaXun()
    On Error GoTo Err_XianShiChaXun
    '========================= ...

謝謝!這個(gè)不能徹底隱藏查詢的。
10#
發(fā)表于 2013-12-8 15:24:54 | 只看該作者
本帖最后由 roych 于 2013-12-8 15:26 編輯

一般不是用Attribute屬性嗎?詳見(jiàn)http://ctxi.cn/portal.php?mod=view&aid=233&page=1&記得之前跟一個(gè)老前輩的論戰(zhàn)中就提出過(guò)這個(gè)問(wèn)題,沒(méi)法徹底隱藏的,設(shè)置Attribute屬性為T(mén)rue就可以找到了。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 08:29 , Processed in 0.141936 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表