2013-12-11 2 views
0
rst.Open "SELECT * FROM Equipas WHERE ([ID - Funcionário] LIKE '" & idfunc & "' AND [ID - Tarefa] LIKE ' " & idtask & "');", CurrentProject.Connection, adOpenDynamic, adLockOptimistic 
rst.Delete adAffectCurrent 
rst.Update 
rst.Close 

Получаю ошибку времени выполнения 3021, однако запрос не пуст.Ошибка времени выполнения 3021 - EOF или BOF истинна или текущая запись была удалена

+0

Попробуйте опуская ',' в конце SQL. Если это все еще не работает, попробуйте распечатать сгенерированный SQL и запустить его непосредственно в Access. –

+0

Проблема в дублированном вопросе была символом 'LIKE' wild card. Хотя этот вопрос также использует 'LIKE', нет никаких признаков того, что используется wild card. – HansUp

ответ

5

«Получаю ошибку времени выполнения 3021, однако запрос не пуст».

Двойная проверка этого пункта.

Dim strSelect As String 
strSelect = "SELECT * FROM Equipas " & _ 
    "WHERE ([ID - Funcionário] LIKE '" & _ 
    idfunc & "' AND [ID - Tarefa] LIKE ' " & idtask & "');" 
Debug.Print strSelect 
rst.Open strSelect, CurrentProject.Connection, adOpenDynamic, adLockOptimistic 
If rs.BOF And rs.EOF Then 
    MsgBox "recordset is empty" 
Else 
    rs.MoveLast 
    MsgBox "recordset contains " & rs.RecordCount & " rows" 
End If 
'rst.Delete adAffectCurrent 
'rst.Update 
rst.Close 

Если версия коды говорит вам «записи пусты», перейдите в открывшееся окно (Ctrl +г) изучить SELECT заявления кода построен. Вы можете скопировать текст оператора и вставить его в SQL View нового запроса Access для тестирования.

Моя догадка запрос не возвращает ни одной строки, поскольку она включает в себя пространство непосредственно перед значением idtask, и не [ID - Tarefa] значения совпадают пространство плюс idtask:

idfunc & "' AND [ID - Tarefa] LIKE ' " & idtask & "');" 
            ^here 
Смежные вопросы