Так что я искал вокруг и не нашел много. Я приговариваю заранее, потому что это, вероятно, неправильный способ сделать это, но это то, что есть.Вставка уникальных записей в MS-доступ 2007
Так что мне нужно отслеживать, что сотрудники этой группы завершили работу. Это делается через лист Excel, который передает базу данных доступа MS. Есть три поля, которые мне предоставляются.
Полное имя, название курса и дата завершения.
Я знаю, что у меня нет первичного ключа, поэтому я пытаюсь создать запрос, который будет добавлять только уникальные записи, извлеченные из листа excel. Я могу сделать это на основе единого поля, но нужно помочь сделать мой запрос добавить его только тогда, когда оба Полное имя и Название курса не то же самое, например
Joe Somebody, Course#1, 14feb13
Joe Somebody, Course#2, 15feb13
Joe Somebody, Course#1, 15feb13
Мне нужен запрос, который добавит первые 2 строки в таблицу, но проигнорирует третий из-за человека, уже пройдя курс №1. это то, что у меня до сих пор, что в основном превращает мое поле имени в основной ключ.
INSERT INTO table [Full name], [Course], [Date]
SELECT excel_table.[Full name], excel_table.[Course], excel_table.[Date]
FROM excel_table
WHERE excel_table.[Full name] Not in (SELECT table.[Full Name] FROM table)
У меня также есть некоторые не нулевые вещи в конце, но я не думал, что это будет актуально для вопроса.
Так что вам нужно (FullName, CourseName) скомпонованный ключ. Не знаете, как работать в MS Access, но для mysql я создал демо http://sqlfiddle.com/#!2/8e17a/1. Надеюсь, это поможет –
Это помогает мне думать, что я могу использовать ваш код с очень небольшими корректировками в доступе. Большое спасибо! – divdeamor