• ベストアンサー

Access データ入力について

Access 初心者です。  初心者ながら必要に迫られデータ入力用システムを作っています。 どのようなものかというと ・作業月日 ・作業名 ・作業行った社員名 ・件数 これらの事項をフォームで入力していきます。今、なんとかフォームの完成まで行き着きました。 ただ、1日に作業員1名が行う作業は1つではないので、今のフォームのままでは、入力のたびに重複する作業月日、作業者名を入力しなければなりません。 以前別の会社だったとき同僚が作ったシステムでは、最初に日付、氏名を1度入力し、あとは作業名や件数のみを入力するというものでした。(説明が上手くできませんが…) 今となっては転職してしまったので、そのシステムの中身をみることができません。 この以前のシステムのように最初に日付、氏名を入力するという方法にはこだわりません。 初心者にでも分かるように教えていただけないでしょうか。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

たぶん最後に入力されたものを規定値にセットしているんだと思いますね Aさんの分を続けて5件入力、つぎにBさんの分を3件入力 なんて入力の仕方が出来て便利な方法ですが これをやるにはVBAの知識が必要です 初心者にお勧めなのは 2つ目の入力時、上のフィールドに表示されているものと同じものを入力したければ Ctrl+'を押すという方法です これでもずいぶん省力できますよ もうひとつはカーソルのある行をそっくりそのまま 新規レコードにコピーしてしまうボタンを作成する方法です このボタンはVBAの知識がなくてもウィザードが作ってくれます 興味がおありならどれでやりたいかを返事してください

midoriramram
質問者

お礼

回答ありがとうございます。 ExcelでのVBAの知識は少しだけならあります。(初級者レベルですが) >Aさんの分を続けて5件入力、つぎにBさんの分を3件入力 なんて入力の仕方が出来て便利な方法ですが これをやるにはVBAの知識が必要です ↑↑ できればこれでやりたいのですが、無理でしょうか…

すると、全ての回答が全文表示されます。

その他の回答 (3)

noname#79209
noname#79209
回答No.4

私は以下の方法をよく使います。 そのフォームにフォームのコントロールをクリアするプロシージャを作っておきます。 例: Private Sub subClearForm(Optional paraMode As String = "") If paraMode = "ALL" then Me.txt作業日 = Null Me.txt作業者 = Null End If Me.txt作業名 = Null Me.txt件数 = Null End Sub そして、そのフォームの「開く時」イベントプロシージャの頭に Call subClearForm("ALL") と入れ、 登録ボタンの「クリック時」イベントプロシージャの最後に Call subClearForm("") と入れておけば、 フォームを開いた時は、全ての入力用コントロールがクリアされており、 登録したのちは、作業名と作業件数のみクリアされます。 勿論、フォームの「閉じる」ボタンは別に作っておきます。

midoriramram
質問者

お礼

回答ありがとうございます。 いろいろな方法があるんですね。 今回は別の方の案で解決しましたが、次回参考とさせていただきます。

すると、全ての回答が全文表示されます。
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

>ExcelでのVBAの知識は少しだけならあります。(初級者レベルですが) エディタの使い方を知っておられるのなら出来ますよ 同じデータを続けて入れたいフィールドの更新後イベントに '日付時刻型 Private Sub 売上日_AfterUpdate() Me.売上日.DefaultValue = "#" & Me.売上日 & "#" End Sub 'テキスト型 Private Sub 発送NO_AfterUpdate() Me.発送NO.DefaultValue = "'" & Me.発送NO & "'" End Sub '数値型 Private Sub 品名コード_AfterUpdate() Me.品名コード.DefaultValue = Me.品名コード End Sub 表示されている規定値は別のものに書き換えることができます

midoriramram
質問者

お礼

さっそくやってみました。 おかげで私のやりたかったイメージどおりです。 ありがとうございます。

すると、全ての回答が全文表示されます。
noname#46899
noname#46899
回答No.1

普通はサブフォームを利用します。 http://office.microsoft.com/ja-jp/access/HA100986741041.aspx#subformbasics サブフォームを利用するためには通常、メインテーブルとして日付と氏名の入ったテーブル、サブテーブル(詳細テーブル)として日付、氏名、作業名、件数の入ったテーブルを作成し、リレーションを組みます。このあたりはリレーショナルデータベースの基本的な使い方なので、Accessを使うなら勉強しておいたほうがいいと思います。 その後の計算等がどう絡んでくるのかが不明ですが、特に複雑な集計をすることがなく、一日に行う作業数に限りがあるのなら、最大数分だけ各項目を作れば簡単でしょう。

参考URL:
http://office.microsoft.com/ja-jp/access/HA012242471041.aspx
midoriramram
質問者

お礼

回答ありがとうございます。 まだまだ勉強不足です、紹介していただいたサイトも十分理解するのに時間がかかりそうです。 

すると、全ての回答が全文表示されます。