【问题标题】:Syntax for Insert into VBA access插入 VBA 访问的语法
【发布时间】:2022-02-26 15:57:37
【问题描述】:

我有一个未绑定的表单,用于将记录添加到表中。我只是在 values() 列表中使用字段的名称,没有任何 """" 或 &,它似乎工作正常。这个语法有问题吗?

DoCmd.RunSQL "INSERT into Patient2 (LastName, FirstName, MiddleInitial, SSN, MRN, DOB, GenderID, RaceID, HispanicorLatino)" & _
        "VALUES (LastName, FirstName, MiddleInitial, SSN, MRN, DOB, GenderID, RaceID, HispanicorLatino)"

【问题讨论】:

  • 你确定它有效吗,似乎根本没有意义,因为你很可能将变量名放在表中,而不是实际值......
  • 将表单绑定到表格可以跳过。
  • 该代码应该触发“参数太少”错误。
  • 没有错误。它正确地将具有这些字段名称的未绑定表单中的数据正确放入表中。它正确放置名称(字符串)DOB(日期)和 GenderID(数字)。使用 """ & 语法更容易编写语句。想知道这是否会导致我目前无法检测到的某种类型的错误。

标签: vba ms-access syntax


【解决方案1】:

认为这是一个错误:sql 只是因为一些巧合才起作用。更改表单上文本框的名称或将最有可能保存 DoCmd 的按钮移动到另一个表单,您的代码将中断。我将详细解释发生了什么,然后我会根据我认为可能遇到这种情况的两种 Access 用户提出建议。

要到达这里,您必须选择一个表格,然后点击功能区上的创建表单。然后,正如您所写,您解除了表单的绑定(删除了记录源)。那时,所有表单文本框都可能显示 $NAME 错误,因此您也将它们解绑。接下来,当您尝试设置表单以插入数据时,您添加了一个带有该 DoCmd 的按钮来运行 sql。

当 Access 自动生成表单时,它默认使用字段名称来命名绑定到表的文本框。你可以推断出我对此的看法。因此,在您的表格中,您有 FirstName 字段,在您的表单中,您有 FirstName 文本框。

在表单后面的代码中,所有表单的属性都在范围内。这意味着表单上按钮中的代码可以访问所有表单文本框。于是,通过 DoCmd Access 开始解析 SQL。在语句的 SELECT 部分,Access 会查找适当的表字段,以便 FirstName 将范围限定为表字段。但在 VALUES 部分,Access 需要参数和变量,因此 FirstName 文本框在范围内。
刚接触 Access 的人可能会遇到这个错误:Access 的一大优势是快速的表单开发。只需单击一个表格并像您已经完成的那样点击创建表单。但是,我不会称这些表单是用户友好的。弄清楚如何使用自动表单需要一些时间,但是为了速度,新的 Access 用户应该从自动表单开始。这是一个答案的链接,我在太小的空间里对此进行了咆哮:Database to keep track of inventory/ live stock

更有经验的用户可能会尝试创建一个表单来一次输入多条记录。这是我对此大喊大叫的答案的链接:populating multiple fields in subform using combobox and AfterUpdate Event Prodcedure

【讨论】:

  • 感谢您的回复。我故意创建了一个未绑定的表单来输入新数据。文本框都是未绑定的。文本框名称与我添加数据的表的字段相匹配。命令按钮运行 SQL 并为下一个条目清空所有字段。表格和数据输入工作没有任何错误。我想知道为什么我可以只使用字段名称而不使用任何 & 或“”。为值编写语法要容易得多。我在绑定表上尝试过,如果您移动到另一条记录,它会出错,但我不需要使用此表单仅用于数据输入
  • 希望我的回答能帮到你:)
猜你喜欢
  • 1970-01-01
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多