我有一个默认值为今天日期的文本框,如果需要,用户也可以更改。日期是收到物品的日期,我需要使用此日期更新采购订单表。我有一个按钮,用db.Execute提交这些更改,这是代码:
Dim db As Database
Dim w As String
Set db = CurrentDb
w = "UPDATE PO SET [Received] = " & Text20.Value & " WHERE [PONumber] = " & Text14.Value & " AND [LineItem] = " & Text18.Value & ";"
db.Execute w
db.Close
Text20是具有默认日期的文本框。它有一个短输入掩码。我的问题是,当我单击按钮时,它会更新表中的[已接收]字段,但不会按我希望的方式更新。它不是把日期放在一起,而是像上午12:00:50那样。我MsgBoxed更新声明,它看起来很好,所以是什么导致这个问题?我也尝试过使用CDate功能,但无济于事。
答案 0 :(得分:2)
试试这个:
If IsDate(Text20.Value) Then
w = "UPDATE PO SET [Received] = #" & Format(Text20.Value, "yyyy\/mm\/dd") & "# WHERE [PONumber] = " & Text14.Value & " AND [LineItem] = " & Text18.Value & ";"
Else
' Something
End If
答案 1 :(得分:2)
您必须将日期格式化为日期。我会删除输入掩码,它们很痛苦,并将代码更改为
w = "UPDATE PO SET [Received] = #" & Format(Me.Text20,"yyyy/mm/dd") & "# WHERE [PONumber] = " & Me.Text14 & " AND [LineItem] = " & Me.Text18 & ";"