Помогите!!! Нужно перебросить данные в 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.
Заранее благодарен...
Помогите!!! Нужно перебросить данные в 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, имхо такая же фигня. Когда открываешь свой запрос, попробуй ему явно указать, что ты открываешь данные только для чтения, плюс я всегда явно указываю типы переменных.
Set dbs = CurrentDb
Set qdf1 = dbs.CreateQueryDef("Выбор1")
qdf1.SQL="SELECT ....."
Set rstTemp=qdf1.OpenRecordset(dbOpenSnapshot)
dbOpenSnapshot - указывает, что получаемые данные неизменяемые.
есть еще другие типы recordset'а:
dbOpenTable - все записи одной таблицы (работаешь с целой таблицей - она целиком в память загружается)
dbOpenForwardOnly - статический набор записей с последовательным доступом (только чтение вперед)
dbOpenDynaset - динамический набор записей (можно редактировать данные)
dbOpenDynamic - похож на предыдущий, но показывает изменения, сделанные другим пользователем после создания данного объекта.
Это ты в Рекордсэт что то записать хочешь?
Помогите!!! Нужно перебросить данные в 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() - мне как то надо было использовать именно такую конструкцию и там действительно какие-то гемморойные параметры, я уже не помню что в итоге он хотел, но полдня я тогда с ним промучался. Так что тебе лучше этим не запариваться.
Он не ODBC, а DAO использует (в Access97 эта была основная бибилиотека, ADO еще не было)
а DAO разве не через драйвер ODBC работает?