2015-01-14 2 views
0

Дата Имя поля: EmailDate, Имя таблицы: MissingT, Название поля памятки: Рабочий журнал.Обновить поле даты

Я пытаюсь запросить рабочий журнал и найти слово «Дата вступления в силу:» и получить остальные символы на той же строке после «Дата вступления в силу:». Затем обновите поле «EmailDate».

UPDATE MissingT SET MissingT.Emaildate = mid([Worklog],(InStr(1,[Worklog],'Effective Date: ')+16),13) 
WHERE (((MissingT.[worklog]) Like "*" & 'Effective Date: ' & "*")); 

Я получаю сообщение об ошибке преобразования.

Кроме того, есть ли в любом случае поиск в поле заметок рабочего журнала снизу вверх, а не сверху вниз ?. Я создал другое поле под названием «TempD» и сначала получил дату. Таким образом, дата в TempD будет выглядеть так: «Wed, Dec 3, 2014». Затем я выполнил запрос, чтобы обновить электронную почту с помощью функции cdate, как показано ниже: UPDATE MissingT SET MissingT.emaildate = cdate (Формат (правый ([tempd], 4) & "/" & Середина ([tempd], 6,3) & "/" & Середина ([tempd], 9,2))); ........ Но я все еще получаю отказ от конверсии.

ответ

1

Это может быть немного сложнее, чем предыдущая проблема - Fnd 2nd occourance of a string in a Memo Field

путешествует снизу вверх, используйте StrReverse функцию.

? StrReverse("Hello World!") 
!dlroW olleH 

Однако, если вы хотите найти начальную позицию конкретной строки, а затем вы можете использовать функцию InStrRev,

? InStrRev("Hello World! It is a wonderful day. It truly is", "It") 
37 
? InStr("Hello World! It is a wonderful day. It truly is", "It") 
14 

ошибка у вас есть, потому что Mid возвращает строку, но я понимаю, что поле EmailDate является типом даты. Поэтому вам нужно обернуть его с помощью функции CDate или CDbl, чтобы обрабатывать ее как Date.

+0

Я попытался обернуть его с помощью Cdate, и я получаю всю синтаксическую ошибку. Могли бы вы мне помочь. – user3323922

+1

Не могли бы вы отредактировать свой пост? Поэтому я вижу, что вы сделали. Наряду с полным объяснением всех ошибок, которые вы получаете. – PaulFrancis

+0

ok, поэтому я схватил дату в другое поле «TempD» и отформатировал ее правильно с помощью cdate, чтобы обновить поле «Emaildate» с ним: UPDATE MissingT SET MissingT.emaildate = cdate (Format (Right ([tempd], 4) & "/" & Mid ([tempd], 6,3) & "/" & Mid ([tempd], 9,2))); Перед форматированием дата выглядит так: «Wed, Nov 26, 2014» – user3323922

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