【问题标题】:The data type cannot be changed because not enough spcae memory由于空间内存不足,无法更改数据类型
【发布时间】:2025-11-29 01:00:01
【问题描述】:

我将数据库导入 MS ACCESS,但日期字段的 dataytpe 为文本,并写为 APR2010、AUG2011 等。我想将其转换为正确的日期(月份和年份的最后一天),以便我可以对其进行排序并绘制它。 当我直接更改字段中的数据类型时,它会显示“由于空间内存不足,无法更改数据类型”的消息。

有什么解决办法吗?

【问题讨论】:

    标签: ms-access ms-access-2007 ms-access-2010


    【解决方案1】:

    简单的答案是逐步进行。

    1. 为具有适当类型的日期创建一个新列
    2. 运行更新以使用原始列的适当格式版本设置新列的内容
    3. 确保数据完好无损
    4. 删除原始列(或更安全地重命名它)
    5. 将新列重命名为原始列
    6. 喝杯咖啡

    【讨论】:

    • 我会将第 6 步放在第 2 步和第 3 步之间;)
    • @luk2302 这真的取决于数据集。谨慎的做法可能是先处理第 6 步,以便更顺畅地执行其他步骤。
    • 我同意您的回答,尽管扩展问题的原因可能是个好主意。我意识到对于技术人员来说答案可能很明显,但并非所有程序员都是技术人员。
    【解决方案2】:

    在您的更新查询中,您可以使用此表达式来获取任意月份的最后一天:

    SET [NewTrueDate] = DateAdd("d", -1, DateAdd("m", 1, DateValue(Format([OldTextDate], "1 @@@ @@@@"))))
    

    【讨论】: