Microsoft Access 掲示板

Error 3008に対する対処法 / 4

16 コメント
views
4 フォロー
4
nokonoko 2020/08/26 (水) 10:38:33 653a6@54883

メイン/サブフォーム形式でサブフォームは帳票フォームかデータシートですよね。

帳票フォームです

インプット用のフォームを呼び出すイベントプロシージャ全体。

Docmd.OpenForm "PF_Input1",,,,,acDialog

インプット用のフォームのコード

Private Sub btnInput_Click()
On Error GoTo ErrHandler

If Nz(Me.cmbP_Name, "") = "" Or Nz(Me.txtQty, "") = "" Then
    MsgBox "Fill P_Name and transaction Quantitiy", vbExclamation, "Caution"
  Exit Sub
End If

Dim sngQty As Single
Dim strSQL As String

    If Nz(Me.opgTzT, "") = "" Then
        MsgBox "Choice transaction type", vbExclamation, "Caution"
        Exit Sub
    ElseIf Me.opgTzT = 21 Or 22 Then
        sngQty = Me.txtQty
    Else
        sngQty = Me.txtQty * -1
    End If

' SQLによる、データ入力
    strSQL = _
        "INSERT INTO T_SeihinTorihiki (T_Time, P_ID, TID, Qty, Memo) " &
        "VALUES(" &
        "#" & Me.txtTzDate & "#, " &

        "'" & Me.cmbPName.Column(0) & "', " &
        Me.opgTzT & ", " &
        sngQty & ", " &

        "'" & Me.txtMemo & "' );"
    Dim db As DAO.Database
    Set db = CurrentDb

    db.Execute strSQL

    MsgBox "Already Inputed"

    Call initilizeForm
GoTo Finally

ErrHandler:
    MsgBox "Error #: " & Err.Number & vbNewLine & vbNewLine & _
        Err.Description, vbCritical, "Error"

Finally:
    If Not db Is Nothing Then
        db.Close
        Set db = Nothing
    End If

End Sub

以上です。
インプットフォームはほかにこれといったコードがありません。初期化のためのInitialize Formと、閉じるボタンくらいです。

通報 ...