Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Копирование(переименование) таблицы БД в другую таблицу. / 3 сообщений из 3, страница 1 из 1
04.01.2008, 23:59
    #35045507
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование(переименование) таблицы БД в другую таблицу.
Как тупо скопировать(переименовать) существующую таблицу "Таблица" в таблицу "Копия Таблицы" в БД Access.
Суть задачи: при выполнении нек. условий программа должна пересчитать таблицу "Таблица", т.е. она удаляет "Таблица", рисует ее заново с необх.свойствами и заполняет свежими данными, но при этом предыдущие данные не сохраняются.(см.код ниже).Хорошо бы все же сделать резервирование предыдущей таблицы-по крайней мере в целях отладки. Использую DAO, но как скопировать-мувнуть-переименовать таблицу внутри базы так и не нашел. Подозреваю, что это можно через объектную модель Access, но на самой серверной машине где сидит БД Access отсутствует(не считаю нужным ему там быть), т.е. все ручные действия с БД если и производятся, то с клиентской машины.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Public Sub DoNewTable()
Dim MyWorkSpace As Workspace
Dim dbs As Database
Dim TabCom As DAO.TableDefs
Dim BasePath As String
...
Dim tdf As TableDef
...
    BasePath = "C:\Baza.mdb"
    Set MyWorkSpace = DBEngine.Workspaces( 0 )
    Set dbs = MyWorkSpace.OpenDatabase(BasePath)
    Set TabCom = dbs.TableDefs
    'Удаление старой таблицы "Таблица"
    On Error Resume Next
    TabCom.Delete "Таблица"
    Set TabCom = Nothing
    'Создание новой таблицы пустой
    Set tdf = dbs.CreateTableDef("Таблица")
    With tdf
        ' Создание полей и добавление их в новую таблицу
        ' Это делается перед добавлением таблицы в базу данных
        .Fields.Append .CreateField("Номер", dbLong)
        ...
        tdf.Fields("Факс").AllowZeroLength = True
        tdf.Fields("Выполнено").AllowZeroLength = True
        ....
        dbs.TableDefs.Append tdf
    End With
    Set tdf = Nothing
    'Просматриваем таблицу СписокAll и добавляем наименования
    'В таблицу Таблица
    ...код заполнения новой "Таблица" данными
    Set dbs = Nothing
End Sub
...
Рейтинг: 0 / 0
05.01.2008, 00:54
    #35045532
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование(переименование) таблицы БД в другую таблицу.
dbs.TableDefs("my old table").Name = "my new table"
...
Рейтинг: 0 / 0
06.01.2008, 01:51
    #35046164
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование(переименование) таблицы БД в другую таблицу.
OK, внедрил.Было так:
Код: plaintext
1.
2.
3.
4.
    Set TabCom = dbs.TableDefs
    'Удаление старой таблицы "Таблица"
    On Error Resume Next
    TabCom.Delete "Таблица"
    Set TabCom = Nothing
Стало так:
Код: plaintext
1.
2.
3.
4.
5.
6.
    Set TabCom = dbs.TableDefs
    'Удаление старой таблицы "ТаблицаOld"
    On Error Resume Next
    TabCom.Delete "ТаблицаOld"
     'Копирование Таблица в резервную копию
    TabCom("Таблица").Name = "Таблицаold"
    Set TabCom = Nothing
Не сообразил, редко програмирую.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Копирование(переименование) таблицы БД в другую таблицу. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]