Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 您如何评论MS access查询?_Ms Access_Ms Office - Fatal编程技术网

Ms access 您如何评论MS access查询?

Ms access 您如何评论MS access查询?,ms-access,ms-office,Ms Access,Ms Office,如何向MS Access查询添加注释,以提供其功能的描述 一旦添加,如何以编程方式检索此类注释?不可能向“普通”Access查询(即mdb中的QueryDef)添加注释,这就是为什么许多人建议将查询sql存储在表中的原因。注意:已通过Access 2003确认,不知道早期版本 对于MDB中的查询,您可以在查询设计器中右键单击(表所在空白区域中的任意位置),从关联菜单中选择“属性”,然后在“描述”属性中输入文本 限制为256个字符,但总比没有好 您可以通过以下方式通过编程获得描述: Dim db

如何向MS Access查询添加注释,以提供其功能的描述


一旦添加,如何以编程方式检索此类注释?

不可能向“普通”Access查询(即mdb中的QueryDef)添加注释,这就是为什么许多人建议将查询sql存储在表中的原因。

注意:已通过Access 2003确认,不知道早期版本

对于MDB中的查询,您可以在查询设计器中右键单击(表所在空白区域中的任意位置),从关联菜单中选择“属性”,然后在“描述”属性中输入文本

限制为256个字符,但总比没有好

您可以通过以下方式通过编程获得描述:

Dim db As Database
Dim qry As QueryDef

Set db = Application.CurrentDb
Set qry = db.QueryDefs("myQuery")

Debug.Print qry.Properties("Description")

可以按如下方式向MSAccess查询添加注释:在查询中创建虚拟字段。虽然不优雅,但它是自我记录的,并且包含在查询中,这使得将其检查为源代码控制更加可行!杰尔就是一个例子。进入SQL视图并添加虚拟字段(也可以从设计视图执行):

运行查询:

qryHISTORY                           FIELD01 FIELD02 ...
2011-01-21;JTR;Added FIELD02;;2011-01-20;JTR;Added qryHISTORY;;"  0000001  ABCDEF ...

请注意“;”作为QRY历史记录字段中的字段分隔符,以及“;”作为注释的结尾,以及ISO日期格式和初始值以及注释的使用。我已经在qryHISTORY字段中用最多646个字符对此进行了测试。

我知道这个问题已经很老了,但我想补充几点,奇怪的是忽略了:

  • 您可以在容器中的查询上单击鼠标右键,然后单击“属性”,并用说明填充该查询。以这种方式输入的文本也可以在“设计”视图的“描述”属性中访问
  • 每个字段也可以记录。只需确保“属性”窗口已打开,然后单击要记录的查询字段,并填写描述(就在鲜为人知的Format属性上方)

  • 令人遗憾的是,据我所知,没有任何产品对这些查询字段的描述和表达式进行文档化。

    第一个答案提到了如何通过编程方式获取description属性。无论如何,如果您要为程序而烦恼,因为查询中的注释非常模糊,与其尝试将注释放入查询中,不如将它们放入程序中并使用该程序进行所有查询

    Dim dbs As DAO.Database
    Dim qry As DAO.QueryDef
    
    Set dbs = CurrentDb
    'put your comments wherever in your program makes the most sense
    dbs.QueryDefs("qryName").SQL = "SELECT whatever.fields FROM whatever_table;"
    DoCmd.OpenQuery "qryname"
    

    如果您有一个包含很多条件的查询,那么记住每个条件的作用可能会很困难。 我在原始表中添加了一个文本字段,称之为“注释”或“文档”。 然后我将其包含在查询中,并为每个条件添加注释

    注释需要这样写,以便返回所有相关行。 不幸的是,因为我是一个新的海报,我不能添加截图

    所以这里没有

    Field:   | Comment              |ContractStatus     | ProblemDealtWith | ...... |
    
    Table:   | ElecContracts        |ElecContracts      | ElecContracts    | ...... |
    
    Sort:  
    
    Show:  
    
    Criteria | <> "all problems are | "objection" Or |
    
             | picked up with this  | "rejected" Or  |
    
             | criteria" OR Is Null | "rolled"       |
    
             | OR ""
    
    字段:|注释|合同状态|问题处理||
    表:|电气合同|电气合同|电气合同||
    排序:
    展示:
    标准|“所有问题都是|“反对”或|
    |拿起这个|“拒绝”或|
    |“条件”或为空|“滚动”|
    |或“
    
    告诉查询选择与您输入的文本不相等的行,否则它将只拾取文本与您的注释相等的字段,即无

    “”请将您的评论用引号括起来


    或为Null或“”指示查询在“注释”字段中包含任何没有数据的行,否则它将不会返回任何内容

    我决定在
    Where
    子句中添加一个条件,该条件的计算结果始终为true,但允许程序员查找您的注释

    Select
       ...
    From
       ...
    Where
       ....
       And "Comment: FYI, Access doesn't support normal comments!"<>""
    
    选择
    ...
    从…起
    ...
    哪里
    ....
    和“评论:仅供参考,Access不支持普通评论!”
    

    最后一行的计算结果始终为true,因此它不会影响返回的数据,但允许您为下一个家伙留下注释。

    如果您试图向整个对象(查询或表等)添加常规注释

    访问2016 转到导航窗格,突出显示对象,右键单击,选择对象/表属性,在描述窗口中添加注释,即在查询设计中的库存“表上次更新时间为2017年5月31日”:

    • 添加一列
    • 在字段中输入您的评论(引号)
    • 取消选中“显示”
    • 表示赞同
    注意:


    如果不进行排序,access将删除该字段。因此,请确保您已取消选中“显示”并对列进行排序。

    我在上面@Dan的回答中使用了五年的方法,现在意识到有一种类似的方法,允许注释与相关代码相邻,而不是在
    WHERE
    子句中分开:

    可以使用
    iif()
    在字段代码中添加注释。例如,如果字段代码为:

    A / B
    
    然后可以这样评论:

    iif("Comment: B is never 0." = "", "", A / B)
    


    与Dan的解决方案一样,它也很笨拙,但这是SQL的错。

    这是通常意义上的评论吗?对我来说,这是一个自定义属性,不是注释。我同意@Remou。虽然这是一种对整个查询进行“注释”的方式,但实际上并不是您通常想要的,也就是说,一种对查询部分进行注释并格式化布局的方式(这两种方式都是不可能的)。您是否知道,如果将表单控件绑定到字段,则在步骤2中填写的描述字段将显示在状态栏中?通过设置查询字段的“描述”属性,然后在“数据表”视图中查看,可以看到这一点。将焦点放在添加说明的字段上时,文本将显示在状态栏中。这是本栏位的目的,实际上,与表格设计中的目的相同。为了清晰起见,可否对其进行编辑?我很难读懂它。代码中的更多格式、间距等可能会有所帮助。我不确定大多数安装是否希望每次查询调用都返回历史记录(&P)@
    iif("Comment: B is never 0." = "", "", A / B)
    
    iif(false, "Comment: B is never 0.", A / B)
    
    iif(0, "Comment: B is never 0.", A / B)