• 締切済み

acccessのテーブルにマクロを設定する方法?

ARCの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.6

#4 (改行位置変更させていただきましたm(__)m) >ですが、70くらいのコード番号があるので[分類項目]="xxx"ならば値の代入で式に >[分類コード]="70"のようなマクロを設定するのに、70行分の内容を書きました。これ >をもっと簡単にする方法はあるのでしょうか?やはり70回書かなければできないもの 直接的な回答 「分類項目」テーブルを作成して、DLookupなどで検索するといいでしょう。 補足 上記のやりかたでもとりあえず動くけれども、この問題を根本的に解決するために は、テーブル構造の改変が必要です。(詳しくは入門書等をお読みください) 1:お使いのテーブル上に「分類コード」フィールドが存在しなければ、追加してくだ さい。 2:「分類」テーブルを作成してください。フィールドは「分類コード」「分類項目」 あたりでいいでしょう。リレーションシップを設定すればなお良し。 2.5:「分類」テーブルにデータを入力してください(70コでしたっけ) 3:フォームにテキストボックスとコンボボックスを一つづつ作成して、双方のコント ロールソースを「分類コード」としてください。 4:コンボボックスのプロパティを設定して、「分類コード」に対応する「分類項目」 を表示するようにします。 5:実際にこのフォームを使ってみてください。テキストボックスに分類コードを入力 したときは、コンボボックスには適切な分類項目が表示され、コンボボックスに分 類項目を手入力(もしくは一覧から選ぶ)したときには、テキストボックスに分類コ ードが自動で入力されるようになったと思います。 6:テーブル上の「分類項目」フィールドはもはや不要ですよね。削除するなり、ご自 由に。 なんか、当初のご質問からかけ離れてきましたね。この件について新たにご質問があ れば、新しくOSIETEに登録していただければと思います。

関連するQ&A

  • Accessのフォームとテーブルについて教えてください。

    Access2003を使用しています。 既存のフォームAにフィールド3個を増やしました。 フォームAはテーブル(1)と連動していました。 追加したフィールドはテーブル(6)のものです。 ところがフォーム上で追加フィールドに入力が出来なくなりました。3フィールドのうち、ひとつはコンボボックスです。表示はされますが確定ができません。 フォームAのSQLステートメントではテーブル(1)・(6)以外にテーブル(2)・(3)・(4)・(5)が結合されています。 フォームAからするとテーブル(2)・(3)・(4)・(5)のデータはIDの名称を見るための参照用です。 テーブル(6)は、追加フィールドのコンボボックスが参照用で、他の2追加フィールドは、フォームから入力してテーブル(6)に反映させたいものです。 テーブル(6)の画面では入力できます。 フォーム上からは入力できません。 設定が何か欠けているからでしょうか? 他の質問では2つのテーブルをひとつのフォームにする場合は、クエリを別に設けた方がいいとなっています。フォームが出来上がっているので、できればクエリを設けずに行いたいのですが、よくない方法でしょうか? 手順なども踏まえて教えていただけると助かります。 よろしくお願いいたします。

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

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

  • アクセス97マクロ:テーブルデータ削除の条件設定方法について教えてください。

    どうぞ教えてください。 毎月仕事上である処理が終わった後に、いくつかのテーブルのデータの一部を削除する作業があり、これをマクロで自動的に処理できるようにしようと考えました。 そこで、最初は削除したいテーブルごとに削除クエリを作り、Where条件として削除したいデータの年月を尋ねるようにし、これをマクロで「クエリの実行」として複数の削除クエリを一気に実行してまとめて処理しようとしました。 上記でも処理はうまくいきます。 ただ、もしクエリを使わずにマクロだけでこのような処理が可能なのであれば、クエリの数も減るため、できればそうしたいと考えています。 その場合、マクロデザイン画面で「テーブルを開く(テーブル名入力)」→「レコードの選択」→「削除」とすれば削除はできると思うのですが、全てのレコードを削除するわけでなく条件に合致する一部のデータだけ削除したい今回のような場合、Where条件(年月)をマクロ上で尋ねるor設定するにはどうしたらいいでしょうか?

  • Accessで、テーブルに入力した値をクエリでマイナス表示にする

    いつもお世話になっております。m(_ _)m 至急教えてください。 テーブルのフィールドに入力した数字を複数のクエリで参照します。 1つのクエリでは、テーブルに入力した値、そのままを表示するので問題ないのですが、別のクエリでは、そのテーブルの値を参照する時、「マイナス」をつけることできますか? テーブルの値自体を「マイナス」にしてしまうと、他のクエリで参照した時に問題になるので、できたら、そのクエリのみでマイナスで参照できるとありがたいのですが・・・ できるようでしたら、方法を大至急教えてください。 よろしくお願いします。

  • accessマクログループの全マクロの実行方法

    お世話になります。 現在、顧客のデータベースを作成しております。DBは名前、住所等の連絡先を入力したテーブルを元に下記のクエリやマクロを作成しています。取引がない顧客等はメイン名簿テーブルから削除して、メインテーブルの構造をコピーした、削除テーブルに入れるようにしたいと考えています。 そこで下記のテーブル、クエリ、グループマクロを作成しました。グループマクロは作成したクエリ3つで構成されています。各アクションクエリは一個一個は正常に作動するのですが、グループマクロを実行しますと、1行目のクエリしか実行されません。実行方法はマクロの画面で更新ボタンを押しても、フォームに削除というボタンを作成してクリック時にグループマクロを実行させるよう設定した場合の両方で起きます。  グループマクロに登録されているマクロを全て実行するにはどうしたらいいのでしょうか。色々調べると、グループマクロは1行目しか実行できないようですが、全て実行する簡単な方法はありませんか?できればVBAではない方法を希望します。大変お手数ですがどうぞ、よろしくお願い致します。  ・(テーブル)メイン名簿(以下、名簿tblとします)    ⇒フィールド:名前、郵便番号、住所、電話、メモ欄、削除の有無、削除処理日  ・(テーブル)削除テーブル(以下、削除tblとします)    ⇒フィールドは上記と同じ  ・(更新クエリ)削除処理日追加    ⇒名簿tblの「削除の有無」フィールドにyesと入力されていれば、「削除処理日」に処理日が     入力されるようにdate関数を設定しています。(date())  ・(追加クエリ)削除tblへ追加    ⇒名簿tblの「削除の有無」フィールドにyesと入力されていれば、「削除tbl」へそのレコードを、     追加する。    ・(削除クエリ)名簿tblからの削除    ⇒名簿tblの「削除の有無」フィールドにyesと入力されていれば、名簿tblからそのレコードを、     削除する。  ・(マクログループ)削除処理(上から順番に実行希望)     マクロ名           アクション     クエリ名     削除処理日追加     クエリを開く    (更新クエリ)削除処理日追加     削除tblへコピー      クエリを開く    (追加クエリ)削除tblへ追加   名簿tblからの削除    クエリを開く    (削除クエリ)名簿tblからの削除                                                        以上

  • アクセスのフォームでデータ元をテーブルからクエリにかえたい

    上手く表現できるかどうかわからないのですが、頑張って書きます。少々長いです。 アクセスでフォームを使ってデータ入力しています。これは単純で、あるテーブルへのデータ入力をフォームを使ってやるだけのことです。このテーブルの中に「都道府県」というフィールドがあります。ある事情からこのフォームを使ってデータ入力(または修正)をするレコードは、「都道府県」のフィールドが「福岡県」のものだけでよくなりました。 そこで、「都道府県」に「福岡県」を持っているレコードだけを取り出すクエリを作ります。このクエリを元にして、同じフォームでデータ入力したいのです。入力項目は全く同じです。「福岡県」をもっているレコードだけが全く同じフォームで表示されるようにしたいのです。 もとのテーブル名を「全データ」とし、クエリを「福岡県抽出クエリ」と呼ぶとすると、どこかで「全データ」を「福岡県抽出クエリ」に書き換えればすべてのテキストボックスのデータ元が入れ替わってくれると思うのですが、それでいいのでしょうか。その場合、どうやったらいいのでしょう。 なぜ一からファームを作り直さないかというと、テキストボックスの大きさや配置を決めるのに膨大な労力を費やしていて、全部をやり直したくないからです。 どうかお願いします。ご指導ください。

  • Accessのテーブルのフィールドに式を入れる方法

    質問:1 テーブルのフィールドに式を入れる方法を教えてください。 フィールド1、フィールド2、フィールド3とある場合に、 フィールド3=フィールド1+フィールド2を自動入力したいのですが、 どこで設定すればいいのか教えてください。 質問:2 フォームのテキストボックスのコントロールソースに下の式を設定してあります。 ="K-" & [区分] & "-" & CStr([通番]) これをテーブルのフィールドに反映させるにはどのような設定を行えばいいでしょうか。 (フォームのコントロールはウィザードでテーブルの全フィールドを取り込んでいます。) よろしくお願いします。

  • アクセスのテーブルでコードを入力したら名前が出るようにしたい

    アクセス初心者です。 アクセスのテーブルで、コードナンバー(例:01)を入力したら隣のフィールドに自動でそのコードに対する値(例:東京)を表示させたいと思っています。 コードとそれに対応する値(例:01 東京・02 名古屋)というようなテーブルは作ってあります。 クエリやフォームではできるようなのですが、テーブルでそのような事はできないのでしょうか・・・。 宜しくお願い致します。

  • パラメータクエリを一つにまとめたい

    クエリ1を基にフォーム1を作成、 クエリ2を基にフォーム2を作成、 クエリ1も2もパラメータクエリを使用していて フィールド名は「番号」データ型はテキスト型です。 そして新規にフォーム3を作成しフォーム1とフォーム2をドラッグしました。 この状態でフォーム3をダブルクリックすると パラメータの入力を2回求められますがどちらも同じ番号を入力しています。 (「001」などを2回入力) これを1回にすることは可能でしょうか? ・番号フィールドの基テーブルはクエリ1と2は違うテーブルです。 ・クエリ1と2は一つにまとめたくありません。 フォーム3上に別々に表示させたいです。 ・クエリ1には全ての番号がありますがクエリ2には抜けている番号があります。 「クエリ1の全レコードとクエリ2の同じ結合フィールドのレコードだけを含める。」で全ての番号を表示できる状態です。 説明が下手ですいません。 アドバイスお願い致します。

  • テーブル間の更新クエリにおいて

    Access2010で入力フォームを作成しています。 一時データとしてテーブルAを連結サブフォームとして編集します。保存ボタンをクリックするとメインのテーブルB(Aとフィールド構成は同じ)へA、Bのフィールド間で値が異なる場合、上書き保存をするという更新クエリを用意しています。 質問はテーブルAでフォーム上、オプショングループのラジオボタン(項目はテキスト型 値リストは0と1)に設定した項目が初期値のnullから入力したデータがメインのテーブルBに更新できないので困ってます。 連結フォームなので、テーブルAに値が入っており且つBと値が異なるのはデータビューで確認しています。ただ更新クエリでの選択(データビュー)に載ってこない。 この項目がテーブルBに反映されるのは予めインポートで0もしくは1が入力されていた状態から変更した場合と他の項目も合わせて値に変更があった場合のみでした。 クエリの抽出条件はテーブルA.項目<>テーブルB.項目としています。他の項目もor条件で同じ設定にしています。切り分けのため、このオプショングループの項目だけを変更した場合のクエリにしても反映はされませんでした。 考慮すべき点あればご教示ください。 よろしくお願いいたします。 どうかお助けくださいませm(__)m