• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessのオートナンバー取得)

Accessのオートナンバー取得方法とは?

このQ&Aのポイント
  • Access97を使用して、営業の訪問日報を作成する際に、親フォームと子フォームを連携させる方法を教えてください。
  • 親フォームでフィールドを更新せずに子フォームを入力した場合、オートナンバーを取得する方法について詳しく教えてください。
  • Accessのオートナンバー取得について、質問がわかりづらくて申し訳ありません。お手数をおかけしますが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

『活動日』への既定値を廃止し、代わりに「値の代入」(と「レコードの保存」)とするのが よいのではないでしょうか。 「値の代入」を行うイベントとしては、「レコードの移動時」か、子フォームの「フォーカス 取得時」辺りが無難かと思います。 但し、一長一短がありますので、当該日報の使い勝手としてどちらがよいか見極める 必要があります。 ※ユーザーが行う作業を追加してもよいなら、コマンドボタンのクリックで行うのが   ベストかと思います。 <レコード移動時で対応した場合の難点>  新規レコードへの移動と同時にレコードが保存されてしまうので、  そのレコードが不要だった場合、削除してやる必要がある。  (なお、オートナンバーの都合上、削除をするとその分は欠番に   なります:   削除後、次の追加前に、メニューで「ツール(T)→データベース   ユーティリティ(D)→最適化(C)」を選ぶなどして最適化すれば、   次回追加時の欠番は回避可能) <サブフォームのフォーカス取得時で対応した場合の難点>  サブフォームにフォーカスがある状態で、親フォームのレコード  セレクタや移動ボタン(→フォーム最下にあるレコード番号を表示  する場所とその両脇に並んだボタン)で移動すると、コントロール  の移動がないため、「フォーカス取得時」イベントが発生しない。 以下、レコード移動時の場合です(本体部分の4行は、どのイベント に割り当てた場合でも同じですが): Private Sub Form_Current()   '新規レコード時のみ、今日の日付を入力してレコードを保存   If Me.NewRecord Then     日付 = Date()     RunCommand acCmdSaveRecord   End If End Sub

doredore1
質問者

お礼

適切なご回答ありがとうございます。 「値の代入」は、一長一短あるようですがとても参考になりました。 色々試して見ます。 >※ユーザーが行う作業を追加してもよいなら、コマンドボタンのクリックで行うのが   ベストかと思います。 やっぱりこの方法が一番スッキリしますかね。 とてもいいヒントをいただきましたことお礼申し上げます。

関連するQ&A