|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
Ситуация такова: Есть база .мдб и в ней таблица. В таблице были удалены некоторые записи и в поле с автосчётчиком остались от этого “пробелы”. Я хочу чтобы в таблице записи снова стали по порядку. Для этого хочу создать копию таблицы в той же базе под другим именем, потом создать пустую таблицу точно такой же структуры и с помощью обьекта recordset добавлять записи из старой таблицы в новую поштучно(на данный момент там ок 300 000 записей). Я не знаю способа, как можно было бы скопировать таблицу полностью, с сохранением всех не только записей, но и свойств, заданных из среды MS Access, таких как Format, Lookup... Как задать эти свойства при создании базы програмно, я тоже не знаю. Я пробовал копировать таблицу так(других способов не знаю): SELECT * INTO ИмяТабл(куда) FROM ИмяТабл(откуда) В итоге получилась таблица, содержащая те же данные, но в её свойствах Format и lookup совсем другие значения, отличные от оригинала. Например, в lookup было checkbox, а вновой таблице стало textbox. Свойство Format было Yes\No, а стало пустым. Подскажите другие способы скопировать таблицу, а также, как задать вышеуказанные свойства при создании базы програмно (DAO). Не пинайте, если что – я новичок :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2005, 12:50 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
данные свойства столбцов таблицы акцеса являются специфичными, они никак не управляются через DAO или ADO, изменить их можно только через среду аправления самого акцеса. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2005, 16:55 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
Напрямую не знаю, но можно создать макрос в базе всего с одной командой Код: plaintext
указать параметры: База Новое имя Тип объекта Имя объекта и потом этот макрос можно выполнять из кода а полученную таблицу использовать как хоч ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2005, 18:19 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
я также знаю, что из кода VB можно управлять обьектами Access, надо только создать ссылку на Microsoft Access Library или в этом роде, после этого обьекты становятся доступны. Может кто подскажет, как управиться с этими обьектами? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2005, 19:20 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
Сделай в Аксессе копию таблицы, из неё удали все данные. Потом Сервис: Служебные пролграммы: Сжать и восстановить базу данных. Апосля програмно рекордсетом (с нужной тебе сортировкой) из старой таблицы методом AddNew загнать данные в новую (то же рекордсет). Счетчики в новый и старый в рекорсеты не входят. !!! Тока если эти счетчики в других таблицах участвуют то надо и их поменять, а то хана. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2005, 19:38 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
То Utkin У нас из-за авторских прав на компах не стоит Акцес. Поэтому я хочу, чтобы всё делалось програмно. Ручками таблицу скопировать - раз плюнуть, клик правой на таблице и жмёшь экспорт, указываешь с данными или только структуру таблицы. Во вновь созданной таблице всё с нуля - не нужно сжимать базу и т.д. и т.п. Но я хочу этого самого добиться из кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 01:16 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
Руслан С.То Utkin У нас из-за авторских прав на компах не стоит Акцес. Поэтому я хочу, чтобы всё делалось програмно. Ручками таблицу скопировать - раз плюнуть, клик правой на таблице и жмёшь экспорт, указываешь с данными или только структуру таблицы. Во вновь созданной таблице всё с нуля - не нужно сжимать базу и т.д. и т.п. Но я хочу этого самого добиться из кода. Функций копирования таблиц, насколько я знаю, в библиотеках доступа к данным нет. Написать свою функцию, в которую в качестве параметра передавать конекшн и имя таблицы. Внутри функции определять параметры таблицы (с помощью adox, например). А далее: Код: plaintext 1. 2. 3. 4.
Код: plaintext 1.
Создание FK, ограничений, индексов, умолчаний и т.д. (Насколько я помню, в Jet при использовании инструкций SQL могут быть проблемы только с отношениями между таблицами, но это можно сделать с помощью ADOX или DAO) Так что - все реально. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 08:15 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
но я в самом начале писал, что мне это не подходит ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 10:27 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
Руслан С.Ситуация такова: Есть база .мдб и в ней таблица. В таблице были удалены некоторые записи и в поле с автосчётчиком остались от этого “пробелы”. Я хочу чтобы в таблице записи снова стали по порядку. А ЗАЧЕМ???? . Это ОЧЕНЬ-ОЧЕНЬ-ОЧЕНЬ ПЛОХАЯ ИДЕЯ!!!! Счетчик НЕ ПРЕДНАЗНАЧЕН для нумерации записей. Вообще. В принципе! Если вам нужно пронумеровать записи подряд, смотрите первый вопрос faq по счетчикам access: http://www.sql.ru/faq/faq_topic.aspx?fid=214 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 10:33 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
Andres 1А ЗАЧЕМ???? . Это ОЧЕНЬ-ОЧЕНЬ-ОЧЕНЬ ПЛОХАЯ ИДЕЯ!!!! идея не моя, есть рабочее приложение, где записи нумеруются автосчётчиком, шеф имеет програмку, которая пробегает по записям и сообщает, если есть "окно". Програмер, написавший приложение, его заверил, что поле с автосчётчиком нельзя редактировать, поэтому шеф спит спокойно. Мы же не спим - думаем. Andres 1Если вам нужно пронумеровать записи подряд, смотрите первый вопрос faq по счетчикам access: http://www.sql.ru/faq/faq_topic.aspx?fid=214 мне нужно их перенумеровать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 11:36 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
Если с этой таблицей связаны другие, то это правда, очень плохая идея. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2005, 01:35 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
Проблему я эту решил. Если кому-то интересно как : http://bbs.vbstreets.ru/viewtopic.php?t=17263 Всем спасибо за участие. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2005, 16:22 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
Andres 1 Счетчик НЕ ПРЕДНАЗНАЧЕН для нумерации записей. Вообще. В принципе! Если вам нужно пронумеровать записи подряд, смотрите первый вопрос faq по счетчикам access: // http://www.sql.ru/faq/faq_topic.aspx?fid=214 Я что то не понял а чем плохо нумеровать записи счетчиком акса? по ссылке объяснения не нашел, нашел варианты изготовления своего счетчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2011, 12:46 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
Alex_menЯ что то не понял а чем плохо нумеровать записи счетчиком акса?Назначение синтетического ключевого поля (для чего и используется тип "Счётчик") - обеспечение уникального признака записи, необходимого для нормальной работы подсистемы обеспечения целостности и непротиворечивости информации (в т.ч. и для организации связей и ссылок). При правильном построении системы пользователь ВООБЩЕ НЕ ДОЛЖЕН ЗНАТЬ заносимого в такое поле значения - это поле создано не для него. Если необходима непрерывная нумерация записей - это делают либо в запросе, либо процедурой. Но номер, полученный в результате такой непрерывной нумерации, используется исключительно при ОТОБРАЖЕНИИ результатов. Подсчитать, отсортировать... и не более. Под непрерывной нумерацией в данном случае разумеется любое последовательное присвоение значения, не только числовое - например, генерация буквенно-символьного внешнего идентификатора (типа кода документа)... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2011, 13:16 |
|
как програмно скопировать таблицу?
|
|||
---|---|---|---|
#18+
Akina, Понял спасибо. Я этот счетчик так и использовал. из прочитанного выше я понял , что как раз это и не есть хорошо. А сортировка или там пользовательская нумерация документов это всегда отдельно. Спасибо что пояснили. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2011, 14:40 |
|
|
start [/forum/topic.php?fid=60&fpage=90&tid=2158260]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 355ms |
total: | 481ms |
0 / 0 |