0

情况:

在 Outlook 中,我从服务器收到一条消息。消息的内容需要放入 Access db。但是,可能不存在具有相同日期的另一条消息。所以,如果已经有相同日期和时间的消息,我需要查看数据库。如果存在,则需要替换它,否则需要将消息添加到数据库中。该数据库包含道路上车辆的当前位置列表。

问题:

我无法通过 VBA 将日期时间与 Access DB 中的日期时间进行比较。我使用的查询不返回任何记录,但数据库中有记录。

这是我使用的查询:

  adoRS.Open "SELECT * FROM currentpositions WHERE ((currentpositions.  
  [dateLT])=" & "#" & date_from_message & "#" & ")", adoConn, adOpenStatic, adLockOptimistic

其次,我现在需要知道该查询的结果。

如何确定我的查询给我的记录数?

谢谢卡马坦塔

4

2 回答 2

0

如果消息中的日期是日期,请尝试:

"SELECT * FROM currentpositions WHERE ((currentpositions.
[dateLT])=#" & Format(date_from_message,"yyyy/mm/dd") & "#)"

即,将日期格式化为年、月、日顺序。

date_from_message 是否附有时间?dateLT 有时间吗?如果是这样,最好排除时间,如果只有日期是相关的。

您可以获取从 RecordCount 属性返回的记录数,但您需要使用the right cursor type

adOpenKeyset:1
adOpenStatic:3

我注意到您正在使用 adOpenStatic,所以:

adoRS.Recordcount

应该适合。

于 2009-12-16T10:00:24.263 回答
0

谢谢你:格式有效,但我仍然有时间问题。我需要比较日期/时间。

我使用消息正文中的日期/时间将其与访问数据库中的日期/时间进行比较。如果当时存在一条记录,那么我什么都不做,否则我需要将消息体添加到数据库中。

事实上,我使用更多字段来确定记录是否存在,但我只有日期/时间字段的问题。消息体是这样的:10125,Road Runner,16/12/2009 18:28:00,(16/12/2009 17:28:00 UTC),11,51.32400000,3.20000000, Position report (with fields:db -编号、名称、本地日期、UTC 日期、状态、位置、其他)

问候卡玛斯坦塔

于 2009-12-17T12:47:28.320 回答