Кто знает, помогите с сохранением индексов при программной перелинковке
1. Создаю объект MyTable типа Variant
2. В цикле For Each MyTable In CurrentDb.TableDefs проверяю имена таблиц (MyTable.Name) и, если имя входит в определённые условия, перелинковываю таблицу: MyTable.Connect = "DSN=" & ODBC_name, где ODBC_name - имя источника данных ODBC.
Но после этого начинается самое интересное. Почему-то при перелинковке таблицы теряют индексы. Тоесть, например, таблица ААА, имеет следующую структуру: ID_Name - INT, НЕ СЧЁТЧИК, ключевое поле, NameRecord - TEXT.
После перелинковки получается: ID_Name - INT, НЕ СЧЁТЧИК, NameRecord - TEXT. (Не в БД-источнике данных (откуда прилинковываю), а в прилинкованном "зеркале".)
После этого я не могу в таблицу добавить запись, воспользовавшись не запросом к серверу на добавление, а стандартными элементами Access (элементы управления, контролы, имею ввиду).
Самое в этом ужасное, что код на столько велик, что переделать его под использование сервеных эапросов практически в допустимые сроки нереально.
Кто знает, как перелинковать таблицы с сохранением индексов? HELP по этому разделу в Access 2000 не работает:{ .
Заранее всем спасибо.
С уважением,
М.Шатуров
Цитата:
Originally posted by mhaturov
Беда следующая: понадобилось программно перелинковывать таблицы (интерфейс написан на VBA под Access 2000). Перелинковываю следующим образом:
1. Создаю объект MyTable типа Variant
2. В цикле For Each MyTable In CurrentDb.TableDefs проверяю имена таблиц (MyTable.Name) и, если имя входит в определённые условия, перелинковываю таблицу: MyTable.Connect = "DSN=" & ODBC_name, где ODBC_name - имя источника данных ODBC.
Но после этого начинается самое интересное. Почему-то при перелинковке таблицы теряют индексы. Тоесть, например, таблица ААА, имеет следующую структуру: ID_Name - INT, НЕ СЧЁТЧИК, ключевое поле, NameRecord - TEXT.
После перелинковки получается: ID_Name - INT, НЕ СЧЁТЧИК, NameRecord - TEXT. (Не в БД-источнике данных (откуда прилинковываю), а в прилинкованном "зеркале".)
После этого я не могу в таблицу добавить запись, воспользовавшись не запросом к серверу на добавление, а стандартными элементами Access (элементы управления, контролы, имею ввиду).
Самое в этом ужасное, что код на столько велик, что переделать его под использование сервеных эапросов практически в допустимые сроки нереально.
Кто знает, как перелинковать таблицы с сохранением индексов? HELP по этому разделу в Access 2000 не работает:{ .
Заранее всем спасибо.
С уважением,
М.Шатуров
Беда следующая: понадобилось программно перелинковывать таблицы (интерфейс написан на VBA под Access 2000). Перелинковываю следующим образом:
1. Создаю объект MyTable типа Variant
2. В цикле For Each MyTable In CurrentDb.TableDefs проверяю имена таблиц (MyTable.Name) и, если имя входит в определённые условия, перелинковываю таблицу: MyTable.Connect = "DSN=" & ODBC_name, где ODBC_name - имя источника данных ODBC.
Но после этого начинается самое интересное. Почему-то при перелинковке таблицы теряют индексы. Тоесть, например, таблица ААА, имеет следующую структуру: ID_Name - INT, НЕ СЧЁТЧИК, ключевое поле, NameRecord - TEXT.
После перелинковки получается: ID_Name - INT, НЕ СЧЁТЧИК, NameRecord - TEXT. (Не в БД-источнике данных (откуда прилинковываю), а в прилинкованном "зеркале".)
После этого я не могу в таблицу добавить запись, воспользовавшись не запросом к серверу на добавление, а стандартными элементами Access (элементы управления, контролы, имею ввиду).
Самое в этом ужасное, что код на столько велик, что переделать его под использование сервеных эапросов практически в допустимые сроки нереально.
Кто знает, как перелинковать таблицы с сохранением индексов? HELP по этому разделу в Access 2000 не работает:{ .
Заранее всем спасибо.
С уважением,
М.Шатуров
Народ, ну неужели никто не знает, как?:{
Цитата:
Originally posted by mhaturov
Народ, ну неужели никто не знает, как?:{
Народ, ну неужели никто не знает, как?:{
Ну, блин, неужт никто не в курсе?:{
Цитата:
Originally posted by mhaturov
Ну, блин, неужт никто не в курсе?:{
Ну, блин, неужт никто не в курсе?:{
Трудно сказать почему так происходит, по идее не должно слетать ключевое поле, дело скорее в самой линковке, что то с ней не так...
Цитата:
Originally posted by SergeySV
Трудно сказать почему так происходит, по идее не должно слетать ключевое поле, дело скорее в самой линковке, что то с ней не так...
Трудно сказать почему так происходит, по идее не должно слетать ключевое поле, дело скорее в самой линковке, что то с ней не так...
А где, хоть примерно, может быть сабака зарыта?