Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите!!! Нужно перебросить данные в Word изменив их при этом.

6.3K
18 января 2004 года
psha
1 / / 18.01.2004
Помогите!!! Нужно перебросить данные в Word изменив их при этом. Вот что я делаю.
1) Set dbs = CurrentDb
2) strSQL = "..."
3) Set qdf1 = dbs.CreateQueryDef("Выбор1", strSQL)
4) Set rstTemp=qdf1.OpenRecordset()
5) .Fields.Item(0).Value = ...
В 4 строке данные открываються только для чтения пробую разные параметры .... пишет ошибка типа.
Что делать??? Как правильно??? Да и будет ли правилбно это вообще для того что мне нужно зделать - так как данные мне нужно поменять только результата т. е. те которые переносяться в Word.

Заранее благодарен...
319
18 января 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by psha
Помогите!!! Нужно перебросить данные в Word изменив их при этом. Вот что я делаю.
1) Set dbs = CurrentDb
2) strSQL = "..."
3) Set qdf1 = dbs.CreateQueryDef("Выбор1", strSQL)
4) Set rstTemp=qdf1.OpenRecordset()
5) .Fields.Item(0).Value = ...
В 4 строке данные открываються только для чтения пробую разные параметры .... пишет ошибка типа.
Что делать??? Как правильно??? Да и будет ли правилбно это вообще для того что мне нужно зделать - так как данные мне нужно поменять только результата т. е. те которые переносяться в Word.

Заранее благодарен...



Чтобы прочитать данные, тебе все равно надо формировать запрос к БД, так что, имхо, идея правильная.

если открываешь данные только для чтения, нельзя ли их прочитать в промежуточные переменные, а потом подправить их??

Я такую же фигню писал к Access - только я использовал соединение через ADO, а не через ODBC. Так вот, в ADO есть такая фишка как курсор - там в параметрах курсора нужно задавать тип доступа к данным чтение/запись.
В ODBC, имхо такая же фигня. Когда открываешь свой запрос, попробуй ему явно указать, что ты открываешь данные только для чтения, плюс я всегда явно указываю типы переменных.

 
Код:
Dim dbs As DataBase, qdf1 As Querydef, rstTemp as Recorfset
Set dbs = CurrentDb
Set qdf1 = dbs.CreateQueryDef("Выбор1")
qdf1.SQL="SELECT ....."
Set rstTemp=qdf1.OpenRecordset(dbOpenSnapshot)


dbOpenSnapshot - указывает, что получаемые данные неизменяемые.
есть еще другие типы recordset'а:
dbOpenTable - все записи одной таблицы (работаешь с целой таблицей - она целиком в память загружается)
dbOpenForwardOnly - статический набор записей с последовательным доступом (только чтение вперед)
dbOpenDynaset - динамический набор записей (можно редактировать данные)
dbOpenDynamic - похож на предыдущий, но показывает изменения, сделанные другим пользователем после создания данного объекта.
478
19 января 2004 года
XtreamAll
279 / / 01.10.2003
5) .Fields.Item(0).Value = ...
Это ты в Рекордсэт что то записать хочешь?
258
19 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by psha
Помогите!!! Нужно перебросить данные в Word изменив их при этом. Вот что я делаю.
1) Set dbs = CurrentDb
2) strSQL = "..."
3) Set qdf1 = dbs.CreateQueryDef("Выбор1", strSQL)
4) Set rstTemp=qdf1.OpenRecordset()
5) .Fields.Item(0).Value = ...
В 4 строке данные открываються только для чтения пробую разные параметры .... пишет ошибка типа.
Что делать??? Как правильно??? Да и будет ли правилбно это вообще для того что мне нужно зделать - так как данные мне нужно поменять только результата т. е. те которые переносяться в Word.

Заранее благодарен...



Он не ODBC, а DAO использует (в Access97 эта была основная бибилиотека, ADO еще не было)

Сразу скажу на счет кода:
1. dbs.CreateQueryDef("Выбор1", strSQL) создает в базе постоянный запрос, врядли тебе это нужно, можно писать так - dbs.CreateQueryDef(, strSQL) и тогда получишь временный запрос.
2. вообще проще написать так - Set rstTemp=dbs.OpenRecordset(strSQL), там же еще можно указывать параметры открытия о которых говорил xelos.
3. На счет Set rstTemp=qdf1.OpenRecordset() - мне как то надо было использовать именно такую конструкцию и там действительно какие-то гемморойные параметры, я уже не помню что в итоге он хотел, но полдня я тогда с ним промучался. Так что тебе лучше этим не запариваться.

319
19 января 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by SergeySV


Он не ODBC, а DAO использует (в Access97 эта была основная бибилиотека, ADO еще не было)



а DAO разве не через драйвер ODBC работает?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог