Первичный ключ на связанной таблице - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть таблица , связанная с контактами Outlook. Полезно использовать его таким образом, поскольку он всегда актуален. Но мне нужно, чтобы он имел первичный ключ, так как он полезен для лучшего управления запросами. (Например, если я не ошибаюсь, вы можете редактировать дополнительный запрос с двумя таблицами, только если эти две таблицы объединены в полях первичного ключа.)

Я не смог от него избавиться, и Я вижу только следующий способ, но на самом деле он меня не удовлетворяет: создайте таблицу, равную «outlook contacts», но stati c, обновите ее вручную (или с VBA), начиная со связанной. Но это кажется довольно сложным.

Редактировать: Для большей ясности предположим, что связанная таблица называется OutlookContacts и для простоты имеет следующие 5 полей:

Company
LastName
FirstName
Email
MobileNumber

1 Ответ

0 голосов
/ 11 апреля 2020

Что бы я сделал, чтобы помочь решить вашу проблему, это:

  1. Создайте запрос make table, который выбирает из связанной таблицы в новые таблицы. т.е.:

    SELECT 
        t1.Company
        , t1.LastName
        , t1.FirstName
        , t1.Email
        , t1.MobileNumber
        , COUNT(*) AS RowID
    INTO NewTbl   
    FROM yourTable t1
    INNER JOIN yourTable t2 ON t1.Email>=t2.Email
    GROUP BY
        t1.Company
        , t1.LastName
        , t1.FirstName
        , t1.Email
        , t1.MobileNumber
    

Это просто пример запроса, который покажет вам, как получить rowid в вашей новой таблице при выполнении запроса.

2. Затем запустите другой сохраненный запрос:

ALTER TABLE NewTbl ADD PRIMARY KEY (RowiD)
Затем создайте марку для AutoExe c, которая запускает их оба последовательно, когда кто-либо открывает базу данных. БУМ решен.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...