Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как в .ADP "запихать" в форму локально сохранённый Recordset?
|
|||
|---|---|---|---|
|
#18+
Sorry, если задаю вопрос не на том форуме (может, надо было в VB?). Ситуация такая: имеется ADP проект (Access2000, SQL2000), из него SELECTом вытаскиваю Recordset (ADO) и сохраняю его в файле на своей машине, закрываю Recordset. Затем файл открываю и пытаюсь сделать этот Recordset источником данных для формы (Set Me.Recordset = сохранённый Recordset) и здесь вылазит ошибка "error 7965 Указанный объект не может являться значением свойства "Набор записей" (Recordset)". С открытым Recordset'ом я нормально работаю (могу просматривать значения полей), а как источник данных для формы он не воспринимается. Private Sub Form_Open(Cancel As Integer) Dim fs, f Dim Conn As ADODB.Connection Dim RS1 As New ADODB.Recordset Set Conn = CurrentProject.Connection RS1.CursorType = adOpenStatic: RS1.LockType = adLockBatchOptimistic RS1.CursorLocation = adUseClient RS1.Open "SELECT i_schetin, i_agent FROM tf_schetin WHERE i_schetin=1", Conn RS1.MoveFirst With Application.FileSearch '-----------Поиск и удаление файла (если есть) .LookIn = "C:\" .SearchSubFolders = False .Filename = "schet.sav" If .Execute > 0 Then Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFile("c:\schet.sav") f.Delete End If End With RS1.Save "c:\schet.sav", adPersistADTG Set RS1 = Nothing RS1.Open "c:\schet.sav", , adOpenStatic, adLockBatchOptimistic, adCmdFile Set Me.Recordset = RS1 '========== Здесь вылетает ошибка Me.p_ischetin.ControlSource = "i_schetin" Me.p_iagent.ControlSource = "i_agent" End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2002, 06:01 |
|
||
|
Как в .ADP "запихать" в форму локально сохранённый Recordset?
|
|||
|---|---|---|---|
|
#18+
1. Вместо Set RS1=Nothing нужно написать RS1.Close 2. Если нужны несложные файловые операции, проще использовать Код: plaintext 3. When you open a Recordset, the current record is positioned to the first record (if any) (c) Help Намек понятен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2002, 09:09 |
|
||
|
Как в .ADP "запихать" в форму локально сохранённый Recordset?
|
|||
|---|---|---|---|
|
#18+
to AlexJuice 1. Поставить Set RS1=Nothing меня надоумил SQL books online (хотя close, само собой, нужен тоже): Use the Close method to close a Connection, a Record, a Recordset, or a Stream object to free any associated system resources. Closing an object does not remove it from memory; you can change its property settings and open it again later. To completely eliminate an object from memory, set the object variable to Nothing (in Visual Basic) after closing the object. 2. Спасибо. 3. Не совсем понял. Вы, может, намекаете на то, что у меня в Recordset нет записей совсем? Но записи-то есть, когда я ставлю после RS1.Open "c:\schet.sav", , adOpenStatic, adLockBatchOptimistic, adCmdFile RS1.MoveFirst MsgBox (RS1.RecordCount) MsgBox (RS1.Fields(0).Value) то всё работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2002, 11:56 |
|
||
|
Как в .ADP "запихать" в форму локально сохранённый Recordset?
|
|||
|---|---|---|---|
|
#18+
1. Nothing - я не против (и сам всегда использую), но мысль была в том, что сначала нужно сделать Close ... 3. Намек был как раз на то, что MoveFirst не нужен, раз есть записи. > то всё работает. А без этого - нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2002, 12:46 |
|
||
|
Как в .ADP "запихать" в форму локально сохранённый Recordset?
|
|||
|---|---|---|---|
|
#18+
Скорее всего что-то не так с параметрами открытия рекордсета. вот я сделал на тестовой базе: Option Compare Database Option Explicit Private Sub Кнопка45_Click() Dim rst As ADODB.Recordset Set rst = Me.Recordset rst.Save "C:\Мои документы\rrr.txt", adPersistADTG End Sub Private Sub Кнопка46_Click() Dim rst As New ADODB.Recordset rst.Open "C:\Мои документы\rrr.txt", , adOpenDynamic, adLockOptimistic Set Me.Recordset = rst End Sub дальше работает - набор можно редактировать через форму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2003, 19:28 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32085741&tid=1682626]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 300ms |

| 0 / 0 |
