Как сохранить в файл созданный RecordSet путем выборки из др
От: tuniks Россия  
Дата: 16.12.05 10:36
Оценка:
Как сохранить в файл созданный RecordSet путем выборки из другой базы данных, нужных полей с данными
Предположим:

Dim rs As DAO.Recordset
Set rs = DBR.OpenRecordset(“SELECT Field1, Field2, Fiel3 FROM NameTable”, dbOpenSnapshot)

Дальше я хочу сохранить эту выборку, КАК??????
Re: Как сохранить в файл созданный RecordSet путем выборки и
От: C_M Украина  
Дата: 16.12.05 11:02
Оценка:
Здравствуйте, tuniks, Вы писали:

T>Как сохранить в файл созданный RecordSet путем выборки из другой базы данных, нужных полей с данными

T>Предположим:

T> Dim rs As DAO.Recordset

T> Set rs = DBR.OpenRecordset(“SELECT Field1, Field2, Fiel3 FROM NameTable”, dbOpenSnapshot)

T>Дальше я хочу сохранить эту выборку, КАК??????

В формате каком? Во что, в файл?
Re: Как сохранить в файл созданный RecordSet путем выборки и
От: hermit. Россия  
Дата: 16.12.05 11:56
Оценка:
Здравствуйте, tuniks, Вы писали:

T>Как сохранить в файл созданный RecordSet путем выборки из другой базы данных, нужных полей с данными

T>Предположим:

T> Dim rs As DAO.Recordset

T> Set rs = DBR.OpenRecordset(“SELECT Field1, Field2, Fiel3 FROM NameTable”, dbOpenSnapshot)

T>Дальше я хочу сохранить эту выборку, КАК??????


Сохраняй в CSV формате, c разделителем ";" первая строчка имена полей, остальные — данные.
Потом как таблицу откроешь и все.
The darkness around me
Shores of solar sea
Oh how i wish to go down with the sun....
Re[2]: Как сохранить в файл созданный RecordSet путем выборк
От: tuniks Россия  
Дата: 16.12.05 15:59
Оценка:
Здравствуйте, hermit., Вы писали:

H>Здравствуйте, tuniks, Вы писали:


T>>Как сохранить в файл созданный RecordSet путем выборки из другой базы данных, нужных полей с данными

T>>Предположим:

T>> Dim rs As DAO.Recordset

T>> Set rs = DBR.OpenRecordset(“SELECT Field1, Field2, Fiel3 FROM NameTable”, dbOpenSnapshot)

T>>Дальше я хочу сохранить эту выборку, КАК??????


H>Сохраняй в CSV формате, c разделителем ";" первая строчка имена полей, остальные — данные.

H>Потом как таблицу откроешь и все.

Да, нет. Сохранить надо как раз в формате .mdb. Как сохранить в текстовом формате я знаю. Спасибо.
Re[2]: Как сохранить в файл созданный RecordSet путем выборк
От: Аноним  
Дата: 16.12.05 16:30
Оценка:
Здравствуйте, C_M, Вы писали:

C_M>Здравствуйте, tuniks, Вы писали:


T>>Как сохранить в файл созданный RecordSet путем выборки из другой базы данных, нужных полей с данными

T>>Предположим:

T>> Dim rs As DAO.Recordset

T>> Set rs = DBR.OpenRecordset(“SELECT Field1, Field2, Fiel3 FROM NameTable”, dbOpenSnapshot)

T>>Дальше я хочу сохранить эту выборку, КАК??????

C_M>В формате каком? Во что, в файл?

Сохранять необходимо в формате БД "*.mdb"
Re[3]: Как сохранить в файл созданный RecordSet путем выборк
От: hermit. Россия  
Дата: 19.12.05 12:24
Оценка:
Здравствуйте, tuniks, Вы писали:

T>Да, нет. Сохранить надо как раз в формате .mdb. Как сохранить в текстовом формате я знаю. Спасибо.


Тогда ADOX Вам в руки В MSDN есть примеры по созданию базы и таблиц ACCESS через ADOX
The darkness around me
Shores of solar sea
Oh how i wish to go down with the sun....
Re[3]: Как сохранить в файл созданный RecordSet путем выборк
От: garrick Россия  
Дата: 21.12.05 07:21
Оценка:
" Аноним " <0@users.rsdn.ru> wrote in message news:1546698@news.rsdn.ru...

Здравствуйте, C_M, Вы писали:

> Сохранять необходимо в формате БД "*.mdb"


Надо создать новую таблицу — в DAO есть необходимые функции, но если структура выборки постоянная, то лучше сделать это в Access ручками. Далее из полученного набора по одной записи можно копировать в новую таблицу, а можно всё сразу сделать одним запросом.
Posted via RSDN NNTP Server 2.0
Re[4]: Как сохранить в файл созданный RecordSet путем выборк
От: garrick Россия  
Дата: 21.12.05 07:25
Оценка:
"hermit." <19018@users.rsdn.ru> wrote in message news:1549968@news.rsdn.ru...


>Тогда ADOX Вам в руки В MSDN есть примеры по созданию базы и таблиц ACCESS через ADOX




Причём тут ADOX? Человек с DAO работает — там есть всё и даже больше, и работет быстрее.
Posted via RSDN NNTP Server 2.0
Re[5]: Как сохранить в файл созданный RecordSet путем выборк
От: tuniks Россия  
Дата: 21.12.05 11:10
Оценка:
Народ я ждал ответ на свой вопрос, а не демагогии на тему, что это возможно. Я и сам знаю что возможно. Не надо предлагать варианты, где создаётся новая таблица, и потом построчно туда переносим. Это не пойдет, т.к. структура каждый раз разная. Можно конечно её анализировать и строить, но может, есть лучный вариант, что собственно я и хотел прочесть. Спасибо.
Re[4]: Как сохранить в файл созданный RecordSet путем выборк
От: tuniks Россия  
Дата: 21.12.05 11:11
Оценка:
Народ я ждал ответ на свой вопрос, а не демагогии на тему, что это возможно. Я и сам знаю что возможно. Не надо предлагать варианты, где создаётся новая таблица, и потом построчно туда переносим. Это не пойдет, т.к. структура каждый раз разная. Можно конечно её анализировать и строить, но может, есть лучный вариант, что собственно я и хотел прочесть. Спасибо.
Re[6]: Как сохранить в файл созданный RecordSet путем выборк
От: C_M Украина  
Дата: 21.12.05 12:08
Оценка:
Здравствуйте, tuniks, Вы писали:

T>Народ я ждал ответ на свой вопрос, а не демагогии на тему, что это возможно. Я и сам знаю что возможно. Не надо предлагать варианты, где создаётся новая таблица, и потом построчно туда переносим. Это не пойдет, т.к. структура каждый раз разная. Можно конечно её анализировать и строить, но может, есть лучный вариант, что собственно я и хотел прочесть. Спасибо.


SELECT...INTO Statement
Creates a make-table query.

Syntax
SELECT field1[, field2[, ...]] INTO newtable [IN externaldatabase]
    FROM source
Re[7]: Как сохранить в файл созданный RecordSet путем выборк
От: tuniks Россия  
Дата: 22.12.05 07:42
Оценка:
Здравствуйте, C_M, Вы писали:

C_M>Здравствуйте, tuniks, Вы писали:


T>>Народ я ждал ответ на свой вопрос, а не демагогии на тему, что это возможно. Я и сам знаю что возможно. Не надо предлагать варианты, где создаётся новая таблица, и потом построчно туда переносим. Это не пойдет, т.к. структура каждый раз разная. Можно конечно её анализировать и строить, но может, есть лучный вариант, что собственно я и хотел прочесть. Спасибо.


C_M>
C_M>SELECT...INTO Statement
C_M>Creates a make-table query.

C_M>Syntax
C_M>SELECT field1[, field2[, ...]] INTO newtable [IN externaldatabase]
C_M>    FROM source
C_M>


Чувствую, что получится круто и красиво. Но не все понятно. Попробовал, не получилось. Будь "Гуру" объясни поподробнее. У меня нет SQL Server'а. Надо использовать DAO. Спасибо.
Re[8]: Как сохранить в файл созданный RecordSet путем выборк
От: C_M Украина  
Дата: 22.12.05 09:16
Оценка:
Здравствуйте, tuniks, Вы писали:

T>Чувствую, что получится круто и красиво. Но не все понятно. Попробовал, не получилось. Будь "Гуру" объясни поподробнее. У меня нет SQL Server'а. Надо использовать DAO. Спасибо.


SQL выражения — это универсальный метод (уже) построения запросов к различным источникам данных.
Он используется и в ADO, которым я пользуюсь, и DAO — смотри метод execute.

Естественно что в твоем случае надо прежде создать базу .mbd (метод .CreateDatabase, как я понимаю) а далее execute с правильно сконструированным запросом SELECT ... INTO.
Например такой:
SELECT * INTO name_new_table IN new_database_mbd
    FROM table_data_source
Должно работать. Успехов!
Re[9]: Как сохранить в файл созданный RecordSet путем выборк
От: tuniks Россия  
Дата: 22.12.05 12:32
Оценка:
dim db as DAO.DataBase

Set db = DBEngine.Workspaces(0).CreateDatabase("c:\1.mdb", dbLangCyrillic)
1) вариант
db.Execute "SELECT * INTO Tabl IN db FROM RT"

2) вариант
db.Execute "SELECT * INTO Tabl IN c:\1.mdb FROM RT"

db.Close

В обоих случаях ответ один и тот же:
Ядро базы данных Microsoft Jet не может найти входную таблицу или запрос 'RT'. Проверьте существование таблицы или запроса и правильность имени.

К сожалению, я понимаю, что не догоняю. Ну, что именно. Наверное, нужно кроме базы создать и таблицу в новой базе. Но таблица каждый раз с разными полями. Или я совсем??????
Спасибо!
Re[10]: Как сохранить в файл созданный RecordSet путем выбор
От: C_M Украина  
Дата: 22.12.05 13:18
Оценка:
Здравствуйте, tuniks, Вы писали:

T>dim db as DAO.DataBase


T>Set db = DBEngine.Workspaces(0).CreateDatabase("c:\1.mdb", dbLangCyrillic)

T>1) вариант
T>db.Execute "SELECT * INTO Tabl IN db FROM RT"

T>2) вариант

T>db.Execute "SELECT * INTO Tabl IN c:\1.mdb FROM RT"

T>db.Close


T>В обоих случаях ответ один и тот же:

T>Ядро базы данных Microsoft Jet не может найти входную таблицу или запрос 'RT'. Проверьте существование таблицы или запроса и правильность имени.

T>К сожалению, я понимаю, что не догоняю. Ну, что именно. Наверное, нужно кроме базы создать и таблицу в новой базе. Но таблица каждый раз с разными полями. Или я совсем??????

T>Спасибо!

Безусловно, поскольку в вновь созданной базе нет никаких таблиц.
Метод .Execute необходимо применять для базы, к которой осуществляется запрос "SELECT * FROM RT"
set wsSource=CreateWorkspace(name, user, password, type)
set dbSource=wsSource.OpenDatabase (dbname, options, read-only, connect)
set dbTarget=wsSource.CreateDatabase (newDB_name, locale, options)

dbSource.Execute "SELECT * INTO Tabl IN newDB_name FROM RT"

Естественно, что код я не проверял, и написан он как шаблон без учета нюансов. Но логика правильная и должна работать. Успехов.
Re[11]: Как сохранить в файл созданный RecordSet путем выбор
От: tuniks Россия  
Дата: 22.12.05 13:35
Оценка:
Спасибо. Завтра буду пробовать. Сегодня уже все, хватит с меня. Ещё раз спасибо.Отвечу завтра.
Re[12]: Как сохранить в файл созданный RecordSet путем выбор
От: tuniks Россия  
Дата: 23.12.05 08:39
Оценка:
Возвращает следующий ответ:

"Err.Number=3067, В качестве входных данных запрос должен иметь хотя бы одну таблицу или запрос."

Пробовал и с таблицей. Не хочет бросать выборку и создавать в новой базе таблицу, в соответствии с выборкой из другой базы данных.
Re[13]: Как сохранить в файл созданный RecordSet путем выбор
От: C_M Украина  
Дата: 23.12.05 08:53
Оценка:
Здравствуйте, tuniks, Вы писали:

T>Возвращает следующий ответ:


T>"Err.Number=3067, В качестве входных данных запрос должен иметь хотя бы одну таблицу или запрос."


T>Пробовал и с таблицей. Не хочет бросать выборку и создавать в новой базе таблицу, в соответствии с выборкой из другой базы данных.


Покажи код, пожалуйста.
Re[14]: Как сохранить в файл созданный RecordSet путем выбор
От: tuniks Россия  
Дата: 23.12.05 09:40
Оценка:
Private Sub Form_Load()
Dim wsSource As DAO.Workspace
Dim dbSource As DAO.Database
Dim dbTarget As DAO.Database

Set wsSource = DBEngine.CreateWorkspace("Proba", "Admin", vbNullString)
Set dbSource = wsSource.OpenDatabase("C:\dbr.mdb", True, True, ";pwd=service")
Set dbTarget = wsSource.OpenDatabase("c:\1.mdb", True, False)

dbSource.Execute "SELECT * INTO RT IN c:\1.mdb FROM RT"
Debug.Print Err.Description

Set wsSource = Nothing
Set dbSource = Nothing
Set dbTarget = Nothing
End Sub

в БД dbr.mdb есть таблица с именем RT, из неё мне надо произвести выборку, по критериям, которые меняются (здесь все работает, если сохранять в RecordSet), и сохранить в новую базу с новыми полями (в соответствии с критериями выборки полей и их значений). Спасибо!
Re[15]: Как сохранить в файл созданный RecordSet путем выбор
От: C_M Украина  
Дата: 23.12.05 13:18
Оценка:
Здравствуйте, tuniks, Вы писали:

T>Private Sub Form_Load()

T>Dim wsSource As DAO.Workspace
T>Dim dbSource As DAO.Database
T>Dim dbTarget As DAO.Database

T>Set wsSource = DBEngine.CreateWorkspace("Proba", "Admin", vbNullString)

T>Set dbSource = wsSource.OpenDatabase("C:\dbr.mdb", True, True, ";pwd=service")
T>Set dbTarget = wsSource.OpenDatabase("c:\1.mdb", True, False)

T>dbSource.Execute "SELECT * INTO RT IN c:\1.mdb FROM RT"

T>Debug.Print Err.Description

T>Set wsSource = Nothing

T>Set dbSource = Nothing
T>Set dbTarget = Nothing
T>End Sub

T>в БД dbr.mdb есть таблица с именем RT, из неё мне надо произвести выборку, по критериям, которые меняются (здесь все работает, если сохранять в RecordSet), и сохранить в новую базу с новыми полями (в соответствии с критериями выборки полей и их значений). Спасибо!


У меня работает следующее:
Sub Form_Load()
    Dim dbSource As DAO.Database
    Dim dbTarget As DAO.Database
    
    Set dbSource = OpenDatabase("D:\Project\FireBird\Test\bazis.mdb")
    Set dbTarget = CreateDatabase("D:\Project\FireBird\Test\test.mdb", dbLangCyrillic, dbVersion40)
    
    dbSource.Execute "SELECT * INTO TEMP IN 'D:\Project\FireBird\Test\test.mdb' FROM MO", dbSQLPassThrough
    Debug.Print Err.Description
    
    dbSource.Close
    dbTarget.Close
    Set dbSource = Nothing
    Set dbTarget = Nothing
End Sub

Таблица MO из базы bazis.mdb с количеством записей 167 перебрасывается один к одному в базу test.mdb с одновременным создание таблицы temp.
Исходные данные:
База bazis.mdb текущая, в ней есть таблица MO слинкованная с одноименной таблицей в базе на SQL сервере FireBird. В этой базе запускается приведенный макрос. Подключена библиотека "Microsoft DAO 3.6 Object Library".
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.