Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 更改字段时更新另一个表_Sql_Vba_Ms Access - Fatal编程技术网

Sql 更改字段时更新另一个表

Sql 更改字段时更新另一个表,sql,vba,ms-access,Sql,Vba,Ms Access,我有一个表单包含“DateProducted”字段。绑定到它的表称为“报告” 我尝试将after update事件添加到此字段,并希望此事件更新Quantity表中的“DateProducted”字段(如果两者的ID匹配) 我![Text0]显示来自报告字段的ID 我![Text4]显示从报告中生成的日期字段 事件代码如下所示 Private Sub Text4_AfterUpdate() Dim strSQL As String strSQL = "UPDATE Quantity " _ &

我有一个表单包含“DateProducted”字段。绑定到它的表称为“报告”

我尝试将after update事件添加到此字段,并希望此事件更新Quantity表中的“DateProducted”字段(如果两者的ID匹配)

我![Text0]显示来自报告字段的ID

我![Text4]显示从报告中生成的日期字段

事件代码如下所示

Private Sub Text4_AfterUpdate()
Dim strSQL As String

strSQL = "UPDATE Quantity " _
& "SET [DateProduced] = (#" & Me![Text4] & "#) " _
& "WHERE ID = (" & Me![Text0] & ")"

DoCmd.RunSQL strSQL
End Sub

但是我不能成功。

我用下面的代码使它工作。Thx

Private Sub Text4_Exit(Cancel As Integer)
Dim strSQL As String
strSQL = "UPDATE Quantity " _
& "SET [DateProduced] = #" & Format(Me.Text4.Value, "dd-mm-yyyy") & "#" _
& "WHERE [ID] = (" & Me![Text0] & ");"

DoCmd.RunSQL strSQL

End Sub

对于可以将dd/mm交换为有效日期的值,该日期格式将失败。应改为:

Private Sub Text4_Exit(Cancel As Integer)

    Dim strSQL As String

    strSQL = "UPDATE Quantity " _
    & "SET [DateProduced] = #" & Format(Me!Text4.Value, "yyyy\/mm\/dd") & "# " _
    & "WHERE [ID] = " & Me![Text0].Value & ";"

    DoCmd.RunSQL strSQL

End Sub

注意:您应该将Text0等的名称更改为有意义的名称。

这与类似。另外,您还没有包含任何错误消息或您的MS Access版本。我使用的是Access 2003,它不会给我任何错误消息,也不会更新表。在这种情况下,请将strSQL打印到即时窗口,并在查询设计中对其进行测试。我怀疑问题就在这里:
“WHERE ID=(“&Me![Text0]&”)”
,其中一个原因是,为什么要用括号?另外,你很可能会在日期
(#“&Me![Text4]&”
)上遇到语言环境问题。试试
设置[dateproducted]=#“&格式(Me![Text4],“yyyy/mm/dd”)&
“运行时错误'3075'查询表达式中的日期语法错误”