设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: zxp
打印 上一主题 下一主题

一个极难的问题!

[复制链接]
11#
发表于 2003-4-18 17:18:00 | 只看该作者

[贴图]


又不是要你做的,为什么要做呀

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
12#
 楼主| 发表于 2003-4-18 17:27:00 | 只看该作者
谢谢!让你伤神了,不过不是这一贴啊!
13#
发表于 2003-4-18 18:48:00 | 只看该作者
我用DAO试了一下,不过只能显示部分属性
让我再看看有没有其它办法
14#
 楼主| 发表于 2003-4-18 21:20:00 | 只看该作者
为什么没人帮我啊?
15#
发表于 2003-4-18 21:32:00 | 只看该作者
我想他的意思是:由于数据库中表各字段名都是英文简称。字段太多或时间相隔久后很难记得其中的含义和各表中的关系!   所以:
做一个小软件:把所有数据库中的表各字段以及字段的一些常用属性、关系等等...全部输入该软件。使今后修改或查阅可以很快的找出其关系和有关的资料。--------zxp 我说的对吗?
   以前我见到此类的软件,找了一下没找到 ! 不好意思!
                                                        看他这么诚恳-----------------大家帮忙找一下吧!
16#
 楼主| 发表于 2003-4-18 21:34:00 | 只看该作者
对!就是这个意思啊!
17#
发表于 2003-4-18 23:13:00 | 只看该作者
先贴出DAO 3.60 帮助文件中调试过的部分代码,我只试了recordset 对象
其它对象你自己试试看看.

Sub FieldX()

    Dim db  As DAO.Database
    Dim rs  As DAO.Recordset
    'Dim fldTableDef As Field
    'Dim fldQueryDef As Field
    Dim fldRecordset As Field
    'Dim fldRelation As Field
    'Dim fldIndex As Field
   ' Dim prploop As Property
    Dim i As Integer

    Set db = CurrentDb
    Set rs = db.OpenRecordset("tblBill")

    ' Assign a Field object from different Fields
    ' collections to object variables.
    'Set fldTableDef = db.TableDefs(0).Fields(0)
    'Set fldQueryDef = db.QueryDefs(0).Fields(0)
    'Set fldRelation = db.Relations(0).Fields(0)
    'Set fldIndex = db.TableDefs(0).Indexes(0).Fields(0)
   
    For i = 0 To rs.Fields.Count - 1
        Set fldRecordset = rs.Fields(i)
        FieldOutput fldRecordset
        Debug.Print vbCr
    Next i
    ' Print report.
    'FieldOutput "TableDef", fldTableDef
    'FieldOutput "QueryDef", fldQueryDef
    'FieldOutput "Recordset", fldRecordset
     FieldOutput fldRecordset
    'FieldOutput "Relation", fldRelation
    'FieldOutput "Index", fldIndex

    rs.Close
    db.Close

End Sub

Sub FieldOutput(fldTemp As Field)
'Sub FieldOutput(strTemp As String, fldTemp As Field)
    ' Report function for FieldX.
    Dim prploop As Property

   ' Debug.Print "Valid Field properties in " & strTemp

    ' Enumerate Properties collection of passed Field
    ' object.
   ' For Each prploop In fldTemp.Properties
        ' Some properties are invalid in certain
        ' contexts (the Value property in the Fields
        ' collection of a TableDef for example). Any
        ' attempt to use an invalid property will
        ' trigger an error.
      '  On Error Resume Next
      '  Debug.Print "  " & prploop.Name & " = " & prploop.Value
      '  On Error GoTo 0
    'Next prploop
   
     For Each prploop In fldTemp.Properties
         On Error Resume Next
         If prploop.Name <> "ForeignName" And _
            prploop.Name <> "FieldSize" And _
            prploop.Name <> "OriginalValue" And _
            prploop.Name <> "VisibleValue" And _
            prploop.Name <> "GUID" Then
            Debug.Print "  " & prploop.Name & " - " & IIf(prploop.Value = "", "[empty]", prploop.Value)
         End If
         On Error GoTo 0
     Next prploop

End Sub


18#
 楼主| 发表于 2003-4-19 00:46:00 | 只看该作者
非常感谢!我先试试啊,让你伤脑筋了!不好意思!
19#
发表于 2003-4-19 01:35:00 | 只看该作者
其实这些属性都可以用dao 取得,只是得一个一个的去试而已.
比如下面的程序就取得了字段的某些属性
(有些属性 dao 不支持,但 currentdb 支持,比如 captiion 属性,也就是字段的标题属性. currentdb 不等同于 dao 的 database)

Public Function GetFiled(TableName As String)

    Dim fld As DAO.Field
    Dim tbf As DAO.TableDef
    Dim rec As DAO.Recordset
   
    'Set tbf = CurrentDb.TableDefs()
    Set rec = CurrentDb.OpenRecordset("select * from buffer")
   
    For Each fld In CurrentDb.TableDefs("TableName").Fields
        rec.AddNew
        rec!Key = "test"
        rec!sa = fld.Name
'        rec!na = fld.FieldSize
        rec!nb = fld.Attributes
        rec!na = fld.Size
        rec!ba = fld.Required
        rec!bb = fld.AllowZeroLength
        rec!sd = fld.CollatingOrder
        rec!sc = fld.Properties("caption")
'        rec!sb = fld.ForeignName
'        Debug.Print fld.FieldSize
        rec!nc = fld.Type
        rec.Update
        
    Next


End Function



[此贴子已经被作者于2003-4-18 17:36:25编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-16 15:58 , Processed in 0.089784 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表