• ベストアンサー

Accessで前に入力したフィールドのコピー/入力の簡略化で

具体的には商品名の入力で 同じような名前で最後の方が少しだけ違う品名が 続きます。 オートナンバーでキーは自動でつけて行きます こんな時、前に入力した品名が、 新しく入力しようとするレコードの品名のところが ブランクでなく、前レコードで入力した値が コピーされていれば、違うところに(品名)の入力 だけですむのですが こうしたロジックを組み込むのはどうすればいいでしょう フォーム入力で考えています

  • ppmi
  • お礼率88% (331/372)

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

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

> こうしたロジックを組み込むのはどうすればいいでしょう 「更新後処理(AfterUpdate)」イベントで、「商品名」の既定値(DefaultValue)を 更新してやればよいのではないかと思います。 具体的には、 1)入力フォームをデザインビューで開く 2)画面の適当な部分をダブルクリックしてプロパティシートを開く 3)「商品名」コントロールをクリックし、プロパティシートに「商品名」のプロパティを  表示させる 4)「イベント」タブをクリックしたら、「更新後処理」にカーソルを移動させる 5)右端に表示される「...」(ビルダ)をクリックし、「コードビルダ」を選択する 6)以下のコードを入力する Private Sub 商品名_AfterUpdate() 商品名.DefaultValue = "'" & 商品名.Value & "'" End Sub 7)フォームを保存して終了 といった感じです。 (もし、データ型が「数値型」のフィールドで同様のことを行う場合は、  「商品名.Value」の前後の「&」と「"'"」は無用です) これで、「商品名」を更新すると、新規レコードに同じ値が表示されるようになります。 なお、他のフィールドに入力するか、「商品名」の名前を編集しない限りは、 そのレコードは新規レコードのままです。 (→つまり、同じ商品名がその場で二重登録されるわけではないということ)

ppmi
質問者

お礼

ありがとうございました ご指導の通りやりましたら、出来ました 大変貴重な指導でした。

その他の回答 (2)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.2

ヘルプより Ctrl + ' (一重引用符)  前のレコードの同じフィールドの値を挿入する。 これでダメならマクロかVBAになります。

ppmi
質問者

お礼

ありがとうございました こんな方法もあるのかと参考になります

noname#254177
noname#254177
回答No.1

入力フォームのプロパティで、規定のビューを単票フォームを帳票フォームに変えれば、続けてレコードが表示されるようになります、そこで前レコードが見えますのでそれをコピペで、こんなんじゃだめですか?簡単ですけど

ppmi
質問者

お礼

ありがとうございました 返事遅れました

関連するQ&A

  • 1つ前のレコードのフィールドをコピーするVBAについて

    あるフィールドに入力する時、1つ前のレコードと同じ値であれば、Ctrl+2で簡単に入力出来ますね。 それで、更に入力の手間を省くために、これもVBAで自動化しようと思ったのですが、はてどうしたらと行き詰まってしまいました。 入力用のフォームを作っておいて、いくつかのフィールドに入力するテキストボックスをいくつか作って、そのうち1つはほとんど同じ値を持つとすれば、このフォームの更新前のイベントプロシージャが適切かと思います。このフォームに入力しようとしたら、即座にほとんど決まった値を持つフィールドに、1つ前のレコードの値が入るというようなコードになるかと思います。そのコードの1例を教えて頂けますか?また、他のいい方法はあるのでしょうか? 以上、よろしくお願い致します。

  • アクセス2003でIDフィールドのデータをオート入力(規定値)したいのですが

    こんにちは。 教えてください。 オートナンバー型を利用せずに単票フォームからNOフィールドのデータを入力したいのです。  ↓こんな考え方で レコード新規作成時 : NO 規定値 総レコード件数+1 です。 オートナンバー型を利用するとたとえばNO10を後での削除をすると その10は欠番になり利用不可ですよね。 そこらへんは柔軟に必要があればいつでも欠番になっている10という値をNOフィールドに手入力で再利用したいのです。 いろいろ調べてみたのですがいい感じな方法が見つけられませんでした。 お願いします!!

  • Access2003での入力済のフィールドに対しての連番について。

    Access2003での連番について。 T_商品 ID:オート CODE:数値型6桁 その他何項目かのフィールドがありCODEの部分に000001~003000くらいまで入力がされています。 003001番から自動で+1していくにはフォームでどのように指定したらいいでしょうか?? 既に003000まで入力されているので最大値を求めてやってみたりしているのですが 中々うまくいきません。 よろしくお願いいたします。

  • アクセス97

    データ入力フォームからデータ検索をして同フォームに表示させる。一部書き換えた後 新しいレコードとして登録したいのですがどうしても同じレコードが書き換わってしまいます 助けてください。 具体例: 登録フォーム”A”に入力項目がID(主キー、オートナンバー)会員番号、名前、購入品、 購入日時等があります。”A”フォームから会員番号で名前を抽出して他の項目内容を 新たに入力し、追加レコードとして登録したい。 ”A”フォームにデータ抽出は出来るのですがレコード内容の書き換えになってしまいます。 回答よろしくお願いします。

  • Accessのフォームでデータを入力すると、テーブルと一致するデータをあるフィールドに代入してしまうことは可能ですか?

    本来のAccessの使い方ではないかもしれませんが・・・。 あるフォームで品番を入力すると、品番マスターなるテーブルから値を 検索して一致したフィールド(品名・数量)の値を直接フォームの フィールドに代入してしまうことは可能ですか? マクロの値の代入というものを使ってもうまくいきません。 また、クエリーを使えば、品番を入力すれば品名・数量が出るように することはできるのですが表示上だけですので、フォームに直接値 が入力されるようにしたいのです。 方法がうまく思いつきません。どうかお知恵をお貸しください!!

  • アクセスでフォームに入力したレコードの複製について教えてください

    アクセスでフォームに入力したレコードの複製したいのですが、何か方法はありますか? テーブルをコピペしようとしたらオートナンバーを含んだフィールドを入れているせいか、ペストができません。

  • ACCESS2003:ルックアップで表示に対応する別項目を入力したい

    リストボックスから選択できるのは 「りんご/バナナ/みかん」といった品名だが 実際に入力される値は「1/2/3」といった対応する 数値が入力されるようにしたいと思います。 テーブル:T売上 ------------- num: オートナンバー(主キー) item: 整数 ------------- テーブル:T品目 ------------- num: オートナンバー(主キー) name: 商品名 ------------- クエリ:Q売上 ------------- num: T売上.num item: T売上.item(ルックアップ設定) ------------- 上記クエリを作り、ルックアップには下記のようにしました。 ------------- 表示:リストボックス 値集合タイプ:テーブル/クエリ 値集合ソース:T品目 値連結:1 列数:2 ------------- リストボックスから選択入力することはできましたが、 表示も入力値も「T品目.num」になってしまいます。 表示は「T品目.item」、入力値は「T品目.num」のように したいのですが、そのようなことは可能でしょうか? 入力値を数値(num)にしたいのは、品名(item)が 変更になる可能性があるからです。

  • Access フォームで重複データのコピー入力について

    Accessで注文台帳を独学で作っているものです。 マクロは少々、VBAは全く判らないレベルです。 実は、1枚の注文書で2つの発注まで記載できる書式になっているため、注文書No 00001に対し、連番で01と02に分けて入力しています。 以下の様に、フォームで連番01の内容を入力してレコード1、次に連番02の内容を入力してレコード2という感じです。        注文書No 連番 発注者 品名 部署 金額  レコード1  00001 01 Aさん タコ B課 100円 レコード2  00001 02 Aさん コマ B課 200円 この時に一つの注文書なので当然、発注者と部署は連番01も02も同じになるのですが、全て入力しなければなりません。 重複フィールドは発注者、部署以外にも多くあるので、手間が掛かります。 そこで相談なのですが、重複フィールドを自働でコピーする方法はあるでしょうか? 連番02と入力した場合に、同じ注文書No00001の連番01のレコードデータから、自働で連番02の重複フィールドにコピー入力したいです。 現在は、自分だけが入力しているので我慢しているのですが、将来的に他の人も入力する可能性があり、その時、クレームが出ると思うので今の内に解決しておきたいと思っています。 もしVBA、マクロが必須であれば、全く判らないレベルですので記述も教えて頂ければ助かります。 大変申し訳ありませんが、お願いいたします。

  • Access 連結フィールド値を自動で表示

    Accessでフォーム上にサブフォーム(データシート)を作成すると、 新規レコード欄にも自動的に連結フィールドの値が表示されます。 このサブフォームをメインフォーム上に作らずに、 コマンドボタンクリック時にあるフィールドが一致する(上記で言う連結フィールド)データを表示したサブフォーム(データシート)を開くかたちにしたいのですが、そうすると当然ながら新規レコード欄には連結フィールドの値は表示されません。 これをメインフォーム上にサブフォームを作った時と同じように、新規レコード欄に連結フィールド値を表示させるにはどうしたら良いでしょうか? サブフォームを開く段階で新規レコードに結合フィールドの値を(VBAで)入力する事も考えましたが、そうするともしそこにデータを入れるつもりじゃなくても1つのレコードとしてデータが残ってしまいます。 メインフォーム上に作ったサブフォームなら、新規レコードに結合フィールドの値は表示されているものの、その他のフィールドにデータを入力しなければ1つのレコードとしてデータが残ることはありません。 こういう事が可能かどうかわかりませんが、ご存知でしたら教えてくださいませ。 よろしくお願いします!

  • ACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです

    フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。 売上テーブル  ID   商品コード  日付    金額   1    G1     20080101  532153  2    G1     20080101  564281  3    G1     20080301  538123  4    J4     20080301  124531  5    J4     20080302  125483 ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型 これを使い、 フォームではまず レコードナンバーを入力画面        ↓ レコード番号を入れると、そのレコードのデーターが画面に表示され、 その画面で修正可能        ↓  保存 ボタンで保存 という流れです。 レコードナンバーはIDを使おうと思っています。 データの量が莫大な為、コンポボックスなどは使えません。 できるだけ、VBAなどは使わずに作りたいです。 よろしくお願い致します。

専門家に質問してみよう