2015-06-17 2 views
2

В моей текущей базе данных у меня есть таблица, данные которой вводятся вручную или поступают в лист Excel каждую неделю. Перед тем, как у нас была опция «ручной ввод», таблица будет удалена и заменена версией excel. Теперь, поскольку есть данные, которые существуют только в исходной таблице, это невозможно. Я пытаюсь найти способ обновить исходную таблицу с изменениями и дополнениями из таблицы (excel), сохраняя все строки не на новом листе.В SQL как обновить таблицу с подобной таблицей?

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

Любые предложения? Я могу предоставить текущий sql, если вы найдете это полезным.

+2

Какова структура таблицы? Какие правила необходимы для запроса на вставку/обновление? –

+2

Есть поле или комбинация полей, которые однозначно идентифицируют каждую строку ... как в таблице, так и в листе? – HansUp

+0

@hansUp Идентификатор, который служит в качестве уникального Идентификатора, за исключением множества с нулевыми значениями. –

ответ

2

Исходя из того, что я читал до сих пор, я думаю, что я могу предложить некоторые предложения:

Оказывается, у вас есть контроль над MS Access. Я бы предложил добавить поле в таблицу данных, называемую «источник». Измените форму в базе данных доступа, чтобы сохранить что-то вроде «m» для ручной записи в поле источника. Когда вы импортируете excel, сохраните «e» для excel в поле.

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

Как только вы прошли эти шаги, ваш процесс excel довольно прост. Вы можете удалить все записи с помощью source = "e", а затем выполнить полный импорт excel. Ручные записи останутся неизменными.

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

Удачи.