gpt4 book ai didi

sql - 运行时错误 2465 找不到带有更改列的字段 '|1'

转载 作者:行者123 更新时间:2023-12-04 20:23:03 24 4
gpt4 key购买 nike

我的代码:

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 表查询,它组合了各个部门员工的开始日期,结果组合列是文本而不是日期。我在表单上有一个按钮,它运行上面的代码来运行一个宏,该宏运行 make table 查询并且运行良好,但它卡在这个更改表部分(我只是为了测试目的包含了一个)

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

最佳答案

这就是您说 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 中的文本字段.代码运行没有错误,然后我确认该字段已从文本更改为日期/时间数据类型。

关键点有:
  • 给自己一个机会检查已完成的 ALTER TABLE您要求数据库引擎执行的语句 --> Debug.Print strAlter . IOW,请确保这是您的意图。
  • 您的表名,t_tablename , 应该不需要括号。但是,如果您想将名称括起来,请将这些方括号移到字符串段内。
  • 关闭 SetWarnings压制信息。在进行故障排除时,您需要获得的每一条信息。所以保持SetWarnings当您执行 ALTER TABLE 时.

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

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

    关于sql - 运行时错误 2465 找不到带有更改列的字段 '|1',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37031769/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com