Как сделать запрос MS Access Update для таблицы во внешней базе данных

Я пытаюсь выполнить запрос на обновление таблицы, которая находится в отдельной базе данных, пока у меня есть этот SQL:

UPDATE [;database=C:\QA_Daily_YTD_Report_Export.accdb].[YTD-Daily_Report] AS EXT_DB
SET EXT_DB.Category1 = "1"
WHERE (EXT_DB.Category1 = "status1");

Когда я запускаю это, он возвращает ошибку "недопустимая операция". Есть идеи, что я делаю не так?

3 ответа

Я бы порекомендовал связать таблицу [YTD-Daily_Report] с вашей базой данных, потому что вы можете легко вставить запрос на обновление в ваш код, не заставляя ваш код выполнять соединение с другой базой данных.

Вы можете связать таблицу в Access, нажав на Внешние данные. Затем нажмите на символ доступа. введите описание изображения здесь

Затем вы должны получить диалоговое окно, подобное этому: введите описание изображения здесь

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

Перейдите к местоположению базы данных и нажмите на нее. Затем убедитесь, что ваша база данных отображается в диалоговом окне выше, и нажмите кнопку ОК. введите описание изображения здесь

Затем вы должны получить диалоговое окно, подобное этому, которое покажет таблицу, которую вы не хотите. Выделите его и нажмите ОК. Теперь вы можете переименовать связанную таблицу с любым именем, и это будет гораздо меньшим камнем преткновения для вашей работы.

Попробуйте опустить ;database=

 UPDATE [C:\QA_Daily_YTD_Report_Export.accdb].[YTD-Daily_Report] AS EXT_DB SET EXT_DB.Category1 = "1" WHERE (EXT_DB.Category1 = "status1");

Я закончил тем, что использовал VBA в форме, на случай, если кому-то интересно, как это здесь:

Dim SQL As String
Dim db_external As Database
Set db_external = OpenDatabase(CurrentProject.Path & "\QA_Daily_YTD_Report_Export.accdb")
SQL = "UPDATE [YTD-Daily_Report]" & Chr(13) & _
"SET [YTD-Daily_Report].Category1 = '" & New_value & "'" & Chr(13) & _
"WHERE ([YTD-Daily_Report].Category1= '" & Look_up_value & "');"
db_external.Execute SQL
Другие вопросы по тегам