簡體   English   中英

無法更新。 數據庫或對象是只讀錯誤3027

[英]Cannot Update. Database or object is read-only error 3027

我有2個表,並從中執行一個名為“ Query_Dates”的查詢。 在那里,我創建了4個計算字段,用於比較前面提到的兩個表的字段。 我想做的是每次計算的字段等於“ Diff”,從第二個表(ADHOC)獲取值,並將其放在第一個表(Master_Table)中。 總共有4個字段,我將根據其他4個字段(CheckRR,CheckQual,CheckProd,CheckCap)進行更改。

問題是它給我一個錯誤3027,對象在顯示為“ rsd.edit”的行中是只讀的。 有人可以幫助我還是給我任何反饋? 先感謝您。

在下面,您可以找到代碼。

enter code here
Private Sub Comando27_Click()

Dim rsd As DAO.Recordset

Dim supplierName As String

Set rsd = Application.CurrentDb.OpenRecordset("Query_Dates", dbOpenDynaset)

retry: supplierName = InputBox("Please enter the Supplier Name", _
"Information Required")

'MsgBox "Supplier requested: " & supplierName

valid = MsgBox("Supplier Requested = " & supplierName & "??", vbYesNoCancel, "Validation")

If valid = 7 Then

GoTo retry

ElseIf valid = 2 Then

GoTo salir

End If

rsd.MoveFirst

Do While Not rsd.EOF

If rsd![Supplier Name] = supplierName Then

If rsd![CheckRR] = "Diff" And rsd![ADHOC_Run at Rate Dt] <> Empty Then

rsd.Edit

rsd![Run at Rate Dt] = rsd![ADHOC_Run at Rate Dt]

rsd.Update

End If

If rsd![CheckQual] = "Diff" And rsd![ADHOC_Qual Verif Dt] <> Empty Then

rsd.Edit

rsd![Master_Table_Qual Verif Dt] = rsd![ADHOC_Qual Verif Dt]

rsd.Update

End If

If rsd![CheckProd] = "Diff" And rsd![ADHOC_Prod Verif Dt] <> Empty Then

rst.Edit

rsd![Master_Table_Prod Verif Dt] = rsd![ADHOC_Prod Verif Dt]

rsd.Update

End If

If rsd![CheckCap] = "Diff" And rsd![ADHOC_Prod Verif Dt] <> Empty Then

rsd.Edit

rsd![Master_Table_Cap Verif Dt] = rsd![ADHOC_Cap Verif Dt]

rsd.Update

End If

End If

rsd.MoveNext

Loop

salir: rsd.Close

Set rsd = Nothing

End Sub 

有些查詢是不可更新的。 嘗試編輯之前,請檢查可更新屬性

if rsd.Updatable then

但是您可能會有更大的問題。 您的聲明與您的用法不符。

Dim rsd As DAO.Recordset
...
If rsd![CheckProd] = "Diff" And rsd![ADHOC_Prod Verif Dt] <> Empty Then

rst.Edit

看到不同? 聲明為rsd,使用rst.Edit。 您已經在外部范圍中聲明了rst-一件壞事-或者您沒有使用Option Explicit也是一件壞事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM