を更新していない追加クエリを保存しましたここで、パラメータはフォームコントロールから収集されます。ボタンを保存するための私のVBAコードは次のとおりです。MS Accessの2013年は、私は次のようにある保存されたクエリ、qryInsertLogを持っているすべてのフィールドに
Private Sub cmdSave_Click()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim okToSave As Boolean
If Me.cboUser.Value = 0 Or IsNull(Me.cboUser.Value) Then
MsgBox "You must choose a user. Record not saved."
okToSave = False
ElseIf Me.cboUnit.Value = 0 Or IsNull(Me.cboUnit.Value) Then
MsgBox "You must choose a unit. Record not saved."
okToSave = False
ElseIf Me.txtLogEntry.Value = "" Or IsNull(Me.txtLogEntry.Value) Then
MsgBox "You must have somtehing to log. Record not saved."
okToSave = False
Else
okToSave = True
End If
Set db = CurrentDb
Set qdf = db.QueryDefs("qryInsertLog")
qdf.Parameters("UserIDPar").Value = Me.cboUser.Value
qdf.Parameters("UnitIDPar").Value = Me.cboUnit.Value
qdf.Parameters("LogEntryPar").Value = Me.txtLogEntry.Value
qdf.Parameters("FNotesPar").Value = IIf(IsNull(Me.txtFNotes.Value), "", Me.txtFNotes.Value)
If okToSave Then
qdf.Execute
End If
qdf.Close
Set qdf = Nothing
End Sub
このコードが実行されると、テーブルのFNotesフィールドが更新されません。他の3つのフィールドは、期待どおりに更新されます。 FNotesは必須ではない唯一のフィールドです。私はそうのようなFNotesののparamaterの文字列をハードコード:
qdf.Parameters("FNotesPar").Value = "why doesn't this work"
ではなく、フォームコントロールの値を使用して、同じ結果だ:そのフィールドだけで更新されませんが。 Access Objectsウィンドウからこのクエリを実行し、プロンプトからパラメータ値を入力すると、正常に動作します。テーブルにバインドされたフォームを作成すると、うまくいくようにも見えます。
なぜLogEntryフィールドを更新するのに問題はないのか分かりませんが、FNotesフィールドは更新に失敗します。
パラメータクエリの問題があります。最後の1つにも運がありませんか? debug.printを使用して値を確認してください。実行にdbFailonErrorを追加します。 – dbmitch
私はそれが再びLongTextパラメータだと思います。 – Andre