【问题标题】:Access change query expression based on last modified date for linked table?根据链接表的最后修改日期访问更改查询表达式?
【发布时间】:2014-01-02 15:45:43
【问题描述】:

我有一个链接表,其列名“2012 Full Units w/c”在今年某个时候,数据将更新,该列将更改为“2013 Full Units w/c”。发生这种情况时,我希望查询将这些新数据拉入此列。该数据将在何时发生变化是不确定的。但是,此更新将针对该链接文件的年度第一次更新。

目前我通过引用“2012 Full Units w/c”明确查询此表。如何使用上次修改日期以适应列标题中这种不确定的时间变化的方式获取此信息?

【问题讨论】:

    标签: sql ms-access ms-access-2007


    【解决方案1】:

    您可以使用一些 VBA 代码来测试旧的字段名称是否仍然存在,如下所示:

    Sub CheckForFieldNameChange()
        Dim cdb As DAO.Database, rst As DAO.Recordset, errNo As Long
        Set cdb = CurrentDb
        cdb.TableDefs("YourLinkedTable").RefreshLink
        On Error GoTo CheckForFieldNameChange_Error
        Set rst = cdb.OpenRecordset( _
                "SELECT TOP 1 [2012 Full Units w/c] " & _
                "FROM [YourLinkedTable]", _
                dbOpenSnapshot)
        Debug.Print "Field name has not changed yet."
        rst.Close
    CheckForFieldNameChange_Exit:
        Set rst = Nothing
        Set cdb = Nothing
        Exit Sub
    
    CheckForFieldNameChange_Error:
        errNo = Err.Number
        Select Case errNo
            Case 3061
                Debug.Print "Field name has changed."
                GoTo CheckForFieldNameChange_Exit
            Case Else
                Err.Raise errNo
        End Select
    End Sub
    

    【讨论】:

      【解决方案2】:

      如果Last Modified Date 指的是表中的一个字段,那么您可以使用类似的内容:

      SELECT (SELECT Year(Max([Last Modified])) FROM TableName) & " Full Units w/c" AS FieldName
      FROM TableName
      

      但是,如果您指的是上次修改相关表格的实际日期,您可能需要一些 VBA 来促进,如下所示:

      Public Function tblLastModified(tblName As String) As Date
      
          tblLastModified = CurrentDb.TableDefs(tblName).LastUpdated
      
      End Function
      

      那么您的查询将是:

      SELECT (SELECT Year(tblLastModified("TableName")) FROM TableName) & " Full Units w/c" AS FieldName
      FROM TableName
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-13
        • 2022-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-29
        • 1970-01-01
        相关资源
        最近更新 更多