2016-01-18 1 views
1

Добрый день Все,MS Access Update Query Error (Невозможно обновить Memo поле, что актуально Text Field)

Я Доступ подключения к Backend некоторого качества программного обеспечения мы имеем в доме (SQL) и вытягивать 2 таблицы (компания Software сделала обновление и разделила данные на две таблицы). Эти таблицы объединены и сбрасываются в таблицу (tblWeakPointMaster) с помощью команды «Сделать таблицу». Первичный ключ не переносился в Дамп, добавлен новый столбец (Aunonumber) Post-Snapshot, а также некоторые дополнительные столбцы для данных, которые мы будем добавлять

С данными, которые были вытащены один раз, я использовал ту же таблицу Make Запрос на отправку в новую таблицу (tblWeakPointUpdates), и я хочу запустить запрос на обновление, чтобы нажать «Новые записи» и «Измененные записи» из этой таблицы на tblWeakPointMaster, с которым я работаю. Проблема я бегу в это я получаю ошибки при выполнении запроса обновления (Невозможно присоединиться на Memo, OLE или гиперссылок ..)

Загвоздка, Поля ее отвергая не какой-либо из этих полей. Что может быть причиной этой проблемы. До сих пор все поля, с которыми у него возникают проблемы, это текстовые поля из 50 символов или меньше. Поля полностью идентичны (поскольку они сделаны из одного и того же Make Table Query)

Мне ничего не удалось найти конкретная ошибка, я не уверен, если это ограничение доступа, и проблема с данными тянет, или если я просто в над моей головой

UPDATE
Pic of Both Tables Я обратил внимание на поля, которые я 'вытащил из базы данных SQL, это также поля, которые я пытаюсь обновить. Таблицы были помечены в образе

SQL, им с помощью в Access для обновления запроса (Порожденных Access)

UPDATE tblWeakPointMaster INNER JOIN tblWeakPointUpdates ON 
(tblWeakPointMaster.TaskTypeID = tblWeakPointUpdates.TaskTypeID) AND 
(tblWeakPointMaster.NCR = tblWeakPointUpdates.NCR) AND 
(tblWeakPointMaster.NCR_Date = tblWeakPointUpdates.NCR_Date) AND 
(tblWeakPointMaster.NC_type = tblWeakPointUpdates.NC_type) AND 
(tblWeakPointMaster.Customer = tblWeakPointUpdates.Customer) AND 
(tblWeakPointMaster.Material = tblWeakPointUpdates.Material) AND 
(tblWeakPointMaster.Rev = tblWeakPointUpdates.Rev) AND 
(tblWeakPointMaster.Qty_rejected = tblWeakPointUpdates.Qty_rejected) AND 
(tblWeakPointMaster.TaskType = tblWeakPointUpdates.TaskType) AND 
(tblWeakPointMaster.dbo_PT_Task_Notes = tblWeakPointUpdates.dbo_PT_Task_Notes) AND 
(tblWeakPointMaster.Origin = tblWeakPointUpdates.Origin) AND 
(tblWeakPointMaster.Origin_ref = tblWeakPointUpdates.Origin_ref) AND 
(tblWeakPointMaster.Origin_cause = tblWeakPointUpdates.Origin_cause) AND 
(tblWeakPointMaster.Origin_category = tblWeakPointUpdates.Origin_category) 

SET tblWeakPointMaster.TaskTypeID = [tblWeakPointUpdates].[TaskTypeID], 
tblWeakPointMaster.NCR = [tblWeakPointUpdates].[NCR], 
tblWeakPointMaster.NCR_Date = [tblWeakPointUpdates].[NCR_Date], 
tblWeakPointMaster.NC_type = [tblWeakPointUpdates].[NC_type], 
tblWeakPointMaster.Customer = [tblWeakPointUpdates].[Customer], 
tblWeakPointMaster.Material = [tblWeakPointUpdates].[Material], 
tblWeakPointMaster.Rev = [tblWeakPointUpdates].[Rev], 
tblWeakPointMaster.Qty_rejected = [tblWeakPointUpdates].[Qty_rejected], 
tblWeakPointMaster.TaskType = [tblWeakPointUpdates].[TaskType], 
tblWeakPointMaster.dbo_PT_Task_Notes = [tblWeakPointUpdates].[dbo_PT_Task_Notes], 
tblWeakPointMaster.Origin = [tblWeakPointUpdates].[Origin], 
tblWeakPointMaster.Origin_ref = [tblWeakPointUpdates].[Origin_ref], 
tblWeakPointMaster.Origin_cause = [tblWeakPointUpdates].[Origin_cause], 
tblWeakPointMaster.Origin_category = [tblWeakPointUpdates].[Origin_category]; 

The Error Message I'm Receiving

-Джеймс

+0

Измените свой вопрос и добавьте некоторую информацию: 1. Точный тип данных ** в Access ** (SELECT INTO может создавать неожиданные типы данных), 2. UPDATE sql с JOIN, 3. Полное сообщение об ошибке. – Andre

+0

Мои извинения, я отредактировал и верю, что запрашиваемые данные были предоставлены –

+0

Это действительно так, спасибо за то, что так тщательно, это действительно помогло! – Andre

ответ

4

первый в прямой задачи: Запрос объединяет все поля, включая

AND (tblWeakPointMaster.dbo_PT_Task_Notes = tblWeakPointUpdates.dbo_PT_Task_Notes) 

который является полем Memo, поэтому запрос не выполняется.

Сообщение об ошибке усечено (доступ часто выполняется с длинными выражениями SQL), поэтому dbo_PT_Task_Notes не указан. Но это причина.

актуальная проблема:
Даже без поля Memo, ваш запрос будет не делать то, что вы хотите.
Если вы выполняете INNER JOIN во всех полях, будут объединены только те записи, которые полностью идентичны, и UPDATE не имеет смысла.

Вы должны различать поля:

  • Те, идентифицировать запись, и не меняют в исходной базе данных. Эти поля относятся к выражению JOIN, чтобы найти соответствующие записи.
  • Те, что могут изменить в оригинальной базе данных. Эти поля относятся к части запроса UPDATE SET, это те, которые вы хотите обновить.

Почему вы не экспортируете и не импортируете первичный ключ? Это сделало бы задачу тривиальной - первая группа состояла бы из первичного ключа, второй группы остальных.

+0

Как мне сделать это с обеими таблицами? .. Первая таблица im захвата из SQL использует «NCR» в качестве своего ПК, (из-за обновления программного обеспечения они перенесли таблицы), вторая таблица имеет AutoPK, но NCR связан с «TaskTypeID» в этой новой таблице. –

+0

Миграция - это неправильное слово. Они добавили некоторые функции, которые требовали, чтобы таблица была разделена с этой точки внутри бэкэнда SQL –

+0

@JamesLongfield: предлагаю вам спросить об этом в новом вопрос, включая структуры таблиц импортируемых таблиц и их JOIN SQL. На данный момент мне не совсем ясно, как они работают вместе. – Andre