我当前正在运行一个链接到表的窗体,其中窗体中显示的一个控件依赖于另一个控件。具体地说,它是一个称为机器挖掘的字段,它需要是用户在字段手工挖掘中输入的百分比的剩余百分比。这些字段属于从另一个名为“挖掘类型”的控件中指定的特定记录。例如,如果我在手工挖掘中输入30%,那么机器挖掘需要70%。我已经创建了一个代码,在手工挖掘控件中执行afterupdate事件时,该代码将在vba中使用runsql方法将其存储在基础表中:

Private Sub Text_HandExcvPerc_AfterUpdate()

DoCmd.RunSQL ("UPDATE tbl-ExcavationType SET [Machine Excavation] = 1 - [Hand Excavation] WHERE [Excavation Type] = Text_ExcvType.Value;") End Sub

tbl excavationtype是链接到窗体的表,text_excvtype.value是包含当前记录标识符的文本框控件。有人能评论一下我的docmd.runsql的语法吗?我老是出错。

最佳答案

DoCmd.RunSQL ("UPDATE [tbl-ExcavationType] SET [Machine Excavation] = " & _
    "1 - [Hand Excavation] WHERE [Excavation Type] = """ & Text_ExcvType.Value & """;")

请注意,文本框值周围有三个引号。access对字符串使用双引号而不是单引号。因为是在字符串中输入的,所以必须使用两个双引号来表示字符串的单双引号,然后使用另一个双引号来断开字符串以连接值。系统所看到的将是:
UPDATE [tbl-ExcavationType] SET [Machine Excavation] = 1 - [Hand Excavation] WHERE [Excavation Type] = "My Data Value";

10-08 11:59