hatena
hatena
2021/09/01 (水) 16:08:07
If Me.NewRecord = False Then Exit Sub
これがあると新規レコード以外ではこれ以降のコードが実行されません。
このコードの前に、サブフォーム操作のコードを移動させてください。
Private Sub Form_Current()
If IsNull(Me.取引先コード.Value) Then
Me.受注明細.Enabled = False
Else
Me.受注明細.Enabled = True
End If
If Me.NewRecord = False Then Exit Sub
Dim AutoID As String
Dim MaxID As Variant
AutoID = Format(Date, "yyyymmdd")
MaxID = DMax("受注コード", "T_受注", "Left(受注コード,8)=" & AutoID)
If IsNull(MaxID) Then
Me.受注コード.DefaultValue = AutoID & "001"
Else
Me.受注コード.DefaultValue = AutoID & Format(Right(MaxID, 3) + 1, "000")
End If
End Sub
通報 ...
ありがとうございます。
If Me.NewRecord = False Then Exit Subの前にコードを移動させました。
開いた時入力できない状態ですが、「取引先コード」に入力後も入力できない状態です。
因みに、「取引先コード」にも
Private Sub 取引先コード_AfterUpdate()
If IsNull(Me.取引先コード.Value) Then
Me.受注明細.Enabled = False
Else
Me.受注明細.Enabled = True
End If
End Sub
が入っている状態ですが、これを消しても動作が同じ状態です。
「レコード移動時」に書いたコードを消すと「受注明細」には常に入力できる状態になります。
原因はなんでしょう?
「取引先コード」フィールドのデータ型はなんでしょうか。
また、規定値の設定はどうなってますか。
また、ルックアップの設定はどうなってますか。
おはようございます。
「取引先コード」のデータ型は[短いテキスト]
[規定値]は空欄
[ルックアップ列]はデータベース規定
となっています。
よろしくお願いします。