Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Как программно скопировать таблицу?  [new]
Girl from Russia
Member

Откуда: Россия, Москва
Сообщений: 85
Можно ли программно скопировать таблицу из одного файла базы данных в другой, находясь при этом в третьей базе данных? Или это что-то из области фантастики?

DoCmd.TransferDatabase acExport..., DoCmd.TransferDatabase acImport... - знаю как использовать для импорта/экспорта в текущую базу данных, т.е. из которой строчка кода выполняется.
27 фев 07, 11:36    [3836139]     Ответить | Цитировать Сообщить модератору
 Re: Как программно скопировать таблицу?  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Просто данные качнуть можно так:
SELECT * INTO [c:\base1.mdb].[Table1] FROM [c:\base0.mdb].[Table0]

Если надо структуру (в т.ч. индексы) строго соблюсти, то можно сначала скопировать TableDef, а потом аналогично запросом INSERT...
27 фев 07, 11:52    [3836294]     Ответить | Цитировать Сообщить модератору
 Re: Как программно скопировать таблицу?  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10499
Karfaqen
Просто данные качнуть можно так:
SELECT * INTO [c:\base1.mdb].[Table1] FROM [c:\base0.mdb].[Table0]

Если надо структуру (в т.ч. индексы) строго соблюсти, то можно сначала скопировать TableDef, а потом аналогично запросом INSERT...

только без INTO
27 фев 07, 12:04    [3836393]     Ответить | Цитировать Сообщить модератору
 Re: Как программно скопировать таблицу?  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
barrabas
только без INTO
Это как. Речь о копировании данных. Обязательно INTO.
27 фев 07, 12:16    [3836517]     Ответить | Цитировать Сообщить модератору
 Re: Как программно скопировать таблицу?  [new]
Girl from Russia
Member

Откуда: Россия, Москва
Сообщений: 85
Спасибо за ответы, я сделала так:

DoCmd.TransferDatabase acImport... 'импорт таблицы в текущую db из db-источника
DoCmd.TransferDatabase acExport... ''экспорт таблицы из текущей db в третью db
27 фев 07, 12:17    [3836525]     Ответить | Цитировать Сообщить модератору
 Re: Как программно скопировать таблицу?  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10499
Karfaqen
barrabas
только без INTO
Это как. Речь о копировании данных. Обязательно INTO.

да блин, не так выразился, имел ввиду чтобы он не сделал
SELECT * INTO [c:\base1.mdb].[Table1] FROM [c:\base0.mdb].[Table0]
после копирования таблицы , вобщем пардоны приношу.
27 фев 07, 12:20    [3836554]     Ответить | Цитировать Сообщить модератору
 Re: Как программно скопировать таблицу?  [new]
sdfgsdfgsdf
Member

Откуда:
Сообщений: 5996
Вот кусок из хелпа, в другой базе данных создает пустую таблицу, может пригодится, можно доработать под себя, а данные скопировать с помощью SELECT into


Dim dbsNorthwind As Database
	Dim tdfNew As TableDef
	Dim prpLoop As Property

	Set dbsNorthwind = OpenDatabase("Борей.mdb")

	' Создает новый объект TableDef.
	Set tdfNew = dbsNorthwind.CreateTableDef("Контакты")

	With tdfNew
		' Создает поля и добавляет их в новый объект TableDef.
		' Это необходимо сделать до добавления объекта TableDef
		' в семейство TableDefs базы данных "Борей".
		.Fields.Append .CreateField("Имя", dbText)

.Fields.Append .CreateField("Фамилия", dbText)
		.Fields.Append .CreateField("Телефон", dbText)
		.Fields.Append .CreateField("Примечания", dbMemo)

		Debug.Print "Свойства нового объекта TableDef " & _
			"до добавления в семейство:"

		' Отображает семейство Properties нового объекта TableDef.
		For Each prpLoop In .Properties
			On Error Resume Next
			If prpLoop <> "" Then Debug.Print "    " & _
			    prpLoop.Name & " = " & prpLoop

On Error GoTo 0
		Next prpLoop

		' Добавляет новый объект TableDef в базу данных "Борей".
		dbsNorthwind.TableDefs.Append tdfNew

27 фев 07, 13:12    [3836948]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как программно скопировать таблицу?  [new]
vremennyy
Member

Откуда:
Сообщений: 132
Karfaqen
Просто данные качнуть можно так:
SELECT * INTO [c:\base1.mdb].[Table1] FROM [c:\base0.mdb].[Table0]



Добрый день!
Если источник c:\base0.mdb под паролем, то получаем сообщение "Ошибочный пароль". Как нужно изменить запрос, чтобы все таки качнуть данные?
27 янв 20, 12:37    [22067095]     Ответить | Цитировать Сообщить модератору
 Re: Как программно скопировать таблицу?  [new]
vremennyy
Member

Откуда:
Сообщений: 132
Спасибо, разобрался.

SELECT * INTO [c:\base1.mdb].[Table1] FROM [c:\base0.mdb;PWD=123].[Table0]
27 янв 20, 12:45    [22067105]     Ответить | Цитировать Сообщить модератору
 Re: Как программно скопировать таблицу?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
...

Сообщение было отредактировано: 27 янв 20, 12:46
27 янв 20, 12:46    [22067108]     Ответить | Цитировать Сообщить модератору
 Re: Как программно скопировать таблицу?  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6439
А чё отредактировал?
Интересно,однако.

К сообщению приложен файл. Размер - 33Kb
27 янв 20, 14:10    [22067171]     Ответить | Цитировать Сообщить модератору
 Re: Как программно скопировать таблицу?  [new]
ИВП
Member

Откуда:
Сообщений: 312
sdku,
Наверное, просто раздумал писать. Сообщение удалить нельзя, а почистить можно )))))
27 янв 20, 18:07    [22067383]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить