通过VBA从Outlook访问Access数据库

时间:2009-12-16 09:47:42

标签: sql ms-access vba outlook-2003

情况:

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

问题:

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

这是我使用的查询:

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

其次我现在需要查询的结果。

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

由于 camastanta

2 个答案:

答案 0 :(得分: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

应该适合。

答案 1 :(得分:0)

谢谢你:格式正在运行,但我仍然遇到时间问题。我需要比较日期/时间。

我使用message-body中的日期/时间将其与访问数据库中的日期/时间进行比较。如果存在那个时间的记录,那么我不得不做任何事情,否则我需要添加消息体数据库。

实际上我使用更多字段来确定记录是否存在但我只有日期/时间字段的问题。 消息正文如下:10125,Road Runner,16/12/2009 18:28:00,(16/12/2009 17:28:00 UTC),11,51.32400000,3.20000000,位置报告(带字段:db - 数字,名称,日期本地,日期utc,状态,位置,其他)

此致 Camastanta