Microsoft Access 掲示板

ダイアログのフォームにあるテキストボックスに値を格納したい / 20

25 コメント
views
4 フォロー
20
wazawaza 2023/06/17 (土) 18:29:01

hatenaさん、ありがとうございます。

早速試してみましたが「オブジェクトが必要です」...😅

まず、ダブルクリックするのは「F_依頼履歴一覧」の「fld_依頼ID」。
その「fld_依頼ID」の値の代入先は、
「F_依頼入力」の「txt_依頼ID」です。

追加・更新・削除・読込はなんとか動いております。

非連結の「F_依頼入力」の関連していると思われる記述の全体です。


'##################################
'### btn_最新ID取得をクリックした時 ###
'##################################

Private Sub btn_最新ID取得_Click()

  Me.btn_最新ID取得.Enabled = True  '引続き最新IDを取得するため「btn最新ID取得」は使用可能に
  Me.btn_追加.Enabled = True        '最新IDを取得後を条件に「btn追加」を使用可能に
    
  Const prefix As String = "L"  '「Laminate」の頭文字 "L"
    
  Dim maxID As String
  maxID = DMax("fld_依頼ID", "T_依頼")  '最終IDを取り出す
    
  Dim lastNum As Long
  lastNum = Replace(maxID, prefix, "")  '最終IDから頭文字"L"を除き、数値型へ代入する
    
  Dim newID As String
  newID = prefix & Format(lastNum + 1, "000000")  '+1して桁を揃えて頭文字"L"と結合
    
  Me.txt_依頼ID.DefaultValue = "'" & newID & "'"  '既定値へ代入
    
End Sub

'############################
'### btn_新規をクリックした時 ###
'############################

Private Sub btn_新規_Click()

Const prefix As String = "L"  '「Laminate」の頭文字 "L"
    
    Dim maxID As String
    maxID = DMax("fld_依頼ID", "T_依頼")  '最終IDを取り出す
    
    Dim lastNum As Long
    lastNum = Replace(maxID, prefix, "")  '最終IDから頭文字"L"を除き、数値型へ代入する
    
    Dim newID As String
    newID = prefix & Format(lastNum + 1, "000000")  '+1して桁を揃えて頭文字"L"と結合
    
    Me.txt_依頼ID.DefaultValue = "'" & newID & "'"  '既定値へ代入
    
    Call initializeForm
    
End Sub

'######################
'### hatenaさんのコード ###
'######################

Private Sub Form_Open(Cancel As Integer)

  Dim fld As DAO.Field
    With Forms!F_依頼履歴一覧.Recordset
        For Each fld In .Fields
            Me.txt_依頼ID.Value = fld_依頼ID.Value
        Next
   End With
   
End Sub


'##########################
'### レコード移動時のID採番 ###
'##########################

Private Sub Form_Current()

    Me.btn_最新ID取得.Enabled = True  '「btn最新ID取得」を使用可能に
    Me.btn_追加.Enabled = False       '「btn追加」を使用不可に(最新ID取得に導く仕掛け)
    
    Const prefix As String = "L"  '「Laminate」の頭文字 "L"
    
    Dim maxID As String
    maxID = DMax("fld_依頼ID", "T_依頼")  '最終IDを取り出す
    
    Dim lastNum As Long
    lastNum = Replace(maxID, prefix, "")  '最終IDから頭文字"L"を除き、数値型へ代入する
    
    Dim newID As String
    newID = prefix & Format(lastNum + 1, "000000")  '+1して桁を揃えて頭文字"L"と結合
    
    Me.txt_依頼ID.DefaultValue = "'" & newID & "'"  '既定値へ代入
        
End Sub
通報 ...