首页 > 解决方案 > 使用表单中的信息填充 Access 表

问题描述

我在 Access 中有一个表单,我想从中传输到表中的信息。我无法使用表单,因为我需要使用信息创建图表,结果您无法在 Access 中使用源 - 表单创建图表。我试图将表单中的字段绑定到表中,但这会将值转移到表中的第一行,并且我需要每个新值都转到下一行,因此绑定选项对我不起作用。

我试图从表单中的每个控件中获取值并将其传输到表中,但出现错误:INSERT INTO 语句中的 SYNTAX ERROR

Sub PopulateTable()

Dim sSQL As String

sSQL = "Insert INTO [Levels_Shipped_POF] (Level,POF_Pluquo,Actual_Shipped,Buffer) VALUES (5,Forms![Main_Input_Form].[POF_LVL5].Value,Forms![Main_Input_Form].[Shipped_5].Value,Forms![Main_Input_Form].[Buffer_5].value)"
DoCmd.RunSQL (sSQL)
DoCmd.GoToRecord , , acNewRec
                                                                                                

End Sub

表单的名称是 - Main_Input_Form 控件名称 - POF_LVL5、POF_LVL6、POF_LVL7...... Shipped_5、Shipped_6、Shipped_7...... Buffer_5、Buffer_6、Buffer_7

标签: sqlvbams-access

解决方案


LEVEL 在 JET 和 ODBC 中是保留的。使用保留字作为对象名称时,可能会出现意外结果。此外,使用空格和标点符号/特殊字符也会导致问题。如果这些功能符合命名约定,请将名称括在括号中以强制其被接受:[Level]. 建议不要在命名约定中使用。

但是,正确使用绑定形式将不需要任何代码。在输入新数据之前移动到新记录行和/或将表单 DataEntry 属性设置为是。这将始终打开新记录行的表单 - 不会显示现有记录。


推荐阅读