【发布时间】:2018-10-11 15:27:28
【问题描述】:
我有一个主要的“最终表格”正在通过 VBA 根据表单和其他表格数据的许多输入进行更新。我正在尝试将表单中存在的 TextBox 对象值调出到 VBA 代码中,以便用户可以为插入到最终表中的所有数据添加注释。
Dim strComment As String
strComment = TextBox_Comment.Value
strSQL = "INSERT INTO Main_Table (Period, Monthp, Order, Comment)"
strSQL = strSQL & "SELECT ""Weekly"" AS Period, [001_SelectedMonth].Monthp, [001_OrderTable].Order, strComment AS Comment FROM 001_SelectedMonth, 001_OrderTable;"
CurrentDb.Execute strSQL, dbFailOnError
当我从主表插入点中删除“注释”和代码的“strComment AS 注释”部分时,代码工作正常。否则我得到运行时错误'3061',参数太少。预计 1。
问题:我有没有办法将要插入到数据库中的文本框值标注为所有要添加的数据的字段数据,或者我应该使用其他方法来执行此操作吗?
决赛桌示例:
【问题讨论】:
-
strComment是窗体上控件的名称吗?如果是这样,则不能在这样的 SQL 字符串中引用它。我建议创建一个临时 QueryDef,为该列添加一个参数,然后将表单控件值分配给该 QueryDef 参数。 -
“order”这个词也是一个SQL保留字,如“ORDER BY”,可能需要像“[Order]”一样分隔。
-
您真的想要添加两个源表而不需要连接吗?当前代码将生成两个表
001_SelectedMonth和001_OrderTable中所有行的笛卡尔积。 -
@CPerkins “订单”只是一个例子,我避免使用我目前在代码中使用的术语。还是谢谢。