Ms access MS Access-日期作为表字段名

Ms access MS Access-日期作为表字段名,ms-access,vba,Ms Access,Vba,我需要在MS Access中创建一个表,然后根据用户提供的日期范围(StartDate、EndDate)将带有日期的列附加为字段名,如下所示: CurrentDb.Execute "ALTER TABLE myTable ADD COLUMN [10/02/1017] CHAR" 姓氏|名字|角色| 2017年1月10日| 2017年2月10日| 下面的代码片段很接近,但只能使用格式为“Oct01”(mmmdd)的日期,而不是所需的“10/01/2017”。我发誓我最早的尝试确实产生了所需

我需要在MS Access中创建一个表,然后根据用户提供的日期范围(StartDate、EndDate)将带有日期的列附加为字段名,如下所示:

  CurrentDb.Execute "ALTER TABLE myTable ADD COLUMN [10/02/1017] CHAR"
姓氏|名字|角色| 2017年1月10日| 2017年2月10日|

下面的代码片段很接近,但只能使用格式为“Oct01”(mmmdd)的日期,而不是所需的“10/01/2017”。我发誓我最早的尝试确实产生了所需的日期格式作为字段名,但我似乎无法重现——猜测“格式”的语法问题


将字段名用方括号括起来,如下所示:

  CurrentDb.Execute "ALTER TABLE myTable ADD COLUMN [10/02/1017] CHAR"
方括号允许您在标识符中使用空格或其他特殊字符。您需要确保在任何其他SQL语句中引用字段名时也使用括号


即使您可以这样做,也不建议在标识符名称中使用特殊字符。

谢谢标记!这正是我想要的。感谢您在通过SQL调用这些字段时的谨慎。请注意,将日期作为字段名是非规范化数据库的明确标志。通常,您可以通过适当地规范化数据库来避免这种需要,并且通常可以使数据库在这个过程中更易于使用。Erik,澄清一下,我正在根据水平时间线记录特定事件。本质上是一个水平的日历时间线。这是一个可视化工具/表单,用于帮助我们的调度人员查看资源在其日历中的开放日。只读“日历视图”是根据另一个表中的规范化数据动态构建的。请注意,这会破坏规范化(请参阅)。正如前面所讨论的,有一些参数支持破坏规范化,我经常通过缓存需要数小时的查询结果来打破这一规则。但是,您可能需要考虑使用交叉表查询来生成这些数据。