-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


BOF или EOF имеет значение True, либо текущая запись удалена. Для выполняемой операции ...

Среда, 21 Февраля 2018 г. 10:18 + в цитатник
Есть код, который работает чётко:
Private Sub Кнопка23_Click()    
    Dim d As Dictionary
    Dim s As String
    Dim rs As ADODB.Recordset
    Dim sSql As String
    sSql = "SELECT [Наименование проекта] FROM Проекты IN '' [MS Access;DATABASE=" & sPath & ";pwd=" & sPass & "];"
    Debug.Print sSql
    Set rs = CurrentProject.Connection.Execute(sSql)
    rs.MoveFirst
    Do Until rs.EOF
        s = rs.Fields("Наименование проекта")
        Set d = GetKust2(s)
        For Each a In d
            If Len(a) > 4 Or a = "Нет" Then
                фЧтоКорректировать.AddItem a & " - " & s, 0
            End If
        Next a
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
End Sub

Сам SQL запрос получается таким:
SELECT [Наименование проекта] FROM Проекты IN '' [MS Access;DATABASE=C:\Art\МАКРОСЫ\MS_Access\ПроблеммныеВопросыИльнура\serv_BD.accdb;pwd=rf];

Но если SQL запрос немного откорректировать (строка 6):
Private Sub Кнопка23_Click()    
    Dim d As Dictionary
    Dim s As String
    Dim rs As ADODB.Recordset
    Dim sSql As String
    sSql = "SELECT [Наименование проекта] FROM Проекты IN '' [MS Access;DATABASE=" & sPath & ";pwd=" & sPass & "] WHERE [Наименование проекта] LIKE " & sMask1 & ";"
    Debug.Print sSql
    Set rs = CurrentProject.Connection.Execute(sSql)
    rs.MoveFirst
    Do Until rs.EOF
        s = rs.Fields("Наименование проекта")
        Set d = GetKust2(s)
        For Each a In d
            If Len(a) > 4 Or a = "Нет" Then
                фЧтоКорректировать.AddItem a & " - " & s, 0
            End If
        Next a
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
End Sub

То он почему-то перестаёт работать, выскакивает ошибка:
BOF или EOF имеет значение True, либо текущая запись удалена. Для выполняемой операции требуется текущая запись.
На строке:
rs.MoveFirst

Сам SQL запрос выглядит так:
SELECT [Наименование проекта] FROM Проекты IN '' [MS Access;DATABASE=C:\Art\МАКРОСЫ\MS_Access\ПроблеммныеВопросыИльнура\serv_BD.accdb;pwd=rf] WHERE Проекты.[Наименование проекта] LIKE '*бустройств*уст*кважи*#*';

И выполняется без проблем, если его выполнить, через создание запроса, пользовательскими средствами MS Access. Возвращает следующее:
см. КАРТИНКА
В чём ошибка не могу понять?

http://www.sql.ru/forum/1285928/bof-ili-eof-imeet-znachenie-true-libo-tekushhaya-zapis-udalena-dlya-vypolnyaemoy-operacii


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку