我正在开展一个繁重的项目,其中包括将Microsoft Access本地表迁移到Microsoft SQL Server,我遇到了一个特定问题。
我正在使用ODBC驱动程序将MS SQL Server链接到我的表IMMATRICULATION
。其列名IMMAT
是主键。在我的VBA代码中,我正在运行:
Dim mydb As Database
Dim myrs As Recordset
Dim req As String
Set mydb = CurrentDb()
DoCmd.Hourglass True
req = "SELECT * FROM IMMATRICULATION WHERE IMMAT ='" & Me.Liste_CANum & "'"
Set myrs = mydb.OpenRecordset(req, dbOpenDynaset, dbDenyWrite)
If myrs.RecordCount > 0 Then
IMMAT = myrs![IMMAT]
MARQUE = myrs![MARQUE]
MODELE = myrs![MODELE]
PRIX = myrs![PRIX]
DATE = myrs![DATE]
AMO_DUREE = myrs![AMO_DUREE]
AMO_MONTANT = myrs![AMO_MONTANT]
AMO_DEBUT = myrs![AMO_DEBUT]
AMO_FIN = myrs![AMO_FIN]
ASS_MONTANT = myrs![ASS_MONTANT]
SOM = myrs![SOMMEIL]
Else
myrs.AddNew
myrs![IMMAT] = Me.Liste_CANum
myrs.Update
IMMAT = Me.Liste_CANum
MARQUE = ""
MODELE = ""
PRIX = ""
DATE = ""
AMO_DUREE = ""
AMO_MONTANT = ""
AMO_DEBUT = ""
AMO_FIN = ""
ASS_MONTANT = ""
SOM = "Non"
End If
myrs.Close
mydb.Close
DoCmd.Hourglass False
但是这行代码不起作用:
Set myrs = mydb.OpenRecordset(req, dbOpenDynaset, dbDenyWrite)
弹出以下错误消息:
ODBC -- cannot lock all records
您对如何解决我的问题有任何想法吗?我试图删除dbDenyWrite
,但问题仍未解决。
由于