我在Microsoft Access中创建了数据库
使用此查询
SELECT * from booking WHERE BOOK_DATE = DATE() order by book_time*
它返回3条BOOK_DATE =今天日期
的记录但是...
当我尝试将它放在带有Data Control和DBGrid的Visual Basic中时,我在RecordSource属性中输入查询,但是当我执行程序时数据没有出来
我错过了DATE() 它不支持vb,我应该用别的东西替换它吗?
WHERE BOOK_DATE = DATE()
答案 0 :(得分:0)
VB6知道DATE(),因为我最近使用过它。我怀疑数据控件无法处理RecordSource中的内置函数,如DATE()。你可以在代码中更改RecordSource,例如在表单中打开事件或其他任何适当的东西,以便在日期中输入吗?类似的东西:
Control.RecordSource="SELECT * from booking WHERE BOOK_DATE = " & _
"#" & DATE() & "# order by book_time*
请注意,#是日期分隔符,类似于'或'(引号或双引号)是分隔符。假设数据控件的工作方式与我在Access中的工作方式相同。另请注意,有时您不会需要那些,但你应该知道它们。
此外,如果任何系统正在运行除mm / dd / yy格式以外的任何系统,或者如果有可能发生这种情况,那么您应该掌握以下内容。
SQL语句要求日期完全明确或以mm / dd / yy或mm / dd / yyyy格式表示。否则,Access / Jet将最好根据其使用的具体日期来解释具有未知结果的日期。您不能假设您正在使用的系统正在使用这些日期格式。因此,您应该使用以下网页上的逻辑。 美国#mm / dd / yyyy#格式的退货日期 http://www.mvps.org/access/datetime/date0005.htm
答案 1 :(得分:0)
在我尝试了几种方法后,我发现实际上这是我的错。 但是出现了新问题
查询SELECT * from booking WHERE BOOK_DATE = date()
实际上在VB中工作
之所以无效,是因为没有包含BOOK_DATE =今天日期的记录 但是怎么会发生这种情况,因为有记录的BOOK_DATE =今天的日期但是VB却找不到它。
有可能我在MS Access中创建的数据库或VB本身都有错误。 Access中的相同表格显示甚至是不同的
让我解释一下。我已经在MS Access中创建了一段时间的数据库,其中有一些记录(我只是在谈论特定的表'预订') 所以这些记录包含各种日期范围。
但是一旦我使用VB,我想我想尝试在DBGrid中显示具有'今天日期'的数据,所以我回到我的MS Access并编辑一些记录,改变他们的日期到2010年10月12日或10月15日。
然后我切换回VB,我尝试使用简单查询SELECT * from booking
显示数据。
但是表格中显示的记录是我更改日期之前的数据(12,15)。
这就是我很好奇为什么Access中的数据我已编辑并保存但它没有在VB DBGrid中更新。 事实证明,我是否还要更改Access中的信息,vb不会更新表,但会继续显示旧表。