Почему не определяется связь?

Andreevna
Дата: 01.03.2008 21:00:10
Здравствуйте, тов. профи!

У меня случилась вот такая загвоздка.
Есть две таблицы: "Mybuch08-C" и "kentavrTAB" (связанная, Excel). При определении связи между полями "Заказ" и "zakaz", связь не определяется. Это мне не позволяет делать нужные запросы.
Подскажите, что исправить?

В приложенном файле база и файл Excel, на который ссылается "kentavrTAB". Нужно будет установить нужную связь.
CheIvan
Дата: 02.03.2008 00:47:02
1)Создай таблицу для хранения данных из екселя , с теми же полями
2) установи поле заказ индексированным допускающим совпадения.
3)Создай след запрос
INSERT INTO Tab1 ( zakaz, region, address, rabota, system, [object], fam, name, otchetvo, phone, zam )
SELECT [КЕНТАВР$].zakaz, [КЕНТАВР$].region, [КЕНТАВР$].address, [КЕНТАВР$].rabota, [КЕНТАВР$].system, [КЕНТАВР$].object, [КЕНТАВР$].fam, [КЕНТАВР$].name, [КЕНТАВР$].otchetvo, [КЕНТАВР$].phone, [КЕНТАВР$].zam
FROM [КЕНТАВР$] IN 'D:\Mybuch08-C\kentavr.xls'[excel 8.0;]
WHERE ((([КЕНТАВР$].zakaz) Is Not Null));
Andreevna
Дата: 02.03.2008 01:13:26
CheIvan
1)Создай таблицу для хранения данных из екселя , с теми же полями
2) установи поле заказ индексированным допускающим совпадения.
3)Создай след запрос
INSERT INTO Tab1 ( zakaz, region, address, rabota, system, [object], fam, name, otchetvo, phone, zam )
SELECT [КЕНТАВР$].zakaz, [КЕНТАВР$].region, [КЕНТАВР$].address, [КЕНТАВР$].rabota, [КЕНТАВР$].system, [КЕНТАВР$].object, [КЕНТАВР$].fam, [КЕНТАВР$].name, [КЕНТАВР$].otchetvo, [КЕНТАВР$].phone, [КЕНТАВР$].zam
FROM [КЕНТАВР$] IN 'D:\Mybuch08-C\kentavr.xls'[excel 8.0;]
WHERE ((([КЕНТАВР$].zakaz) Is Not Null));
Сделала, как Вы сказали. Получился запрос, который нельзя добавить ни в схему данных, ни в другой запрос. Не видно его.
Вот что получилось.
CheIvan
Дата: 02.03.2008 10:19:16
а запрос в схему даннх и не надо)
это запрос на добаление данных в таблицу
автор
INSERT INTO Tab1
вместо Tab1 надо вставить имя вашей таблицы в ACCESS'e. после выолнения этого запроса у ва получится таблица в которой будет ваша екселевская табличка
Andreevna
Дата: 03.03.2008 00:30:37
Исправила. В схему данных добавляю две мои таблицы, связь определяю вручную. Запросы получаются. Здорово! Спасибо за совет. :-)
Надо теперь эту базу связать с настоящим Excel-вским файлом. Этот файл состоит из нескольких листов. Как мне в ссылке обратиться к конкретному листу?
CheIvan
Дата: 03.03.2008 07:04:41
КЕНТАВР$ поменять на имя соответствующего листа, только если будет менятся екселевский файл, надо добовлять изменения
Andreevna
Дата: 04.03.2008 15:45:52
CheIvan
3)Создай след запрос
INSERT INTO Tab1 ( zakaz, region, address, rabota, system, [object], fam, name, otchetvo, phone, zam )
SELECT [КЕНТАВР$].zakaz, [КЕНТАВР$].region, [КЕНТАВР$].address, [КЕНТАВР$].rabota, [КЕНТАВР$].system, [КЕНТАВР$].object, [КЕНТАВР$].fam, [КЕНТАВР$].name, [КЕНТАВР$].otchetvo, [КЕНТАВР$].phone, [КЕНТАВР$].zam
FROM [КЕНТАВР$] IN 'D:\Mybuch08-C\kentavr.xls'[excel 8.0;]
WHERE ((([КЕНТАВР$].zakaz) Is Not Null));
Только что обнаружила, что при этом запросе на добаление в таблицу kentavrTAB записи просто каждый раз дублируются, а мне нужно чтоб информация обновлялась.

Почему же всё-таки стандартный метод у меня не работает? Было бы всё гораздо проще.
Анатолий ( Киев )
Дата: 04.03.2008 15:59:30
Вы пытаетесь в схеме данных создать связь между родной и присоединенной (Excel) таблицей. Не получится.
Создавайте запрос, связывайте таблицы в нем (если поле "Заказ" таблицы "Mybuch08-C" - ключевое или уникальное) и работайте.