Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> ADO/DAO/ADO.NET  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 
访问人次
 1702009
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

如何获取数据库属性?

作者:cg1  摘自:access911.net  :cg1  更新日期:2006-4-25  浏览人次:

 

如何读取 access 数据库的信息!(即打开access数据库文件->数据库属性这一页上的信息) 

用两种方法可以实现
调用 DSOFILE.DLL
http://support.microsoft.com/default.aspx?scid=kb;en-us;224351


或者直接调用 DAO
Function DisplayAllProperty1()
    Dim db As DAO.Database
    Set db = CurrentDb
    Dim p As Container, pp
    Dim d As DAO.Document, dp
    For Each p In db.Containers
        For Each d In p.Documents
            For Each dp In d.Properties
                Debug.Print "properties for document", p.Name, d.Name, dp.Name, dp.Value
                DoEvents
            Next
        Next
        For Each pp In p.Properties
            Debug.Print "Container Property", p.Name, pp.Name, pp.Value
        Next
    Next
End Function


Function DisplayAllProperty()
    Dim db As DAO.Database
    Set db = CurrentDb
    Dim p As Container, pp
    Dim d As DAO.Document, dp
    For Each p In db.Containers
        For Each d In p.Documents
            For Each dp In d.Properties
                '以下列出所有数据库属性
                'Debug.Print "properties for document", p.Name, d.Name, dp.Name, dp.Value
                '如果你只要列出 菜单->文件->数据库属性 中的资料,请用以下代码

                If p.Name = "Databases" And d.Name = "SummaryInfo" Then
                    Debug.Print "properties for document", p.Name, d.Name, dp.Name, dp.Value
                    '以下代码测试如何写入该属性
                    If dp.Name = "Author" Then
                        dp.Value = "access911.net" & Now
                    End If

                End If
                DoEvents
            Next
        Next
        '以下列出 MDB 容器中所有容器的名称以及属性
        'For Each pp In p.Properties
        '    Debug.Print "Container Property", p.Name, pp.Name, pp.Value
        'Next

    Next
End Function



要添加属性的代码如下:
Function DisplayAddProperty()
On Error Resume Next

    Dim db As DAO.Database
    Set db = CurrentDb
    Dim p As Container
    Dim pp  As DAO.Property
    Dim d As DAO.Document
    Dim dp As DAO.Property
    Dim pc As DAO.Property
    
    For Each p In db.Containers
        For Each d In p.Documents
            For Each dp In d.Properties
                '以下列出所有数据库属性
                Debug.Print "properties for document", p.Name, d.Name, dp.Name, dp.Value
                '如果你只要列出 菜单->文件->数据库属性 中的资料,请用以下代码
                If p.Name = "Databases" And d.Name = "SummaryInfo" Then
                    Debug.Print "properties for document", p.Name, d.Name, dp.Name, dp.Value
                    '以下代码测试如何写入该属性
                    If dp.Name = "Author" Then
                        dp.Value = "access911.net" & Now
                    End If
                End If
                DoEvents
            Next
            '为每一个 DAO.Document 对象添加一个用户定义属性。包括表、窗体、查询、报表等
            Set pc = d.CreateProperty("doc property", dbText, Now)
            d.Properties.Append pc
            If Err.Number = 3367 Then
                Debug.Print "[" & p.Name & "][" & d.Name & "]中该属性已经添加过了"
                Err.Clear
            End If
        Next
        
        '以下列出 MDB 容器中所有容器的名称以及属性
        'For Each pp In p.Properties
        '    Debug.Print "Container Property", p.Name, pp.Name, pp.Value
        'Next
    Next
End Function


近期根据网友提问发现一个比较有意思的问题:如果不是手动创建数据库的情况下,比如用
    如何用adox新建数据库和表?如何创建有“打开密码”或者“用户名、密码”的数据库? 
    http://www.access911.net/?kbid;73FAB71E13DC 
文中所述方法用代码创建数据库时,竟然不存在名为 Databases 的 Container,而手动用 ACCESS 打开这个数据库并单击菜单->文件->数据库属性->自定义属性->手动添加属性后,该 Container 又出现了。目前暂时没有找到编程添加Container的方法。

如果能够访问以下这个网站的,请参考:
http://www.experts-exchange.com/Microsoft/Development/MS_Access/Q_21035424.html


本站文章旨在为该问题提供解决思路及关键性代码,并不能完成应该由网友自己完成的所有工作,请网友在仔细看文章并理解思路的基础上举一反三、灵活运用。

access911.net 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接

 

 
相关文章
     没有手动相关文章
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利