sql >> Database >  >> RDS >> Mysql

DAO.Recordset.Update resulteert in rekord lock

Het lijkt er niet op dat u naar een ander record in de recordset gaat. Gewoon i . verhogen gaat niet naar het volgende record. Een meer traditionele benadering zou zijn om de recordset te herhalen zonder de noodzaak van uw andere variabelen (i en rsCnt ).

Dim rs as DAO.Recordset
Set rs = CurrentDb.OpenRecordset("qryMyQuery", DB_OPEN_DYNASET)
rs.moveFirst
Do Until rs.EOF
    rs.Edit
    rs!FieldNameHere = "test"
    rs.Update
    rs.MoveNext
Loop

BEWERKEN Na wat zoeken kwam ik deze thread tegen wat lijkt op jouw probleem. Onderaan de thread wordt een suggestie gedaan om de ODBC-instellingen voor uw MySQL DSN te wijzigen door het tabblad "Geavanceerd" te selecteren en de optie "Overeenkomende rijen retourneren" te selecteren. Het bericht zegt ook dat je de gekoppelde tabel moet verwijderen en deze vervolgens opnieuw moet koppelen aan je Access-database. Ik heb Access in het verleden niet met MySQL gebruikt, dus ik heb geen idee of dit zal werken of niet, dus ga voorzichtig te werk!

U kunt ook proberen uw recordset te wijzigen om de dbOptimistic-vlag te gebruiken voor de recordsetvergrendelingsoptie om te zien of dat helpt:

set rs = CurrentDB.OpenRecordSet("qryMyQuery", DB_OPEN_DYNASET, dbOptimistic)



  1. Een-op-nul-of-een-relatie implementeren in SQL Server

  2. Waarom is er een netwerkgerelateerde of instantiespecifieke fout opgetreden bij het tot stand brengen van een verbinding met SQL Server?

  3. Android SQLiteOpenHelper:waarom wordt de methode onCreate() niet aangeroepen?

  4. sql jdbc getgeneratedkeys retourneert kolom-ID niet gevonden, kolomtype onbekend