MS Access:将当前记录中的值插入到另一个 table
MS Access: Inserting value from current record into another table
我有一个按钮应该从当前记录中获取“地址”字段,并将其添加到 TAddressCorrectionExclusions table,它仅由 ID(自动编号)和地址组成。但是,当我 运行 下面的代码时,它会提示输入 tempaddress 的值。如何将当前记录的 'address' 字段存储为临时地址?
Dim SQL As String
Dim TempAddress As String
TempAddress = Me.Address ' This is the part that's not working
SQL = "INSERT INTO TAddressCorrectionExclusions (Address) VALUES (TempAddress)"
DoCmd.RunSQL SQL
因为 TempAddress
不是任何引用上下文中的命名字段,查询引擎会提示您输入这样的值(如果不使用 MS Access GUI,这实际上是一个错误)。注意如何像其他标识符一样使用 TempAddress
:TAddressCorrectionExclusions
和 Address
.
记住 SQL 是一个 独立于 VBA 的 进程,并且对其应用层一无所知。这包括 SQL 和其他应用程序层:Java、Python、PHP、C# 等
INSERT INTO TAddressCorrectionExclusions (Address) VALUES (TempAddress)
您真正想要做的是将 VBA 变量 TempAddress 的基础值传递到 SQL 查询中。因此,通常的答案是将 VBA 变量连接到 SQL 查询中,将字符串值用引号引起来。
SQL = "INSERT INTO TAddressCorrectionExclusions (Address) VALUES ('" & TempAddress & "')"
但是,更好的解决方案是直接在存储的查询中使用表单控件,如果打开表单,该查询会将值识别为参数。这有效地将 SQL 与 VBA 分开,以提高可读性和可维护性。
SQL (另存为存储的 Access 查询;调整 'myform' 名称)
INSERT INTO TAddressCorrectionExclusions (Address) VALUES (Forms!myform!Address)
VBA(单个one-line命令;动作查询不需要关闭)
DoCmd.OpenQuery "mySavedAppendQuery"
我有一个按钮应该从当前记录中获取“地址”字段,并将其添加到 TAddressCorrectionExclusions table,它仅由 ID(自动编号)和地址组成。但是,当我 运行 下面的代码时,它会提示输入 tempaddress 的值。如何将当前记录的 'address' 字段存储为临时地址?
Dim SQL As String
Dim TempAddress As String
TempAddress = Me.Address ' This is the part that's not working
SQL = "INSERT INTO TAddressCorrectionExclusions (Address) VALUES (TempAddress)"
DoCmd.RunSQL SQL
因为 TempAddress
不是任何引用上下文中的命名字段,查询引擎会提示您输入这样的值(如果不使用 MS Access GUI,这实际上是一个错误)。注意如何像其他标识符一样使用 TempAddress
:TAddressCorrectionExclusions
和 Address
.
记住 SQL 是一个 独立于 VBA 的 进程,并且对其应用层一无所知。这包括 SQL 和其他应用程序层:Java、Python、PHP、C# 等
INSERT INTO TAddressCorrectionExclusions (Address) VALUES (TempAddress)
您真正想要做的是将 VBA 变量 TempAddress 的基础值传递到 SQL 查询中。因此,通常的答案是将 VBA 变量连接到 SQL 查询中,将字符串值用引号引起来。
SQL = "INSERT INTO TAddressCorrectionExclusions (Address) VALUES ('" & TempAddress & "')"
但是,更好的解决方案是直接在存储的查询中使用表单控件,如果打开表单,该查询会将值识别为参数。这有效地将 SQL 与 VBA 分开,以提高可读性和可维护性。
SQL (另存为存储的 Access 查询;调整 'myform' 名称)
INSERT INTO TAddressCorrectionExclusions (Address) VALUES (Forms!myform!Address)
VBA(单个one-line命令;动作查询不需要关闭)
DoCmd.OpenQuery "mySavedAppendQuery"