
No.4ベストアンサー
- 回答日時:
326さんの回答にもありますが、自動入力するテキストボックスの「規定値/DefaultValue」プロパティを利用するのが良いでしょう。
新規に入力するデータの規定値ですから、参照するのは、入力済みの最後のデータになりますね。
そこで具体的な方法ですが、フォームの該当するテキストボックスのデータ タブの規定値に、
=DLast("テキストボックス名","フォームの元になるテーブル(またはクエリー)名")
と、記述してみてください。
( DefaultValue プロパティ、DLast 関数を HELP で確認してください。)
(また、326さんのご希望のような ID番号の入力の場合は、DLast 関数でなく、DMax 関数を使って、=DMax(・・・・)+1 としてください。)
とりあえず、これでご希望に添えるようでしたら、以下は読まなくてもけっこうです。
もし、テーブルデータの並べ替えを行っていて、厳密な処理を行いたい場合のみ、続きをご覧ください。
データの入力は、常に順番に行っていらっしゃるのでしょうか?
例えば、データを日付で昇順に並べ替えをしているテーブルに、古い日付のデータを後から入力するようなことはないでしょうか?
もし、このような入力をすると、最後に入力したデータは、画面上では上の方に表示されますが、実際は最終データですので、新規データの規定値も古い日付になってしまいます。
このような問題を回避するには、今、私が思いつくところでは、以下の三つの方法があります。
(1)(入力済みデータから一番最近の日付を参照するなら、)DMax 関数を組み合わせて、規定値の式を記述する。
(2)常に、画面上の最後のデータと同じ一つのレコードだけが抽出されるクエリーを別に作って、このクエリーの値を規定値にする。
(3)VBA でレコードセットを定義して、並べ替え後の最後のデータを取得する。
(1)で良ければ、これが一番簡単です。
(2)または(3)の方法を取るなら、私個人としては、(3)の方が、余計なクエリーが増えないし、処理も高速ですので、良いと思いますが、初心者の方で、VBA になじみが無い場合は、(2)の方がわかりやすいかも知れません。
まず、(1)の記述方法です。
=DLookup("テキストボックス名","テーブル名","日付フィールド名=DMax(""日付フィールド名"",""テーブル名"")")
( DLoolup 関数、DMax 関数、”:文字列内でのクォーテーション をHELP で確認してください。)
次に、(2)の方法で処理する場合の別クエリーの作り方です。
クエリーをデザインビューで新規作成してください。
まず、フォームの元になるテーブル(またはクエリー)をデザインビューに追加します。
次に、並べ替えをするフィールド(この場合は、日付のフィールドでしょうか?)を選択し、並べ替えを「降順」(最後のデータを抽出するので、元のテーブルが昇順で並べ替えられている場合、その逆の「降順」になります。)にします。また、表示のチェックは、はずしておいてください。
それから、次のフィールドを「元になるテーブル名.*」としてください。(「*」を利用すれば、すべてのフィールドが表示されることになります。)
最後に、クエリーのプロパティのトップ値に、1(数字の一です)を入れてください。
( TopValues/トップ値 プロパティを HELP で確認してください。)
以上で、最後のレコードのみを抽出するクエリーができます。
DLast 関数が参照するテーブルをこのクエリーに変更すれば、これで終わりです。
もし、(3)の方法にチャレンジしたければ、補足でコメントください。
なお、今、私の手元にあるのは Access97 ですので、他のバージョンをお使いの場合、操作方法が微妙に違うかも知れませんが、多分基本的には問題なく動くと思います。
御礼が遅くなりまして申し訳ありません。
yoishoさんの前半の方法で無事活用することができました。
accessというのは本当に奥が深いですね。
まだまだ初心者で後半に書いてくれたものはよく分からなかったのですが
今後活用する機会があるときには使いたいと思います。
というより、使えるように腕を磨きたいです・・・
これからも初歩的な質問を多数入れてしまうと思いますが
またお答えいただければ幸いと思います。
本当にありがとうございました。
No.3
- 回答日時:
日付の自動入力機能を記入日として使っています。
実際に発生した日は手動で別に記入してます。
自動入力を使うのは集計する時に、誤った年度を記入してしまうと
データ漏れが起きそうなので。
テーブル・デザインビューで既定値date()です。
御礼が遅くなりまして申し訳ありません。
chikaminさんのあとにいただきましたyoishoさんの方法でできてしまいました。
せっかく答えていただいたのに活用できず申し訳ありません。
また何かありましたら返事をいただけると大変うれしいです。
本当にありがとうございました。
No.2
- 回答日時:
私も是非教えてもらいたい内容だったので、参考にしようと思って見てました。
以後の回答は、的確なものではありませんが、参考になれば・・・。
前のレコードの値を参照すると言うよりも、これから登録する全てのレコードに、
同じ値を設定するというときに、他のフォームのテキストフィールドの値を
参照するように作ることがあります。
データ入力時のイメージとしては、
1.日付入力フォームを開き、日付を入力
2.何かボタンを押すと、データ入力フォームが開く
3.データ入力フォームには、1の日付が既定値として入力されている
という感じです。
設定としては、2のフォームの日付の既定値に、1のフォームの日付フィールドを
参照する式を設定します。
(=[Forms]![フォーム名]![日付]という感じ。)
そうすれば、1のフォームの日付を変更するまでは、ずーっと同じ日付が
入力されていきます。
途中で日付を変更するのに、1のフォームに戻らないといけないっていうのが、
ちょっとめんどいですかねえ?
ま、参考までにということで。
私の場合、前のレコードの値+1で連番を作りたいんですけどね。
オートナンバーは、なんか上手くいかなくて嫌いなもので・・・。
御礼が遅くなりまして申し訳ありません。
326さんのあとにいただきましたyoishoさんの方法でできてしまいました。
せっかく答えていただいたのに活用できず申し訳ありません。
また何かありましたら返事をいただけると大変うれしいです。
本当にありがとうございました。
No.1
- 回答日時:
Ctrlキーを押したまま、”(ダブルコーテーション、「ふ」のキー)を押すと
前のレコードの同じフィールドの値が入ります。
レコード単位でもできるのかな?
この回答への補足
早々と返事をありがとうございます.
bin-chanさんのように何かコマンドを入力する
というのではなく、既定値のよう形で前のレコードを参照して
自動で値をいれてくれる、といったようなものでした.
例えば家計簿とかのファイルで
今日の分を入力するのに10件のデータがあったとします.
その際、1件目は今日の日付を入力しますが、2件目以降のデータは
自動で日付が入ってくれるようなことでした。
説明が下手で申し訳ありませんが、お分かりになりましたら
よろしくお願いいたします.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Accessでフォーム上に 直前の データを表示させるには
Access(アクセス)
-
1つ前のレコードのフィールドをコピーするVBAについて
Access(アクセス)
-
ACCESSでのひとつ前レコードの求め方について
その他(Microsoft Office)
-
-
4
ACCESSのレコード操作で1つ前のレコードの再表示方法をご教授下さい。
その他(データベース)
-
5
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
6
テキストボックスに入力した値を、次に入れ替えるまで保持させたいのですが、どのような方法があるでしょう
Access(アクセス)
-
7
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
8
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
9
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
10
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
11
access別のテーブルを参照してテキストボックスに値を表示、編集したい
Access(アクセス)
-
12
「Access」のフォームで、同じデータの入力の手間を省くには?
Access(アクセス)
-
13
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
14
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
15
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
16
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
17
access テキストボックスの値取得
Access(アクセス)
-
18
Accessのテーブルのフィールドに式を入れる方法
Access(アクセス)
-
19
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
20
ACCESS 入力フォームでテーブルへデータを複数追加する
Access(アクセス)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入力した値をコンボボックスに...
-
前のレコードの値を自動で入れたい
-
インデックスまたは主キーにはn...
-
Accessでデータを更新したらそ...
-
Accessで、オートナンバー型を...
-
Accessでフォームに自動入力し...
-
Accessフォーム上の値を条件と...
-
Access 自動入力の解除方法
-
アクセスでコードを入れると名...
-
ACCESS フォームで入力データ...
-
エクセルで、抽出したデータだ...
-
Access サブフォームでの選択行...
-
【AccessVBA】レコードセットOp...
-
未審査請求包袋抽出表作成とは...
-
ExcelのComboboxでマウスのスク...
-
PDFファイルから特定の文字を検...
-
Access2000 サブフォームのReco...
-
ACCESSのレポートにフォームの...
-
Accessのコンボボックスでリス...
-
「パラメータが少なすぎます。3...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
前のレコードの値を自動で入れたい
-
インデックスまたは主キーにはn...
-
入力した値をコンボボックスに...
-
Accessでデータを更新したらそ...
-
access別のテーブルを参照して...
-
Accessでフォームに自動入力し...
-
AccessVBAの値によっ...
-
アクセスでコードを入れると名...
-
アクセスで新規にレコードを追...
-
テキスト型のフィールドでハイ...
-
Accessフォーム上の値を条件と...
-
Accessで、最後(更新)にエラ...
-
「バリアント型でない変数に Nu...
-
Accessフォームが入力できません。
-
ACCESS フォームで入力データ...
-
助けてaccess!
-
ACCESSでフォームのチェックボ...
-
ACCESSの使用方法
-
accessのフォームを多数のPCで...
-
Access 検索フォームの作り方...
おすすめ情報