Office中国论坛/Access中国论坛

标题: 有经验的高手教教:插入表中的日期为什么变成1/30/1900? [打印本页]

作者: secondonsite    时间: 2006-6-15 18:32
标题: 有经验的高手教教:插入表中的日期为什么变成1/30/1900?
我定义了一个日期变量PayDate,用插入语句写道表Table中一概变成1/30/1900.请高手点睛。

Insert Into Table (ItermDate) Select DateAdd("m", 1, PayDate)
作者: secondonsite    时间: 2006-6-15 19:08
补充一句:ItermDate字段也是日期型。
作者: andymark    时间: 2006-6-15 19:10
变量PayDate  的类型是日期吗
作者: secondonsite    时间: 2006-6-15 19:15
PayDate变量定义的是:

Dim PayDate As Date
作者: secondonsite    时间: 2006-6-15 19:24
字段ItermDate定义的是

Short Date
作者: Benjamin_luk    时间: 2006-6-15 20:28
是否已将日期赋予了PayDate?

从你贴的代码中看不到这样的语句。[em08]
作者: secondonsite    时间: 2006-6-15 20:34
值已经赋了。下面是原代码。

Dim PayDate As Date

    PayDate = DLookup("ItermDate", "Iterm", "Order = " & DMax("[Order]", "Iterm", "Notes Like " & "'Pay the loan of Camry'"))
   
    While Date >= DateAdd("m", 1, PayDate) And Date <= DateAdd("m", 36, "1/4/2006")
        PayDate = DateAdd("m", 1, PayDate)
        DoCmd.RunSQL "INSERT INTO Iterm ( Notes, SortOrder, Charges, ItermDate, Remark ) SELECT 'Pay the loan of Camry' AS Notes, " & OutlayID & " AS SortOrder, " & Payment & " AS Charges, " & Format(PayDate, "Short Date") & " AS ItermDate, " & Format(PayDate, "Short Date") & " AS Remark"

    Wend
作者: secondonsite    时间: 2006-6-15 20:50
奇怪的是,我用一文本框观察PayDate变量,显示6/4/2006.这是正常显示(文本框设成Short Date).但打开表还是错的1/30/1900.我将光标放上去,好像变成时间了。似乎将时间12:30:00按日期格式显示的结果。真费解!
作者: Benjamin_luk    时间: 2006-6-15 21:14
在VBA中通配符是这样引用的:

myValue,

文本: ‘“& myValue &”’

数字:“& myValue &”

日期:#“& myValue &”#

自己修改一下试试
作者: secondonsite    时间: 2006-6-16 05:39
高人啊!你的一点点建议拯救了我一天的迷茫,谢谢!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3