• 締切済み
  • すぐに回答を!

ACCESS2000のデータ登録・検索方法

マスタ入力画面を作成しコードを入力しますが、既に登録済みのコードである場合は、該当するレコードを表示して未登録のコードの場合は、新規入力として取り扱う方法を教えてください。 また、登録ボタンによってのみテーブルへ書きこまないようにするにはどうしたら良いのでしょうか? 以上、よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数77
  • ありがとう数3

みんなの回答

  • 回答No.1
  • KojiS
  • ベストアンサー率46% (145/312)

コード入力欄に入力したときにどのように動作するかで変わってきます。考えられるのは、 1.コード入力欄に入力したコードをリアルタイムに検索する 2.コード入力後、ボタンを押したり、次の入力欄に移ったりしたときに検索する。 ということです。 検索自体は、SQLで書けば簡単にできます。 クエリーでいったん直値などで作成後、SQLの表示を使って SQL文を表示してそれをコピーすれば作成できます。このとき、直値を指定したところを変数に置き換えます。 すでにあったものの場合はフィルタを使い、新規レコードの場合は、プロパティを変更するようにします。 > また、登録ボタンによってのみテーブルへ書きこまないようにするにはどうしたら良いのでしょうか? この意味がちょっと分かりづらいのですが、「書き込むようにする」ということでよろしいでしょうか?また、変更したときでも破棄してもいいのでしょうか? そのときは、Form_BeforeUpdateで、Cancelして Undoすればよいでしょう。 以上のキーワードでヘルプを検索してみてください。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • Access2000での更新の仕方

    テーブル(歩率マスタ、ワークテーブル)があり、フォーム(テナントマスタ←これにbtn前のレコード、btn次のレコード、btn修正、btn新規、btn歩合入力…etcのコマンドボタンがある。歩率入力(歩合入力にサブフォームとしてsub歩率入力が張り付いている))サブフォームで規定金額、歩率を入力しそれをいったんワークテーブルに格納しておき、テナントマスタで修正ボタンをクリックされたら時点で部率マスタに登録できるようにしたいんです。またそれぞれのビル区分とテナントコードに一致するものを呼び出したいのです!当然、新規ボタンをクリックされたときはサブフォームの規定金額、歩率は空です! あと注文としてはこれをSQL文でできるみたいなのですが これを使って教えてくださると大変ありがたいです! よろしくお願いします!! ど素人なんてゆってることがわからないとこがあるかと思いますが、なんなりとご注文つけてください!! 歩率マスタ:ビル区分、テナントコード、規定金額、歩率 ワークテーブル:規定金額、歩率

  • ACCESS2000です。

    教えてください。 商品テーブルに以下のフィールドがあるとします。 商品コード、補助コード、入力日、原価 0010,001,20050901,1000 0010,005,20050902,1010 0010,008,20050907,0958 0020,100,20050901,0500 0020,010,20010905,0550 0100,100,20040501,1200 このテーブルから、商品コードごとに1件のレコード(例えば補助コードが最大のものとか入力日が最大のもの)を取得するクエリーはどのように作成すればよいでしょうか?

  • Access2000でフォームを開くときに常に新規レコードで開きたいのですが

    Access2000で、あるイベントに参加した人のデータベースを作りました。 検索用フォームで「氏名」と「生年月日」で検索し、その人の情報を別の フォームで見ることができるようになっています。 該当者がいない場合は、新しいレコードにそのデータを追加します。 検索結果を表示するフォームに個人情報を表示・書き込みできる画面を開く ためのボタンがあるのですが、このボタンをクリックした時に、常に新規 レコードで開きたいのですが、コードはどのように記述すればよろしいの でしょうか? ちなみに、いまは下記のようなコードになっています。 「新規登録ボタン」は個人情報を表示・書き込みできる画面を開くためのボタン 「応募者」は個人情報を表示・書き込みできるフォーム です。 Private Sub 新規登録ボタン_Click() On Error GoTo Err_新規登録ボタン_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "応募者" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_新規登録ボタン_Click: Exit Sub Err_新規登録ボタン_Click: MsgBox Err.Description Resume Exit_新規登録ボタン_Click End Sub

  • Q>access2000でフォーム画面での新規レコード

    access2000でJANテーブルに[janコード][商品名]があります。 フォームでカード形式フォームを作ったのですが、 新しくJANコードを登録する為の新規レコードを表示させたいのですが、 コマンドボタンを作ったのですが、JANコードのセル?に カーソルが自動で行きません。 左下の現在のレコード番号が書いてある、 右側の>*のボタンを押すと、きちんと新規レコードに行って、 カーソルもJANコードのセルに行ってくれるのに・・。 そこで、教えていただきたいのですが、 テーブルを開くと、常に新しいレコードを表示させる。 もしくは、 フォーム内に作ったボタンを押すと、>*のボタンを押した時と 同じようになる方法をご存知の方いらっしゃいましたら、 よろしくお願いします。 (私はお礼&ポイント発行は必ずしていますのでよろしくお願いします。)

  • ACCESS2000で新規レコードを自動表示

    お願いします。 ACCESS2000を使用しています。 フォームを使用してレコードにデータを登録したいのですが、 フォームからテーブルを開いた時に常に新規レコードが表示されるようにできませんか? 通常ですと、1レコードからの表示になると思います。 (レコードの移動ボタンを消して、新規レコードのみの表示にさせたいのです。)

  • Access2000で重複データに・・・

    Access2000の重複データの処理について質問です。 あるフィールドの重複レコードを検索し、該当するレコードの別フィールドに「●」をつけようとしています。ただ、重複する最初のレコードには「●」をつけたくないのです。 例えば  aaa ・・・ (1)  bbb  aaa ・・・ (2)  ccc  aaa ・・・ (3)  eee というフィールドだった場合、(1)には「●」をつけずに(2)以降にのみつけたいのです。 重複クエリで重複レコードを抽出して重複テーブル作成→重複テーブルと元テーブルを組み合わせて更新クエリ作成という方法でやったのですが、そうすると(1)にも「●」がついてきます。(当然ですが・・・) 何か名案があれば教えてください。 やはり、VBAを使わないと無理でしょうか・・・?

  • ACCESS2000のコンボボックスについて

    OS:WindowsXP AP:ACCESS2000 テーブルと連結で帳票フォームを作成しています。 フォームヘッダー : 検索用のテキストボックス、コンボボックス、ラジオボタン等配置           (非連結オブジェクト) 詳細 : 上記検索条件の値に合致したものを抽出し一覧表示 フォームプロパティ : 更新の許可「はい」、削除の許可「はい」、追加の許可「はい」             レコードセット「スナップショット」 フォームヘッダーにて検索条件を入力し、検索を行います。 該当レコードがなしの結果となった場合にそのままの状態で フォームヘッダーの検索条件に入っている値をクリアし フォームヘッダーのコンボボックスにて値を選択すると値の表示が消えてしまいます。 消えているのは表示のみのようで検索ボタン押下で抽出を行うと該当レコードが抽出されます。 この表示を正常にさせるようにするにはどうしたらよいでしょうか? RequeryやRepaintをコードに追加したのですがうまくいきません。 他のサイトでも検索をかけたのですが今のところ該当するような記事に辿り着けていません。 正常動作が確認できているのは下記のパターンの時となります。 ・フォームプロパティにてレコードセットがダイナセット、追加の許可がはいの場合  (更新の許可、削除の許可は「はい」でも「いいえ」でもどちらでもOK)  ※運用上、一覧参照画面としたいので追加の許可は「いいえ」としたいですが「いいえ」の場合はNGでした ・レコードカウントが1件以上の場合 解決方法を知っていらっしゃる方いらっしゃいますでしょうか? 宜しくお願い致します。

  • Accessフォームからのデータ登録について

     表題ではなんのことかわわからないと思います。 詳しく説明するのでみていただけますか。 顧客テーブルにレコードを追加、変更するため下記のようにしました。 (1)メインメニューで「顧客登録」ボタンをクリックする。 (2)顧客登録フォームを開く。この際埋め込みマクロのWhere条件式で [顧客コード]=[顧客コードは?]と指定する。 (3)該当のレコードがあればレコード内容が顧客登録フォーム上に表示される。   該当のレコードがなければ(新規登録)空の顧客登録フォームが表示される。 この時、フォーム上の顧客コード欄もブランクのため再度顧客コードを入力する ことになります。 二度手間を避けるため、一度入力した顧客コードを空のフォーム上に表示させるには どうすればいいでしょうか。 それから別の質問になるかもしれませんが、当初は(2)では単に空のこ登録フォームを 表示させ、顧客コードを入力しEnterキーを押した時に(3)に進むようにするつもりでした。 (通常はこちらのやり方かと思いますが) しかし(2)から(3)へ進む際の処理の仕方がわからず最初に記したやり方にしました。 こちらのやり方でするにはどうすればよいかも教えていただければ幸いです。

  • Access2000での質問

    テーブル名=MDGTBL フィールド(CODE,MSGTEXT,BUTTON,ICON,POSITION) を作り、ここのMSGTEXTフィールドにメッセージを書いています! それぞれメッセージが必要なときはこのテーブルを参照してメッセージを出したいのですがどうすればいいのですか? 例えば、 検索したときに該当するレコードがない場合、 CODE:1 MSGTEXT:該当するレコードがありません! というメッセージを出したいのです! 普通にコードをこう書けばいいのですが、 Msgbox "該当するレコードがありません!" としたいのではありません! どうかお願いします!

  • ACCESS2000で質問ですが(初心者です)

    グループ(コード、グループ名など) 商品のマスター(コード、単価など) のマスターを作成して 入力マスターとリレーションシップで結び付けました。 商品のコードが決まっていて単価が固定でないものが 混在しているときに 単価部分をスペースでマスターに登録したのですが 入力するときにコードで単価を手で入力しようと すると指定した項目はリストにありませんとなってしまいました。入力で変更することはできないのでしょうか・・? わかりにくいかもしれませんがよろしくお願いします。