• ベストアンサー

ACCESSでの入力規則について

現在商品の棚卸しをしているのですが 商品にはそれぞれ番号が付番(バーコード)されています。 それをフォームにてバーコードで読んでいます。 必要なものだけの番号のリストがテーブルにあるのですが、 リストに載っていない番号を読んだ時 すぐにエラーメッセージが出るようにするにはどうしたらいいでしょうか? ご教授のほど、よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

テーブル名-リストの入ったテーブルの名前 フィールド名-リストの入ったテーブルの番号の項目 コントロール名-フォーム上の番号を入れるテキストコントロール だとして、テキストコントロールの更新前処理に入れるといけるかな?と思います。_(アンダーバー)で改行なので実際は3行です。 DLookupを使ってるので何万件ともなると時間がかかるかもです。 If IsNull(DLookup("フィールド名", "テーブル名", "コントロール名=" & "'" & [コントロール名] & "'")) Then _ MsgBox ("リストにありません") _ End If

nikasen
質問者

お礼

ご回答のほど有り難うございます。 早速試してみたのですが初心者故エラーで上手くいきませんでした; フォームの更新前処理に教えて頂いた関数を設定すれば宜しいのでしょうか? お手数をお掛けいたしますが、よろしくおねがいいたします。

その他の回答 (1)

回答No.2

説明しにくいんですが、たとえば下のサイトで(1)と(2)をすると、 Private Sub ・・・ End Sub が出るので、その間に先ほどの3行ののコードを入れるということです。

参考URL:
http://www.serpress.co.jp/access/vba006.html
nikasen
質問者

お礼

有り難うございます! 無事設定することができました。

関連するQ&A

  • アクセスでの入力を簡単に行いたいです

    よろしくお願いします。 t商品番号というテーブルがあります。 フィールドは『注文番号』と『商品名』です。 今フォームを新たにつくり、テキストボックス『注文番号』と『商品名』を作りました。 注文番号を入れると商品番号が自動で入るように、テキストボックス商品名のコントロールソースに =DLookUp("商品名","t商品番号","注文番号=" & [注文番号]) と入れましたが、#Errorとでて、注文番号をいれても商品番号が自動で入力されません。 ご意見をよろしくお願いします。

  • 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)

  • アクセスについて

    アクセス初心者です。 アクセスで毎月入ってくる商品に商品番号を付与しようと思っています。 商品リストテーブルには   フィールド1→商品名   フィールド2→商品番号 商品一覧テーブル    フィールド1→商品名(毎月100件程入る) この2つのテーブルから 商品番号付与クエリーを作成しました。 (フィールド1同士を繋ぎ、フィールド2の商品番号を引っ張ってくる) 但し、商品一覧テーブルに入ってくる商品の中で、まだ商品リストテーブルに登録されていない商品があります。その時、クエリーでは、その商品は表示されません。 どうにか登録されていない商品があった場合に、エラーと表示できるか、又は登録されていない商品を抽出するようなクエリーの作り方を教えて下さい。 よろしくお願いします。 分かりづらくてスミマセン・・・

  • access 検索結果をテキストボックスに表示させる方法

    過去の質問見たのですが、どうもうまくできません。 現在の状況ですが、 「商品」「詳細」テーブルがあります。 各レコードの商品にはユニークなコードを付番してあります。 現在、詳細フォームを作成中です。 この、詳細フォーム上にテキストボックスを作成、コード入力をします。 次に検索ボタンを押した時、同じ詳細フォーム上の「名称」「規格」・・などのフィールドに商品テーブルの内容を自動入力させたいのです。 意味、わかりますでしょうか。 なんか、色々試して混乱してきてしまいました。 初心者です。よろしくお願いします。

  • ACCESS2010 NW-7 バーコードについて

    今、ACCESS2010にて製品番号をバーコードを作っています NW-7を使って作成しているのですが たとえば 製品番号00000001と番号があるとします バーコードに変換すると a1aにしかなりません バーコードをa00000001aにできる方法を御教示ください。 現在 テーブル フォームの書式は00000000としています 画像もお送りしますので ご覧ください よろしくねがいします

  • ACCESS2002の入力値からフィルタをかける

    はじめまして 会社で商品マスタという、データベースのテーブルを持っています。 テーブルから、フォームフィルタを使って特定の番号・データを持ったものだけ抽出して表示する方法をよく使っていてわかるのですが、テーブルを直接触るので危険と思っています。 そこで、次のようなフォーム画面を作って誰でも抽出できるように運用しようとしています。 (抽出クエリを個々に作ってもらう案もありましたが・・実用的ではないので却下されてしまいました。) まず、フォーム画面に非連結のテキストボックス5個とコマンドボックス1個を設置して テキストボックスの5個の内、1個でも入力がある状態で[cmd]を押すと テキストボックスの内容で抽出したクエリを表示するという物を作りたいと思っています。 (テキストボックス5個全て入力した場合は、入力があるごとにandにしようと思っています。) ま た、5個全て入力がない状態で[cmd]を押したら、エラーメッセージを出したいと考えています。 フォームのデータ テキストボックス:[Tx1],[Tx2],[Tx3 ],[Tx4],[Tx5] コマンドスイッチ:[cmd] テーブルのデータ テーブル:[tb1],[tb2],[tb3],[tb4],[tb5],[tb6],[tb7],[tb8],[tb9] ボタンは、フォームの実行を選択しています。が、うまくいきません。 いろいろググっているのですが、ACCESS初心者ですので、『これが参考になる』過去ログとか、 『このHPが』とかもわかりません。 どなたかご教授願えないでしょうか? 細かく教えていただければ幸いです。

  • Access2002 フォームからのレコード入力の成功/不成功

    いつもお世話になっております。 早速ですが、従業員マスタテーブルがあり、それを元に従業員の情報を入力するフォームを作成しました。 従業員マスタテーブルは、「社員番号」だけをキーにしています。 例えば、新入社員のデータを、完全に新規に入力する場合、うまく行きます。 また、すでにいる社員の、「社員番号以外」のフィールドを更新することもできます。 しかし、社員番号が既存のものとかぶるような新規登録、あるいは情報変更に関しては、入力用フォーム上では正常終了したように見えますが、実際の従業員マスタテーブルをチェックしてみると、変更はされていません。 ですので、フォームしか触れないユーザは、自分の変更、新規追加がうまく行ったのかどうか、テーブルが見られないのでわからない、という状況になっています。 仕様要求としては、新規であれ、情報変更であれ、既存の社員番号に重なる場合はメッセージボックスで「更新失敗」を表示したいのです。 If Exist・・・のような分岐を情報を入力するフォームの「閉じる」ボタンの裏に設けたいのですが、やり方がイマイチわかっておりません。 ご存知の方がいらっしゃれば、ご教授、よろしくお願いします。 --------------------------------------------------------------- <従業員マスタ> ・社員番号・・・テキスト ・氏名・・・テキスト <仕様要求> 社員番号「0001」と「0002」の社員が存在する場合・・・ ・情報入力画面で、「0001」の社員の社員番号を「0002」に変更しようとすると、エラーメッセージ表示 ・新規情報入力(新入社員など)の際、社員番号が「0001」や「0002」の社員として登録しようとすると、エラーメッセージ表示 以上、お時間のあるときによろしくお願いします。

  • Access パラメータクエリ

    Access97です 更新クエリを作っています。 「テーブルA」の「商品番号」フィールドを一括更新するようにしています。 ところが、更新したい内容(商品番号)が毎回変わるので、現在デザインビューの「レコードの更新」セルに「パラメータ」を設定しています。 が、その都度バラメータダイアログボックスに「商品番号」を入力する手間を効率化したいのです。 リストボックスかコンボボックスのような仕組みで「商品番号」を一覧から選択できるようにしたいのですが。 例えば、「テーブルA」の「商品番号」フィールドが、フォーム上の「商品番号の一覧」から選択した「123456」という番号に更新されるように、、という流れです。

  • Access DLOOKUP使用して重複入力を可能にする方法

    Accessのフォームで個人データを入力するよう、色々設定している最中ですが、 重複データを残したいのに、 エラー等出て、どうも上手くいきません・・・>< Accessに詳しい方、どうか教えてください!!!!!!! <現在の設定> ---テーブル「個人リスト」--- ・個人ID(オートナンバー) ・姓 ・名 ・生年月日 ・前回の記録 フォームにてじゃんじゃか入力中に、以前に入力した同一の姓・名・生年月日の人を、 下記設定でわかるようにしました。 (ちなみにこれはある方から教えていただいたものです) ---フォーム「個人リストフォーム」--- (更新前処理:生年月日にて) work1 = DLookup("個人ID", "個人リスト", "生年月日 = #" & Forms!個人リストフォーム!生年月日 & "#" & " AND 姓 = '" & Forms!個人リストフォーム!姓 & "' AND 名 = '" & Forms!個人リストフォーム!名 & "'") If IsNull(work1) Then '重複データが無い場合は NULLが返ります else  msgbox("個人ID=" & work1 & "に同じ人がいます")  end if これで、同一の人がいたらメッセージで以前入力時の個人IDが出ます。 *私のしたいこと* (1)同一の人は新個人IDを取って入力したい。 (2)上記メッセージが出たら、その場で前回のデータ(フォーム)を閲覧できるようにしたい。   ※現在、閲覧しようとするとエラーが出ます。   エラー「インデックス、主キー、またはリレーションシップで値が重複しているので、テーブルを変更できませんでした。      重複の値のあるフィールドの値を変更するか、インデックスを削除してください。または重複する値を使用できるように再定義してください」   ※一度エラーが出ると、入力した姓・名・生年月日を書き換えようとしても、同じエラーが出て書き換えできない。。 (3)できることなら、以前の入力個人IDを「前回の記録」に反映させるようにしたい。   例)前回の記録 [ID858、ID1085] ※何度でも・・・ (4)できることなら!(2)前回のデータ(フォーム)が別画面でぱっと出るようにしたい!  こんな無謀?な希望をかなえてくれる方、是非是非ご伝授ください! よろしくお願いいたします!

  • accessについて教えてください

    データベースソフト【アクセス】のエラーメッセージについて教えてください 独学でアクセスを勉強しています。 アクセスのテキストを辿りながら売上管理のフォームを作成しました 3つのテーブルがありリレーションさせています (1)フォームで商品登録フォームをテーブルを元にオートフォームで作成しました フォームを閉じるボタンを設定し実行してみたところ。。。 【イベントプロパティに設定した式 クリック時 でエラーが発生しました:名前が適切でありません:終了_Click *マクロ名、ユーザー定義関数名、[イベントプロシージャ]以外の式が指定されています *関数、イベント、マクロの評価でエラーが発生しました】 以上のメッセージが表示されました テキストの解答とプロパティと設定は全て同じでした リレーションシップも参照整合性も設定は全て同じです (2)上記のエラーメッセージ以外に 上記と同じフォームから新しいデータを入力をしてみたらこちらもエラーメッセージが出ました 【リレーションシップを設定しているテーブルがあるためレコードを削除または更新ができません】 という内容です たまに出るメッセージなのですが これまではテーブルのフィールド名が違っていて、訂正すると新レコードの入力ができました 今回も色々確認してみましたが理由がわかりません アクセスを業務で使用したことがないためエラーの対処方法がわかりません ホームページや書店で色々探してみましたが理由がまったくわかしません 初心者な質問なのかもと思いますが お分かりのかたがいらっしゃればアドバイスお願いします

専門家に質問してみよう