2009-12-16 3 views
0

Ситуация:Доступ к БД доступа из Outlook через VBA

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

Проблема:

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

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

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

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

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

Благодаря camastanta

ответ

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 

Должен соответствовать.

+0

не правильный тип курсора adOpenDynamic в этом случае? «Если вы создаете набор записей на основе строки SQL с использованием ADO, укажите значение adOpenDynamic CursorType, если это возможно. Поскольку Jet не поддерживает динамические курсоры ..., Jet обрабатывает это специально, обеспечивая лучшую производительность с помощью SQL-строк. , используя константу, поддерживающую определенный тип курсора, который Jet не может обрабатывать, чтобы получить лучшую производительность со строками SQL, но именно так эта конкретная константа была отображена внутренне ». (Http://msdn.microsoft.com/en-us/library/aa188211(office.10).aspx) – onedaywhen

0

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

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

Фактически я использую больше полей, чтобы определить, существует ли запись, но у меня есть только проблемы с датой/временем. Тело сообщения выглядит следующим образом: 10125, Road Runner, 16/12/2009 18:28:00, (16/12/2009 17:28:00 UTC), 11,51.32400000,3.20000000, отчет Положение (с полями: DB-номер, название, дата локальной, дата МСВ, статус, положение, другое)

С уважением Camastanta

Смежные вопросы