- 締切済み
アクセス97を使って新しいレコードと前のレコードとの間で演算したい
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Toshi-T
- ベストアンサー率0% (0/0)
マイクロソフトの技術情報に次のものがあります。 [AC97] 前または次のレコードのフィールドを参照する方法 最終更新日: 1999/07/15 文書番号: J049050 ご参考になれば幸いです。 ちょうど私も研究中です。
- VT250F
- ベストアンサー率30% (26/84)
>自動車に例えると1台だけの場合はいいのですが、実際は複数・・・ うーん。少し難しいですね。後は応用だと思います。 例えば、元となるテーブルを車種別に抽出する「テーブル作成クエリー」を作り、 作成したテーブルにオートナンバーの主キーをつけて、 車種別に実行してはどうでしょうか? 問題は車種が多くなると管理するテーブルが増えてしまうと言うことです。 そこのところはテーブル名の命名基準を決めて、 テーブル名の頭数文字が同じなら、作業用のテーブルと言うことで、 一括削除する削除クエリーなり、マクロなりを作ればよいのではないでしょうか。 アクセスのモジュール(かなり難しいですが)に挑戦してもよいかもしれません。
- VT250F
- ベストアンサー率30% (26/84)
オートナンバー型のインデックス(主キー)が付いたテーブルAを作成します。 クエリー1で「オートナンバー + 1」となるフィールドを定義します。 Aとクエリー1をオートナンバーでひもつけ(結合)して後は 求めたいフィールド - 求めたいフィールド としたフィールド式を作れば、 当レコード - 前レコードとなります。 オートナンバーのついたクエリーを作ることはできないようです。
関連するQ&A
- Access演算コントロールについて
Accessの演算コントロール(演算列)で以下を行いたいと思っております。 ■条件 (1)フラグの立っている列のみ演算対象。無い場合はnull値を返す。 (2)フラグの立っている列:次回(カレントレコード)以降、 何回目のテストで今回の平均値を上回るかを演算フィールドに返す (3)テーブル名 テストM ID 教科 点数 平均点 フラグ 演算 1 国語 45 42 0 null 2 国語 40 43 0 null 3 国語 60 80 1 4 ・・・以降4回目のテストで今回の平均値を上回る 4 国語 30 45 0 null 5 国語 55 55 1 1 ・・・次回のテストで今回の平均値を上回る 6 国語 70 47 0 null 7 国語 100 50 0 null Dlookup関数で以下のように式を書きましたが、うまく結果が求められておりません。 =IIf([演算] Is Not Null,DLookUp("[ID]","テストM","[点数] >= " & ([平均点] And "[演算)]" Is Not Null))-[ID],Null) 上記の式で演算を行うとID3のレコード演算結果が「-2」(※1-3の結果) ID5のレコード演算結果が「-4」(※1-5の結果)になります。 VBAを使ってでも解決したいと思っております。 大変恐縮ですが、どなたかアドバイスでもご教授頂けますでしょうか? よろしくお願い致します。
- ベストアンサー
- その他(データベース)
- 【Access2003】
お世話になります。 検索フォームにて、期間を指定してレコードを抽出してるのですが 添付画像の『検索期間』の右側のフィールドには常に現在の日付を表示しています。 左側のフィールドは空白になっていますが この左側のフィールドに常にその月の1日を表示させたいのですが可能でしょうか? 宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- 条件指定の特定レコードのフィールド値の差をとりたい
お世話になります。 テーブル1(TBL_1)の社員コードそれぞれにおけるレコードのフィールド値のデータ1と別テーブル(TBL_2)のデータ2との差をとる方法が知りたいです。差をとりたいレコードは以下の条件によります。 ・テーブル2の期間1と期間2の範囲にはいっているテーブル1のレコードのみ差をとる。 ・データ1とデータ2の差がマイナス(-)になることはありません。 ・社員コードは百程度、レコード数は数千にのぼります。 ・フィールドの期間1と期間2は同一社員コードにおいて重複することはありません。 ・テーブル2(TBL_2)は年度をまたいでの期間設定は基本しません。年度をまたぐ場合はレコードを増やします。 テーブル1名:TBL_1 社員コード 期間1 期間2 データ1 00123 2012/6/30 2014/3/31 30 00123 2014/4/1 2015/3/31 100 00456 1995/9/15 2008/3/31 15 00789 2001/6/2 2013/3/31 224 ・ 00456 2008/4/1 2016/3/31 628 ・ 00789 2013/4/1 2015/3/31 1089 ・ 00123 2015/4/1 2017/3/31 95 ・ テーブル2名:TBL_2 社員コード 期間1 期間2 データ2 00123 2012/11/6 2013/3/31 5 00123 2013/4/1 2013/11/5 13 00456 2013/6/12 2013/10/6 22 00789 1995/6/7 2000/2/11 6 具体的には、上記例においてテーブル1を下記の結果にしたいです。 テーブル1名:TBL_1 社員コード 期間1 期間2 データ1 00123 2012/6/30 2014/3/31 12 ←30-(5+13)=12 00123 2014/4/1 2015/3/31 100 ←変わらない 00456 1995/9/15 2008/3/31 15 ←変わらない 00789 2001/6/2 2013/3/31 224 ←変わらない ・ 00456 2008/4/1 2016/3/31 606 ←628-22=606 ・ 00789 2013/4/1 2015/3/31 1089 ←変わらない ・ 00123 2015/4/1 2017/3/31 95 ←変わらない ・ なにとぞお力添えをお願い致します。
- ベストアンサー
- その他MS Office製品
- Accessのクエリでレコード追加
Access初心者です。 バージョンは2010をつかっています。 テーブルを14テーブル含み、フィールド数が100ほどある選択クエリを作りました。 抽出条件などは設定していません。 このクエリで新しくデータを入力、レコードを追加し、上書き保存した後クエリを閉じます。 それからまた、そのクエリを開くとレコードが追加されていません。 テーブルにはその入力したデータは追加されています。 このクエリにもそのデータを追加表示させるためにはどうすればいいですか? 表示されない原因はなんなのかお教えお願いします。
- ベストアンサー
- その他MS Office製品
- アクセス;同じレコード内のデータを数字で指定して
あるクエリ上の、同一のレコードの中にある4つのデータ中から、一つを指定して、表示するクエリを作りたいのですが、どのようにすればよいのでしょうか。 現在、以下のようなフィールドです。 「指定個人名,個人名(1),個人名(2),個人名(3),個人名(4)」 「指定個人名」には半角数字の1から4までが任意で入ります。 「個人名(1)~(4)」のうちどれかを、「指定個人名」の数字で指定するとします。 「個人名(1)~(4)」のうち指定されたデータが、同一レコード内の新しいフィールドに表示されるようにしたいです。 しかしあるレコード内のデータを、同一レコード内の別のデータで指定するというやり方が思いつきません。 どうやって「指定個人名」の数字1~4を、「個人名(1)~(4)」までのデータと関連付けて、新しいフィールドに呼び出せば良いのでしょうか。 クエリ解説の本をひっくり返しましたが、どうも一般的な方法ではないようで、やり方が見つかりません。 初心者ゆえに質問の内容に不備があるかもしれませんが、訂正・補足いたしますので、ヒントだけでも結構です。 どうぞ教えてください。
- ベストアンサー
- オフィス系ソフト
- Access2007 クエリをつかった集計
初めて質問させて頂きます。 現在Access2007を利用してアンケート結果の集計を行いたいと考えています。 質問内容ごとにフィールドが作られており、フィールドには質問の回答として1~4の数値が入力してあります。 そこでレコード毎に同じ値が入力されているフィールドがいくつあるか フィールドの数を算出したいのです。(例えば、1という数値が入力されたフィールドがいくつ有るか) (例) フィールド1 フィールド2 フィールド3 回答1の数 レコード1 1 1 2 2 レコード2 2 1 2 1 レコード3 1 1 1 3 ↑ この値を算出したい どのようにすれば算出出来るでしょうか? クエリでできるのでしょうか? Accessについてはまったく使ったことが無く、まったくの初心者なので、質問の仕方も悪く分かりづらいと思いますがよろしくお願いします。
- 締切済み
- オフィス系ソフト
- Access2000(>_<)
Access2000を使っています。 既存のデータベースからレコードを削除できないように設定したいと思っています。 そこで、フォームのデザインにて、フォームのプロパティを開き、「データ」タブで「削除の許可」を「いいえ」にしてから閉じてみたのですが、試しにテーブルでレコードを削除してみると、削除できてしまいます。 再びフォームのプロパティを見ると、「削除の許可」が「はい」に戻っています。変更が保存されていないようです。 同様に、特定のフィールドの上書きを禁止したいので、同じくフォームのデザインで、上書きを禁止したいフィールドのテキストボックスのプロパティの「データ」タブにて、「編集ロック」を「はい」にしてから閉じましたが、この変更も保存されておらず、編集ができるままの状態です。 どうすれば変更を保存できるのでしょうか…。 またほかに、レコードの削除を禁止する方法、特定のフィールドのみ上書きを禁止する方法があれば教えてください。初心者なのでわかりやすく教えていただけると助かります。よろしくお願いします。
- 締切済み
- オフィス系ソフト
- ACCESS フォームで抽出条件の違うレコード表示
宜しくお願いします。 ACCESSでレコードソースをQ_Bとするフォームに、ヘッダー部分に別のクエリ(Q_Aとします)のデータを表示させようと思っています。 Q_Aのデータを元にフォーム内でnoごとに表示するテキストボックス(リストボックスなどでも可)を変えて表示させたいのですがうまくいきません。 Q_Aは No 日付 1 1/15 2 2/1 3 2/5 4 3/12 ・・・レコード数は10あります。 Q_Aの日付フィールドのみ一定期間ごとに変更します。 ですので、一つのテキストボックスには例えば Noのフィールドの「1」のレコードが表示されるようにしたいのです。 Q_Aを元に、レコード数10が個別に表示されるテキストボックス等を、VBAなど?で抽出条件を指定しておきフォームを開いた際に表示できるようにしておきたいのですが、どのような方法があるかご教授願えますでしょうか? よろしくお願い致します。
- 締切済み
- オフィス系ソフト
- Accessでクロスタブ集計クエリの結果の列を固定にしたい。
Access2007を使っています。 フィールド1においてAまたはBに一致するもののみをフィールド2(あ、い、う、え、・・)ごとに Countするというクロスタブ集計クエリを作成しました。 デザインビューで見たCriteria行には「"A" or "B"」と入っています。 結果は、 A B あ 1 い 2 2 う 1 え 1 ・ ・ ・ ・ ・ ・ のような感じになります。 この結果を他のクエリ(クエリX)で参照し、AやBという列を使っているため、 もしも、AもしくはBが元のフィールド2の中に1レコードも無い場合、 クロスタブ集計の結果からAもしはBの列そのものがなくなってしまい、 クエリXを実行した際にエラーとなってしまいます。 フィールド2内のAやBのレコード有無に関係なく、常にクロスタブ集計クエリの 結果を一定にする方法はありませんでしょうか?
- ベストアンサー
- その他MS Office製品
- accessからExcelへのエクスポート
今、access初心者の私ですが、仕事上必要なので、クエリをエクセルにエクスポートしています。 しかし、実際に必要なデータは下記の例のように、クエリの演算したフィールドも含めて一部であって、クエリで表示させたフィールド全部がいるわけではないのです。 例) <クエリ> <エクセル> A B C D E F ―エクスポート→ A C E F 演算フィールドの関係でどうしても表示させておかないと演算結果がエラーになってしまうので、クエリの表の状態では「A~F」はどうしてもいるのです。 これを、今はエクセルにエクスポートしてから「B」と「D」のフィールドを削除しているのですが、フィールドを選んでエクスポートってできないでしょうか? どなたかいい方法があれば教えて下さい。お願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございました。 教えていただいた方法で1台の車の場合については解決できましたが、テーブルに複数の車のデータがあり、当然オートナンバーを基準に計算した結果うまくいきません。よろしかったら解決方法をお教え下さい。
補足
VT250Fさんへ ありがとうございました。早速ためしてみました。 しかし自動車に例えると1台だけの場合はいいのですが、実際は複数であるため、テーブルの中で他の車のデータとの間で演算を行ってしまいうまくいきません。 車別に解決できる方法はありませんか。