Здравствуйте, 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 путем выборки и
Здравствуйте, 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 путем выборк
Здравствуйте, 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 путем выборк
Здравствуйте, C_M, Вы писали:
> Сохранять необходимо в формате БД "*.mdb"
Надо создать новую таблицу — в DAO есть необходимые функции, но если структура выборки постоянная, то лучше сделать это в Access ручками. Далее из полученного набора по одной записи можно копировать в новую таблицу, а можно всё сразу сделать одним запросом.
Posted via RSDN NNTP Server 2.0
Re[4]: Как сохранить в файл созданный RecordSet путем выборк
Народ я ждал ответ на свой вопрос, а не демагогии на тему, что это возможно. Я и сам знаю что возможно. Не надо предлагать варианты, где создаётся новая таблица, и потом построчно туда переносим. Это не пойдет, т.к. структура каждый раз разная. Можно конечно её анализировать и строить, но может, есть лучный вариант, что собственно я и хотел прочесть. Спасибо.
Re[4]: Как сохранить в файл созданный RecordSet путем выборк
Народ я ждал ответ на свой вопрос, а не демагогии на тему, что это возможно. Я и сам знаю что возможно. Не надо предлагать варианты, где создаётся новая таблица, и потом построчно туда переносим. Это не пойдет, т.к. структура каждый раз разная. Можно конечно её анализировать и строить, но может, есть лучный вариант, что собственно я и хотел прочесть. Спасибо.
Re[6]: Как сохранить в файл созданный RecordSet путем выборк
Здравствуйте, tuniks, Вы писали:
T>Народ я ждал ответ на свой вопрос, а не демагогии на тему, что это возможно. Я и сам знаю что возможно. Не надо предлагать варианты, где создаётся новая таблица, и потом построчно туда переносим. Это не пойдет, т.к. структура каждый раз разная. Можно конечно её анализировать и строить, но может, есть лучный вариант, что собственно я и хотел прочесть. Спасибо.
SELECT...INTO Statement
Creates a make-table query.
Syntax
SELECT field1[, field2[, ...]] INTO newtable [IN externaldatabase]
FROM source
Re[7]: Как сохранить в файл созданный RecordSet путем выборк
Здравствуйте, 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 путем выборк
Здравствуйте, 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 путем выборк
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 путем выбор
Здравствуйте, 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, Вы писали:
T>Возвращает следующий ответ:
T>"Err.Number=3067, В качестве входных данных запрос должен иметь хотя бы одну таблицу или запрос."
T>Пробовал и с таблицей. Не хочет бросать выборку и создавать в новой базе таблицу, в соответствии с выборкой из другой базы данных.
Покажи код, пожалуйста.
Re[14]: Как сохранить в файл созданный RecordSet путем выбор
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 путем выбор
Здравствуйте, 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".