VB6 アプリケーションを使用しています。MSAccessデータベースを使用していました。今、私はSQLサーバーへのデータベースアクセスを変更しています。MSAccess からデータを取得/更新するために、アプリケーションは DAO オブジェクトを使用していました。だから今、私はSQL ServerとDAOメソッドを接続しようとしています。これで、データベースに接続してデータを取得できるようになりました。しかし、レコードを編集しようとすると、「実行時エラー '3027' は更新できません。データベースまたはオブジェクトは読み取り専用です」というエラーが表示されます。私はここに私のコードを示しています:
Public LSWs As Workspace, LSDb As Database
Dim lsConnString As String
Dim l0 As Recordset, SQL0 As String
Dim lehReturn As Integer, retrycount As Integer
lsConnString = "ODBC;DRIVER=SQL Server;SERVER=SERVERName;DATABASE=" & DBname & ";APP=Visual Basic;UID=UID;PWD=PWD"
Set LSWs = DBEngine.Workspaces(0)
Set LSDb = LSWs.OpenDatabase(DBname, dbDriverNoPrompt, True, lsConnString)
retrycount = 0
SQL0 = "select * from schedule_hdr where status = '" & Trim(PCName) & "'"
Set l0 = LSDb.OpenRecordset(SQL0, dbOpenDynaset, dbSeeChanges, adLockPessimistic)
Do While Not (l0.EOF)
LSWs.BeginTrans
l0.Edit
l0!status = "R"
l0.Update
LSWs.CommitTrans
l0.MoveNext
Loop
l0.Close
しかし、l0 でエラーが発生しています。この行コードを編集すると、「実行時エラー '3027' は更新できません。データベースまたはオブジェクトは読み取り専用です。何か助けてください! または提案してください。返信してください。
前もって感謝します!