• ベストアンサー

アクセスで内容を変更していきたい。

初心者です。あるリストで、テーブルを作成してみました。その整理番号を入力したら、内容が変更できるようにしたいのですが、どうすればいいのですか?。フォームを作成する?クエリを作成する?今まではクエリを使って集計、検索しかしたことなくて。フォームを作ってみたのですが、主キーに指定した整理番号を入力しても、データが一番始めのデータから動きません。勉強不足ですみません。よろしくお願いします。

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

  • ベストアンサー
  • laputart
  • ベストアンサー率34% (288/843)
回答No.3

モジュールを作ると便利ですがちょっと作業がたいへんです。以下の通りやってみてください。わからなかったら また質問してください。 (1)フォームを普通に作成する。 (表示したいテーブル) (2)フォームのデザインモードにする (3)プロパティボックスを開く (4)ツールボックスから新しいテキストボックスをフォーム上に作成する (5)そのテキストボックスの名前を仮にテキスト2 とする (6)そのテキストボックスをクリックしてプロパティボックスからイベントのタグを選択して、その中ならフォーカス喪失時の右のボックスからイベントプロシージャを選択 (7)すると新たにVBAモジュールボックスが開きます。 ここに作業する内容(プログラム)を書くのですが 以下の部分をコピーペーストして下さい。 実際1行目と最後の行は書かれていると思うので それ以外の行をコピーして貼り付けします。 そのまま保存ボタンを押して、VBAを閉じても結構です。 (8)フォームデザインを終了して実行して下さい。 (9)作成したテキスト2をクリックして数字を入れて下さい。レコードが指定したところに移動するのを 確認して下さい。 ★最後にタブなどで形式を整えます。 後その数字がない場合の処理などですが、取りあえず ここまで動くかどうかチェックして下さい。 ★尚途中でおかしくなったら困るのでフォームは 練習用のものか、コピーなどを浸かって下さい。 ★テキストボックスの名前が違うとエラーになりますので モジュール内のテキスト2を正しい名前に変更します。 これでどうですか? ------------ Private Sub テキスト2_Exit(Cancel As Integer) On Error GoTo テキスト2_Change_Err Dim Num As Integer If IsNumeric(テキスト2.TEXT) Then Num = テキスト2.TEXT DoCmd.GoToRecord acForm, "test1", acGoTo, Num End If テキスト2_Change_Exit: Exit Sub テキスト2_Change_Err: MsgBox Error$ Resume テキスト2_Change_Exit End Sub ------------

8kazu7
質問者

お礼

御丁寧な回答ありがとうございます。 モジュールの設定ですね。 あけたことのないテキストボックスとかなのですが、 やってみます。

その他の回答 (2)

  • butaichi
  • ベストアンサー率26% (4/15)
回答No.2

パラメータを設定したいということでしょうか? であれば、クエリの抽出条件に[整理番号を入力]と入力して保存したらそのクエリを元にフォームを作成で良いと思います。 やりたいことと違ってたらごめんなさい。

8kazu7
質問者

お礼

回答ありがとうございます。 やてみます。

  • laputart
  • ベストアンサー率34% (288/843)
回答No.1

やりたい内容がいまいち理解できません。 整理番号をテーブルの主キーに設定して、フォームで 主キーを指定するテキストボックスを設けてその番号を入力すると該当するデータを表示させたいという事ですか?

8kazu7
質問者

補足

内容が曖昧ですみません。 はい。主キーで検索、表示して、記入されてない内容を追加して行きたいです。

関連するQ&A

  • Access マスターテーブル

    Accessについて。 テーブル1がID(主キー)、注文日、商品番号、納期など入力欄の項目で、テーブル2が商品番号(主キー)、商品名で商品のマスターテーブルになっています。 商品番号を入力すれば商品名が表示されるようにクエリを作成し、そのクエリからフォームを作っています。 ここまでは良いのですが、新しい商品番号を入力したときに限りフォームから商品名も入力する事でマスターテーブルに登録されるようにしたいのですが、どうすれば良いでしょうか?

  • Access アクセスについて

    Accessでデータベースを作っています。 テーブル、クエリは下記のようになっており、リレーションシップで紐付けしてあります。 クエリからフォームを作成し、商品番号を入力することでマスタテーブルに登録されていれば自動で商品名等の情報が表示されるようになっています。(フォーム1) 商品番号を入力しカーソルが移動した時、マスタテーブルに該当する項目がなかった場合、マスタテーブルから作成した新規追加用のフォームが表示されるようになっています。(サブフォームではありません) 新規追加用フォームに商品名を入力し、閉じてもフォーム1の商品名の欄に反映されません。新規追加用フォームを閉じる時にVBAで”Requery”,”Refresh”もやってみましたがダメでした。商品番号を入力し直すと表示されます。 どうすれば自動で商品名が表示されるようになるか教えてください。 テーブル1(入力用) 1.ID(主キー) 2.商品番号 3.etc. テーブル2(マスタテーブル) 1.商品番号(主キー) 2.商品名 3.etc. クエリ 1.ID(テーブル1) 2.商品番号(テーブル1) 3.商品名(テーブル2) 4.etc.(テーブル2) 5.etc.(テーブル1)

  • Access2002のリレーションについて。

    販売管理のデータベースを作成しています。 『販売店マスターテーブル』 販売店コード(主キー) 販売店名 郵便番号 住所 電話番号 営業担当者コード 『営業担当者テーブル』 営業担当者コード(主キー) 営業担当者名 『販売伝票テーブル』 伝票番号(主キー) 売上日 販売店コード この中で、『販売店マスターテーブル』から、販売店コード,販売店名,郵便番号,住所,電話番号,営業担当者コードを、 『営業担当者テーブル』から、営業担当者名を使って、新しいクエリを作成しました。 そのクエリを基にフォームを作成しましたが、フォームに新規レコードを入力できません。 念のため、販売店コードを『販売伝票テーブル』からとってきたら、新規レコードが入力できるようになりました。 これは、何か主キーの関係で入力できないんでしょうか。 もし、『販売伝票テーブル』から販売店コードをとらなくちゃいけないとしたら、それはナゼでしょうか・・。 初歩的なことで申し訳ありませんが、とても困っています。 どなたかお分かりになる方、教えて下さい。 よろしくお願いします。

  • ACCESS 更新クエリについて

    更新クエリで更新したいのですが、クロス集計クエリの数値を元にテーブルを更新することは出来ないようで、困っています。 なぜそのようなことをしているかと申しますと、 商品品目_個数_コード(主キー) のようにフィールドを持っているのですが、 印刷に関しては品目ごとに印刷したい、ということで 一度クロス集計クエリ(TRANSFORM)で りんご_ばなな_ぶどう_コード(主キー) 数値_数値_数値_数値 のような並びにして、テーブル作成クエリでテーブルを作成し そのテーブルをレポートに使用しています。 数値などが変わった場合その作成したテーブルの数値を 作成元になったクロス集計クエリで更新したいのですが、出来なくて困っています。 テーブル作成クエリで上書きすると、古いデータが消えてしまうため 何か良い方法はないかと思っています。 回答のほどお願いします。

  • accessでコンボボックスとサブフォームでデータ表示したい。

    accessのフォームでデータ検索表示したいのですが? データ表示の検索フォームを作成しようとしています。 まず検索したいテーブルの検索KEYにしたいフィールドを クエリを使い集計し、その結果をコンボボックスで表示して コンボボックスで指定すると、同一フォーム内にサブフォーム もしくはリストボックスで検索結果を表示したいのですが パラメータのわたしかた等が、よくわかりません。 方法を教えていただけないでしょうか? 参考になるサンプル等があれば助かります。 よろしくお願いします。

  • アクセス 数値型にするとフォームの入力ができない

    お世話になります。色々調べたり、実験してみたのですが、分からない点があります。 簡単でいいので、可能性のある原因を教えてください。 アクセス2003です。 ■パターン1  フォームC の入力ができる テーブルA(主キーがオートナンバー型)、その他4つのテーブル(これら5つのテーブルは、参照整合性リレーションで結ぶ) →それらを元にクエリBを作る→クエリBを元にフォームC を作る ■パターン2  フォームC の入力ができない テーブルA(主キーが数値型)、その他4つのテーブル(これら5つのテーブルは、参照整合性リレーションで結ぶ) →それらを元にクエリBを作る→クエリBを元にフォームC を作る 簡単にいうと、テーブルのデータ型によって、入力可否が変わるのです。 なぜ、パターン2は、入力できないのか分かりません。 よろしくお願いします。

  • アクセスのフォームで入力ができない

    Accessの操作が出来る程度なのに、頑張って「社員台帳」たるものを作成し始めました。 テーブルに ・社員基本データ ・公的資格・学歴データ ・略歴・賃金データ を作成し、社員IDをキーにその3つのデータでクエリーとフォームを作成しました。 テーブルの各データではデータの編集及び追加が可能なのですが、フォーム画面で入力が出来ません。 説明不足かもしれませんが、どなたか教えてください。 宜しくお願いいたします。

  • アクセス クエリの重複について。(初心者です)

    一つのフォームに非連結のテキストボックス(入力画面)とリストの中で、管理参照画面みたいな感じで、一覧を並べたいのです。リスト内で選んだ項目が非連結のフォームに入っていくような感じで。。リストに表示する内容はクエリから引っ張ってくるようにしました。テーブルには数字で持たせているので、コンボボックスで表示がされるように、リストボックスの中に列幅2cm;3.808cm;3.808cm;2.508cm;4cm;2.503cm;等と指定して、値集合タイプにテーブル/クエリ、値集合ソースにクエリ名として表示するようにしました。データを3件入力すると、当たり前なのですが、テーブルには3件のレコードがありました。クエリには9件のレコードが表示されています。レコード内で数字を名称として表示できることは出来たのですが、レコード数が増えて保存されるのはどうしてなのでしょうか?テーブルには複数に主キーをもたせてあります。重複するはずないのですが・・。テーブルにはちゃんと入力した分だけ3つの情報が入っているのに、クエリには9件と増えてしまっているのでしょうか?テーブルに1,2,3と入っていたら、クエリには1,2,3,1,2,3,1 ,2,3と入っています。原因はなんなのでしょうか。

  • アクセス2003 計算結果を反映させたい

    当方:XPのoffice2003 です。 アクセスでデータを作っています。 商品名テーブルを作成し、クエリを介して フォームから入力できるようにしています。 たとえば、100g2000円の商品があったとして、 これをgごとに単価を出したいのですが、 (例でいうと、20 という答えを出したい) 本を読んで、フォーム上で自動計算させることは できるのですが、このフォームの数字を そのままテーブルに反映させることはできますか? 集計表を出すときに、クエリで集計表を出して印刷し、 資料にしています。 この集計表に、計算させた単価を表示させたいのですが・・・ 私のやりかたが間違ってるのか、 または違う方法でできるものがあるのか、 教えて頂きたいと思います。 説明不足の部分がありましたら、ご指摘下さい。 よろしくお願いします。

  • access クエリで集計した数値を別クエリで使いたい

    access2003で2000ファイル形式で以下のものを作っています。 テーブル「A」(フィールドは登録番号(主キー)、 書名) 「B」(登録番号(主キー)、 書名) がある。Aの「登録番号の最大値」(100とする)をクエリ(クエリ名「集計クエリ」)で集計して得た。 テーブルBの登録番号(1~30とする)を更新クエリで(1+100 ~ 30+100)に更新したい。そこでデザインビューで登録番号フィールド(テーブルB)の「レコードの更新」欄にビルダーで「[B]![登録番号]+[集計クエリ]![登録番号の最大値]」と入力して実行したら 実行できなかった。(仕方ないので「[B]![登録番号]+100」として実行したら更新できた。)今後もあるので「集計クエリ」で得た値を直接呼んで、更新クエリを実行したいのだが・・・。 わかりにくい質問で恐縮です。ご理解頂けたならば、ご教授ください。

専門家に質問してみよう