我有一个列名为“2012 Full Units w / c”的链接表今年某些时候数据将更新,该列将更改为“2013 Full Units w / c”。发生这种情况时,我希望查询将此新数据提取到此列中。此数据发生变化的时间尚不确定。但是,此更新将在今年此链接文件的第一次更新中进行。
目前,我通过引用“2012 Full Units w / c”明确查询此表。如何使用上次修改日期以适应列标题中不确定的时间变化的方式获取此信息?
答案 0 :(得分: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
答案 1 :(得分:0)
如果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