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
Primesc eroarea de execuție 3021, însă interogarea nu este goală.
„Primesc eroarea de execuție 3021, totuși interogarea nu este goală.”
Verificați de două ori acest punct.
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
Dacă această versiune a codului vă spune „setul de înregistrări este gol”, , mergeți la fereastra Immediate (Ctrl+g) pentru a examina SELECT
instrucțiunea pe care a construit-o codul. Puteți copia textul declarației și îl puteți lipi în SQL View a unei noi interogări Access pentru testare.
Cea mai bună presupunere a mea este că interogarea nu returnează niciun rând deoarece include un spațiu chiar înainte de valoarea lui idtask
, , și nici o [ID - Tarefa]
valori se potrivesc cu spațiul plus idtask
:
idfunc & "' AND [ID - Tarefa] LIKE ' " & idtask & "' );"
^ here
;
de la sfârșitul SQL. Dacă tot nu funcționează, încercați să imprimați SQL-ul generat și să îl rulați direct în Access. – > Por Tim Williams.LIKE
caracterul wild card. Deși această întrebare utilizează de asemeneaLIKE
, , nu există nicio indicație că este vorba de un caracter joker. – > Por HansUp.