- ベストアンサー
アクセスでの入力を簡単に行いたいです
よろしくお願いします。 t商品番号というテーブルがあります。 フィールドは『注文番号』と『商品名』です。 今フォームを新たにつくり、テキストボックス『注文番号』と『商品名』を作りました。 注文番号を入れると商品番号が自動で入るように、テキストボックス商品名のコントロールソースに =DLookUp("商品名","t商品番号","注文番号=" & [注文番号]) と入れましたが、#Errorとでて、注文番号をいれても商品番号が自動で入力されません。 ご意見をよろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
テーブルは ID 注文番号 商品 1 1 りんご 2 2 梨 3 3 柿 4 5 ぶどう ーー フォームを作りました。2つのテキストボックスを貼り付けました。 ラベルは テキスト0 (0は半角) テキスト2 となっています。 テキスト2のプロパティを開き、コントロールソースに =DLookUp("商品","t商品番号","注文番号=" & [テキスト0]) と入れました。 表示ーフォームビューで テキスト0 に1を入れENTERを入れると、テキスト2に「りんご」と出ました。 ーー 質問の ","注文番号=" & [注文番号]) の右あたりが原因ではないですか。
その他の回答 (4)
Dlookupの部分は、もし注文番号フィールドが文字型なら、 =DLookUp("商品名","t商品番号","注文番号='" & [注文番号] & "'") と、「'」で括る必要があります。 また、注文番号を入力したら、商品名が表示されるようにするには、 #4さんが言われているように、テキストボックスの「更新後イベントプロシージャ」に書かなくてはなりません。 従って、商品名テキストボックスのコントロールソースはブランクにしておきます。
- GigaMAX
- ベストアンサー率72% (589/814)
同じような処理を行ったことがあります。 私の方法は以下の通りです。 商品名ではなく注文番号のイベント→更新後処理に以下のVBAを記述します。 Private Sub 注文番号_AfterUpdate() Me![商品名] = DLookup("[商品名]","[t商品番号]","[注文番号]=Forms![作成したフォーム名]![注文番号]") End Sub
- CHRONOS_0
- ベストアンサー率54% (457/838)
>作ろうとしているのは商品検索用のフォームです。 検索用フォームだとDLookupは関係ないですね それに最初の質問では検索なんて言ってませんよ >入力を簡単に行いたいです と言っていますが、検索なの?入力なの?それとも・・・? それによって回答が全く変わってきます
- CHRONOS_0
- ベストアンサー率54% (457/838)
データベースの基本的なところで誤解(あるいは理解不足)があるようですよ 質問は「t商品番号」への入力の話でしょうか だとすると注文番号というのが変ですね[商品番号]がでてこない [注文]を記録していくテーブルなら[t注文]でなきゃだめなのでは 注文のデータベースなら [商品マスタ](商品番号、商品名、・・・) [顧客マスタ](顧客番号、顧客名、連絡先、・・・) [注文](注文番号、注文日、顧客番号、商品番号、数量、・・・) のようなテーブル構造にします で、質問の様子からは上の注文テーブルに商品名フィールドも設け 商品番号を入力したら商品名も自動的にはいって欲しいというもののように推測されますが これは初心者(特にExcelからの転向者)がよくする質問ですが データベースではこのようなことはやりません 注文テーブルには商品番号だけを格納し商品名は格納しないのです ですから質問のようなことをやる必要はありません この辺データベースの基本で非常に大切なところです テーブルの作り方、正規化、リレーションシップ、参照整合性、クエリ などについてよく勉強してください この辺を理解せずにデータベースは作れません
補足
補足させていただきます。 作ろうとしているのは商品検索用のフォームです。 『注文番号』を入れると、自動的に『商品名』が出て、 それを印刷して次へ回す。 これを実行したいのです。 よろしくお願いします。
補足
アドバイス有難うございます。 う~~~ん、上手く行きません。 もう少し調べてみます。