- ベストアンサー
アクセスフォームのデータ入力
教えてください。 アクセス2000で銀行残高管理DBを作っています。 データ入力用フォームで次のフィールドがあるとします。 (1)支払先(2)借方科目名(3)貸方科目名(4)金額(5)摘要 1)同じフォームで複数行のレコードを入力できるようにしたいのですができますか? たとえば5行くらいです。 2)同じ科目の取引が何回も続くような場合に、実行キーを押すと前の行の同じフィールドのレコードを自動的に入力させることはできますか? 以上、ご指導お願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
うっひゃあ! 大事なこと書いてなかった。 #2です。 日付の場合の注意事項です。 DefaultValueプロパティは日付形式をリテラルで代入しないと、エラーまたは変な値になってしまいます。 具体的には、 Text1.DefaultValue="#"&Format(Text1,"m/d/yyyy")&"#" の様にします。
その他の回答 (2)
- yomo3
- ベストアンサー率32% (88/269)
こんにちは! 2)についてですが、#1の方の方法と別に次の方法もあります。 まず、それぞれのテキストボックスの「更新後処理」に Text1.DefaultValue=Text1 と入れてやります。 ここで、Text1はそのテキストボックスの名前です。 そうすると、新規フィールドにのみ最終入力値が表示されます。 一回フォームを閉じると、テーブル設計時に指定した「初期値」に戻ってしまいますが、これも継続したいのならば、テーブルのフィールドのDefaultValueプロパティを変更するようにプログラムを書きます。 データベースオブジェクトのテーブル定義を開いて変更します。 具体的にはヘルプを参照ください。
お礼
いろいろな方法がありますね! 又ご指導ください。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 1) 帳票フォームにすれば、複数行を表示出来ます。 ただし、入力はあくまで1行(1レコード)ごとになります。 別の行へ移動する時に一旦保存されます。 2) フォームの更新前イベントで、そのフィールドの値を変数に保存しておき、レコード移動時イベントでその値をデフォルト値として、フィールドに代入するようにします。 ただし、あくまで新規レコードの場合のみとします。 実際のコードは以下のような感じになります。 (借方科目名の場合、データ型はとりあえず文字列型にしました。) (フォームモジュールの宣言部に) Private KarikataKamoku As String (各イベントプロシージャに) Private Sub Form_BeforeUpdate(Cancel As Integer) KarikataKamoku = Me!借方科目名.Value End Sub Private Sub Form_Current() '新規レコードの場合のみ If Me.NewRecord Then Me!借方科目名.Value = KariKataKamoku End If End Sub
お礼
なるほど、よくわかります。 maruruさんご指導ありがとうございました!
お礼
なるほど! 日付はこうやるわけですね。 勉強になりました。