Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: сообщение 3021 Ether BOF or EOF is ......
 
 автор: Аноним   (25.10.2006 в 17:04)
 
 

Хочу из AccessДБ перенести значения в Excelтаблицу

Set rst = New ADODB.Recordset
Set obj = GetObject("H:\excel_probe1.xls")
rst.Open "SELECT * FROM Inhalt", CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic

i = 1
j = 2

Do While Not rst.EOF
st = 0
Do While st <> 1
st = rst![PE_ID]
If st = 1 Then
obj.ActiveSheet.Cells(1, i).Value = rst![VIAs]
obj.ActiveSheet.Cells(j, i).Value = rst![Inhalt]
Else
obj.ActiveSheet.Cells(j, i).Value = rst![Inhalt]
End If
j = j + 1
rst.MoveNext
st = rst![PE_ID]
Loop
i = i + 1
j = 2
Loop

rst.Close
Set rst = Nothing

Получаю сообщение :

3021
Ether BOF or EOF is True, or the current record has been deleted.Requisted operation requires acurrend record.

Немогу понять где ошибка может кто знает в чeм проблема.

  Ответить  
 
 автор: Силыч   (25.10.2006 в 17:15)   личное сообщение
 
 

...

  Ответить  
 
 автор: osmor   (25.10.2006 в 17:20)   личное сообщение
 
 

Ты чего балуешься? я дочитать не успел...
а почему ODBC? может уж тогда ADO?

  Ответить  
 
 автор: Силыч   (25.10.2006 в 17:25)   личное сообщение
 
 

та погорячился :) задание инвертировано прочел :)
та шо там читать..... да и через адо можно.... пабарабану..........

в клипбоард неуспел, да? :) "рогАнь"

  Ответить  
 
 автор: osmor   (25.10.2006 в 17:19)   личное сообщение
 
 

ПОкольку Вы не указываете в какой строке возникает ошибка, могу только предположить, что это происходит в строке

rst.MoveNext
st = rst![PE_ID]
Loop

т.к Вы делаете попытку MoveNext, курсор выходит за пределы рекордсета т.е. EOF = true
а затем пытаетесь получить значение поля из рекордсета, а значения нет, т.к. нет текущей строки.

  Ответить  
 
 автор: nika   (25.10.2006 в 23:31)   личное сообщение
 
 

Ошибку выдает при выходе из внешнего цикла т.е.при выполнении второго loop при чем в Excelтаблицу заносит все в лучшем виде но после этого обрывает функцию и выдаёт это сообщениe.

3021
Ether BOF or EOF is True, or the current record has been deleted.Requisted operation requires acurrend record.

спасибо nika.

  Ответить  
 
 автор: osmor   (26.10.2006 в 08:35)   личное сообщение
 
 

попробуйте так

Do While Not rst.EOF
st = 0
Do While st <> 1 and Not rst.EOF
st = rst![PE_ID]
If st = 1 Then
obj.ActiveSheet.Cells(1, i).Value = rst![VIAs]
obj.ActiveSheet.Cells(j, i).Value = rst![Inhalt]
Else
obj.ActiveSheet.Cells(j, i).Value = rst![Inhalt]
End If
j = j + 1
rst.MoveNext
if Not rst.EOF then st = rst![PE_ID]
Loop
i = i + 1
j = 2
Loop

  Ответить  
 
 автор: nika   (26.10.2006 в 10:21)   личное сообщение
 
 

Большое при большое спасибо всё работает

(теперь я знаю что такое счастье )

спасибо ещё раз nika.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList