运行时错误 2465 找不到带有更改列的字段“|1”

Posted

技术标签:

【中文标题】运行时错误 2465 找不到带有更改列的字段“|1”【英文标题】:Run-time error 2465 can't find the field '|1' with alter column 【发布时间】:2016-05-04 15:13:33 【问题描述】:

我的代码:

Private Sub UpdateTables_Click()

    DoCmd.SetWarnings False
    MsgBox "Please Wait for the 'Done' message to appear"
    DoCmd.RunMacro "Update_Tables"
    DoCmd.RunSQL "ALTER TABLE " & [tablename] & " ALTER COLUMN StartDateAll DATE;"
    MsgBox "Done"
    DoCmd.SetWarnings True

End Sub

DoCmd.RunSQL 行是“调试”窗口中突出显示的内容。我从我的表名开始 t_tablename 并得到一个语法错误。阅读后我发现“”可能是个问题,所以我删除了“t”,这消除了我的语法错误,但现在我收到了这个 2465 错误。我的专栏原来是“Start_Date_All”,所以我改名为“StartDateAll”

我有多个生成表查询,它结合了各个部门员工的开始日期,生成的组合列是文本而不是日期。我在一个表单上有一个按钮,它运行上面的代码来运行一个宏,该宏运行 make table 查询并且运行良好,但是它卡在这个 alter table 部分(我只是包含一个用于测试目的)

我检查了列名的拼写,用双引号试过,也用“& StartDateAll &”试过......每次都得到2465错误。

【问题讨论】:

【参考方案1】:

这就是你所说的 Access 抱怨它找不到该字段的地方:

DoCmd.RunSQL "ALTER TABLE " & [tablename] & " ALTER COLUMN StartDateAll DATE;"

有一种更好的方法,它可能无法解决问题,但至少应该让您有更好的机会了解它发生的原因:

Dim strTable As String
Dim strAlter As String
strTable = "t_tablename"
DoCmd.SetWarnings True
strAlter = "ALTER TABLE [" & strTable & "] ALTER COLUMN StartDateAll DATE;"
Debug.Print strAlter '<- inspect in Immediate window; Ctrl+g will take you there
CurrentProject.Connection.Execute strAlter
MsgBox "Done"

我在 Access 2010 中使用 StartDateAll 作为 t_tablename 中的文本字段测试了该代码。代码运行没有错误,之后我确认该字段已从 Text 更改为 Date/Time 数据类型。

关键点有:

    给自己一个机会来检查您要求数据库引擎执行的已完成的ALTER TABLE 语句 --> Debug.Print strAlter。 IOW,请确保这是您想要的。 您的表名t_tablename 不需要括起来。但是,如果您想将名称括起来,请将这些括号移到字符串段内。 关闭SetWarnings 会抑制信息。在进行故障排除时,您希望获得所有最新的信息。因此,当您执行ALTER TABLE 时,请保持SetWarnings 开启。

如果 Access 仍然找不到 StartDateAll 字段,请仔细检查 Access 认为确实存在的字段的名称。以下是即时窗口会话的示例:

set db = currentdb
for each fld in db.TableDefs("t_tablename").Fields : ? fld.name : next
id
StartDateAll

【讨论】:

我现在正在尝试。非常感谢您花时间帮助我。我会尽快告诉你结果如何。 成功!!...原来我的 make table 查询仍然将列名作为 Start_Date_All 传递(duh)我更改了表中的列名但是当我运行代码时,它运行进行表查询,将其清除并将其恢复为 Start_Date_All。一旦我纠正了我的生成表查询,它就完美地工作了......哇。再次感谢您的帮助,它为我省去了很多头痛!

以上是关于运行时错误 2465 找不到带有更改列的字段“|1”的主要内容,如果未能解决你的问题,请参考以下文章

API 版本 2:无法解析带有“INVALID_ARGUMENT”错误的 JSON 响应字符串:\“:找不到字段。\”

带有可下载 md 报告的闪亮应用程序,错误:“pandoc:找不到数据文件”由闪亮服务器运行时

querydefs 运行时错误 3265:在此集合中找不到项目

Gradle找不到tools.jar [重复]

错误:ld:找不到带有 CocoaPods 的 -lPods 的库

错误76 - 使用带有SharePoint地址的FileSystemObject.GetFolder()找不到路径