msaccess:如果我只想将我更改/修改的记录插入到一个新表中,insert-into语句应该是什么样子的?

2uluyalo  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(343)

我有一个continues表单,用户可以直接编辑存储在表中的数据。在用户可以关闭窗体或编辑其他记录之前,系统会询问他是否要保存所做的更改。我使用更新前事件:

Private Sub Form_BeforeUpdate(Cancel As Integer)
'Msg Box Nachricht bestimmen.
    strMsg = "M?chten Sie die ?nderungen speichern?" & Chr(10)
    strMsg = strMsg & "Dr?cken Sie Ja um zu speichern oder Nein um die ?nderungen zu verwerfen."

    'Msg Box anzeigen.
    iResponse = MsgBox(strMsg, vbQuestion + vbYesNo, "Speichern?")

    'Nutzer Antwort pruefen
    If iResponse = vbNo Then

        'Aenderungen verwerfen.
         Me.Undo
        'Update abbrechen.
         Cancel = True
    End If
End Sub

当窗体加载时,我使用以下命令获取文本字段的当前值:

Private Sub Form_Load()
TempVars("Status") = txtStatus.Value
End Sub

现在,如果用户更改此文本字段,则记录(使用txtstatus的旧值)应保存在新表中。不带“where”部分的代码将我的表中的所有记录复制到新表中:

Dim Status As String
Dim Counter As Integer
Counter = 0

If txtStatus.Value <> TempVars("getStatus") Then
Status = txtStatus.Value
Counter = Counter + 1
End If

Dim sql As String
Dim dbs As DAO.Database
Set dbs = CurrentDb()

    sql = "Insert into tblStatusFahrzeugeHistory (F_ID, Status, seit, bis, von, an, Bemerkung, Datenbank_Nutzer, Eintrag_erstellt_am, Eintrag_erstellt_um)" & _
"Select tblStatusFahrzeuge.F_ID, tblStatusFahrzeuge.Status, tblStatusFahrzeuge.seit, tblStatusFahrzeuge.bis, tblStatusFahrzeuge.von, tblStatusFahrzeuge.an, tblStatusFahrzeuge.Bemerkung, tblStatusFahrzeuge.Datenbank_Nutzer, tblStatusFahrzeuge.Eintrag_erstellt_am, tblStatusFahrzeuge.Eintrag_erstellt_um " & _
"From tblStatusFahrzeuge Where txtStatus.Value = Status "

dbs.Execute sql, dbFailOnError
dbs.Close
Set dbs = Nothing
    End If

对于“where”部分,我试图只将我在窗体上更改的记录插入到新表中,但代码不起作用。我得到这个错误代码:运行时错误'3061'1参数是预期的,但传递的参数太少。有人知道我做错了什么吗?

8yoxcaq7

8yoxcaq71#

查询引擎无法“看到”txtstatus.value。您必须向查询中添加参数,或者将文本框的值连接到查询中text:-

sql = "Insert into tblStatusFahrzeugeHistory (F_ID, Status, seit, bis, von, an, Bemerkung, Datenbank_Nutzer, Eintrag_erstellt_am, Eintrag_erstellt_um)" & _
"Select tblStatusFahrzeuge.F_ID, tblStatusFahrzeuge.Status, tblStatusFahrzeuge.seit, tblStatusFahrzeuge.bis, tblStatusFahrzeuge.von, tblStatusFahrzeuge.an, tblStatusFahrzeuge.Bemerkung, tblStatusFahrzeuge.Datenbank_Nutzer, tblStatusFahrzeuge.Eintrag_erstellt_am, tblStatusFahrzeuge.Eintrag_erstellt_um " & _
"From tblStatusFahrzeuge Where '" & txtStatus.Value & "' = Status "

相关问题