使用用户输入日期从表单更新表

时间:2018-06-07 14:53:38

标签: sql ms-access

我有一个默认值为今天日期的文本框,如果需要,用户也可以更改。日期是收到物品的日期,我需要使用此日期更新采购订单表。我有一个按钮,用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功能,但无济于事。enter image description here

2 个答案:

答案 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 & ";"