Доступ к БД доступа из Outlook через VBA - PullRequest
0 голосов
/ 16 декабря 2009

Ситуация:

В Outlook я получаю сообщение с сервера. Содержание сообщения должно быть помещено в базу данных Access. Но, может не существовать другое сообщение с той же датой. Итак, мне нужно загляните в БД, если уже есть сообщение с такой же датой и время. Если он существует, его необходимо заменить, а в противном случае сообщение должно быть добавлено в базу данных. База данных содержит список текущих позиций от транспортных средств на дороге.

Проблема:

У меня проблемы при сравнении даты и времени в БД Access через VBA. Используемый мной запрос не возвращает записей, но в база данных.

Это запрос, который я использую:

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

Во-вторых, мне нужно узнать, каков результат этого запроса.

Как я могу определить количество записей, которые мне дает мой запрос?

Спасибо camastanta

Ответы [ 2 ]

0 голосов
/ 17 декабря 2009

Спасибо за это: формат работает, но у меня все еще есть проблема со временем. Мне нужно сравнить дату / время.

Я использую дату / время из тела сообщения, чтобы сравнить его с датой / временем в базе данных доступа. Если существует запись с таким временем, тогда я ничего не должен делать, в противном случае мне нужно добавить тело сообщения в базу данных.

На самом деле я использую больше полей, чтобы определить, существует ли запись, но у меня есть только проблемы с полем даты / времени. Тело сообщения выглядит следующим образом: 10125, Road Runner, 16.12.2009 18:28:00, (16.12.2009 17:28:00 UTC), 11,51.32400000,3.20000000, Отчет о местоположении (с полями: db -номер, имя, дата локальная, дата utc, статус, должность, другое)

С уважением Camastanta

0 голосов
/ 16 декабря 2009

Если дата из сообщения является датой, попробуйте:

"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

Должен подойти.

...