Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
223 / 44 / 11
Регистрация: 24.02.2015
Сообщений: 188
1

Индексы для связанных таблиц

18.05.2016, 09:36. Просмотров 1222. Ответов 5
Метки нет (Все метки)

Имеется связанная таблица. Связываю через:
Visual Basic
1
currentdb.tabledefs("gapu").Connect = "ODBC; DSN=gapu;SourceDB=" & [Forms]![options]![gapu] & ";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes; Deleted=Yes;;table=gapu"
Если связывать через меню, в последнем диалоге просят выбрать однозначный индекс (до 10 полей), как задать эти индексы через vba?

Добавлено через 17 часов 17 минут
Вроде, получилось. Сделала так:
Visual Basic
1
2
3
4
5
6
7
8
9
Set db = CurrentDb()
    DoCmd.DeleteObject acTable, "gapu"
    Set tdf = CurrentDb.CreateTableDef("gapu")
    strconn = "ODBC; DSN=gapu;SourceDB=" & [Forms]![options]![gapu] & ";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes; Deleted=Yes;;table=gapu"
    tdf.Connect = strconn
    tdf.SourceTableName = "gapu"
    db.TableDefs.Append tdf
    db.Execute "CREATE UNIQUE INDEX PrimaryKey ON gapu (cd_lpu,ppac,cd_lpuv,n_s)"
    db.TableDefs.Refresh
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2016, 09:36
Ответы с готовыми решениями:

Создание записи для двух связанных таблиц
Доброго времени суток о мудрейшие из мудрейших! :) Ситуация следующая. Даже сложно сформулировать...

Как задать относительный путь для связанных таблиц?
Как задать относительный путь для связанных таблиц ? В Access 97 это вроде можно было сделать а в...

Скопировать данные цепочки связанных таблиц-шаблонов в цепочку клон-таблиц базы
Вводная. есть набор таблиц с подчинением файл 2.pdf тематика - шаблон ТЗ для договора файл 1.pdf...

Диспетчер связанных таблиц
Доброго времени суток! Есть разделочная база. Основу с данными я перенес в другую папку. В файле...

5
Эксперт MS Access
26185 / 14016 / 3071
Регистрация: 28.04.2012
Сообщений: 15,395
18.05.2016, 10:01 2
К сожалению, поставить спасибку и отзыв одновременно невозможно. Увеличил репу.

Добавлю к сообщению zenana. Создание индекса на прилинкованных таблицах возможно только для ODBC-linked. Если линковать через ISAM (обычная линковка), то драйвер ISAM категорически противится любому изменению линкованных таблиц.
0
шапоклякистка 8-го дня
3646 / 2207 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
18.05.2016, 10:27 3
Цитата Сообщение от zenana Посмотреть сообщение
Если связывать через меню, в последнем диалоге просят выбрать однозначный индекс
Цитата Сообщение от mobile Посмотреть сообщение
Добавлю к сообщению zenana. Создание индекса на прилинкованных таблицах возможно только для ODBC-linked.
Меня озадачивает, что Аксес предлагает указать поле однозначного индекса даже для тех таблиц, у которых этот индекс уже задан в их родной базе. Скажем, в MS SQL Server. Этот вопрос, который задается при присоединении, всегда ввергает меня в ступор. Я даже не уверена, что на него действительно следует отвечать и что этот ответ действительно на что-либо повлияет. КАК?

Цитата Сообщение от mobile Посмотреть сообщение
Если линковать через ISAM (обычная линковка)
А есть возможность прилинковать через ISAM таблицы SQL Server?
0
Эксперт MS Access
6413 / 4035 / 237
Регистрация: 12.08.2011
Сообщений: 11,317
19.05.2016, 02:07 4
Цитата Сообщение от texnik-san Посмотреть сообщение
и что этот ответ действительно на что-либо повлияет
На скорость по идее должен влиять.
0
шапоклякистка 8-го дня
3646 / 2207 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
19.05.2016, 06:33 5
Цитата Сообщение от alvk Посмотреть сообщение
На скорость по идее должен влиять.
При каких исходных условиях и в каких ситуциях?

Допущение: присоединенные таблицы лежат на MS SQL Server и там, на сервере
вариант 1) по указанному в ответе полю уже есть кластерный индекс
вариант 2) по указанному в ответе полю уже есть некластерный индекс
вариант 3) по указанному в ответе полю нет никакого индекса

подвариант а) выполняется обычный запрос аксес
подвариант б) выполняется запрос к серверу
подвариант в) используется серверный вью
подвариант г) программно: работа с рекордсетом

Добавлено через 1 минуту
На мой взгляд, на варианты б и в ответ вообще никак не влияет. На а и г я допускаю, что может влиять, но недопонимаю механизм.
0
Эксперт MS Access
6413 / 4035 / 237
Регистрация: 12.08.2011
Сообщений: 11,317
20.05.2016, 02:00 6
Цитата Сообщение от texnik-san Посмотреть сообщение
но недопонимаю механизм.
я тоже, но мне оно не надо, все индексы у меня на SQL сервере. Единственное, он у меня давно не спрашивает этот уникальный индекс. А присоединяю я часто через ODBC.
1.Создаю таблицу на сервере, с первичным ключём тип счётчик, индексированное.(int, identity, шаг 1)
2.Через ранее созданное подключение из Акцесс присоединяю таблицу к БД.
3.Никаких вопросов, кроме пароля и выбора таблицы, не возникает.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2016, 02:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Диспетчер связанных таблиц
Как открыть 'диспетчер связанных таблиц' программно?

Автозаполнение связанных таблиц
У меня есть несколько таблиц и я хочу сделать автозаполнение Pupils.ClassNumber из Classes.ClNumber...

Обновление связанных таблиц
Как программно обновить связанные таблицы?

Запрос из 2 связанных таблиц
Добрый день! Имеются 2 связанные таблицы. Spr (id, num, catnum, name, id_prim, Opisanie) Prim...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.