
No.11ベストアンサー
- 回答日時:
横から失礼します。
> accsessで顧客コードで氏名を呼び出す
というのが曖昧ですが
フォームで氏名を表示する、ということであれば
非連結のテキストボックスを配置し
コントロールソースに
「生産者コード」がテキスト型なら
= DLookUp("氏名", "生産者テーブル", "生産者コード= '" & [生産者コード]) & "'"
9桁の数字 が 数値型なら
= DLookUp("氏名", "生産者テーブル", "生産者コード= " & Nz([顧客コード],0))
とか。
ありがとうございました。見事に的中して、思った通りの結果を得ることが出来ました。
色々とご丁寧なご教授を頂きました皆様に改めてお礼を申し上げます。誠に有り難うございました。
No.10
- 回答日時:
もしかして、荷受明細テーブルに生産者コードを格納しており、そのコードを参照させて、生産者テーブルから氏名を引き出すと言う形をしようとしてるために、お教えいただいた事が結果にならないのでしょうか?その場合は、荷受明細テーブルの生産者コードと生産者テーブルの生産者コードを結び付けないといけないと言う事でしょうか?フォーム上に設置しているのは、荷受明細側の生産者コードで、そこに入力された数値を生産者テーブルの生産者コードと照合して名前を表示せよと言う事をやりたいのです。浅はかな考えで、dlookupで何処からでも引っ張ってこれると思ってたものですから、説明足らずだったかも知れません。
No.9
- 回答日時:
>フォームで生産者コードの入力があった場合、生産者名を自動で表示する
dlookupを使うなら、、、
フォーム上にtext1 という名前のテキストボックスを配置して、
あとボタンを置いてクリック時のイベントで
MsgBox DLookup("顧客名","テーブル名","顧客コード=" & me.text1)
とすると、顧客名が出てきませんか?
フィールド名はそれぞれ、なおしてください。
また、顧客コードが文字列の場合は、最後のところを、
"顧客コード=’" & me.text1 &”’”)
として、シングルクオートでくくる必要があります。
実際に入っているのは、”顧客コード=’000000001’”
のような形になるべきです。
No.8
- 回答日時:
マスターテーブルのデータの入力方法はこんな感じの連結フォームで行けます
https://sites.google.com/site/hoseidata3/home/06
フォームから、追加クエリを実行する例です
https://www.sk-access.com/syo_query/sqa010_ketsu …
クエリで、テーブルを結合させるには
色々と詳しく教えて頂きありがとうございます。何とかテーブルとフォームの構築は出来ました。やっぱりフォームで生産者コードの入力があった場合、生産者名を自動で表示すると言うのが上手く行きません。パラメータークエリで生産者コードのテキストboxの値を拾う様にとか考えてみましたが、動きません。バージョンも古いので新しいバージョンでご説明頂くとメニューの並びや操作も違って難しいです。後ここだけ解決すれば良いのですが。最新バージョンではここらへんの要望が多い事は簡単にできる様になってるんですかね?この値代入機能は常用機能だと思うのですがね。まぁ後もう少しなので頑張ります。
No.7
- 回答日時:
もうちょっと待っててね、、、
何か参考になりそうなもの探してみるから。
No.6
- 回答日時:
このような状況では、こういう質問サイトでやり取りをしながら作っていくのは非現実的かもしれませんが、、、
アクセスは、いろいろな使い方ができ、人によって作り方が変わるので何が正解というのもありません。
私も、プログラミングは高校生の頃趣味で触っていた程度で専門家ではありませんし、アクセスも
もう、ずいぶん長いことさわっていませんが、クエリ以外は、VBAで書くという方法で使っていました。
(なぜかクエリの実行はADOなどでSQLを実行させるより早く実行できたりすることが多かったため)
なので、私が教えると、普通の人があまり使わないめんどくさい使い方になるかもしれません。
まずは、テーブルですね。
生産者マスター
荷受けマスター
物品マスター (荷受けする物品が複数ある場合は)
荷受データ
最低でも、この程度は必要と思います。
で、マスターテーブルに関しては、基本的にそのデータは手入力することになります。
荷受けデーターに関しては、それぞれのテーブルのデータを利用しながら、入力していくことになると思います。
実際に荷受けデータに入っている情報としては、生産者コードがあれば、十分でそこに生産者の名前を入れる必要はありません。 (それが、RDBというものです。 ただし、入力時には間違いを防ぐために、それが見えたりする状況は必要ですし、伝票などを作り上げる際には、そういう情報を付加することは必要です。 その時は通常は連結クエリなどを使いますが、DLookupなどを使うことも可能です。)
これらを踏まえたうえでテーブルを作成し、「荷受けデータ」のレコードを生成する方法を考えることになります。私は、非連結フォームより、ADOでSQLを実行させるという方法しかやりませんでしたが、非連結フォームから、追加クエリを実行させたり、連結フォームを使ってもできます。 たぶん、非連結フォームから、追加クエリを実行するのが一番無難だと思います。 これは、フォーム上にテキストボックス等を配置しそこに、検索、手入力等で設定した情報を、ボタンなどを押すことによって、それらの値をテーブルにいれるという追加クエリを実行させることによって、新規レコードを生成します。 このフォーム上で、(通常想定する操作は)生産者の名前などから、生産者コードを検索するというものになると思います。
この辺までは、理解できますでしょうか?
ご丁寧なご教授有難うございます。お教えいただいた事は理解できるのですが、それを応用してみると上手くいかないのです。でも光が見えた気がしてます、頑張ってみます、ありがとうございました。
No.5
- 回答日時:
できますよ。
顧客コードが文字列なら、
strCustcode に顧客コードをいれて、
strCustname = DLookUp("顧客名","テーブル名","顧客コード=" & strCustcode)
とすれば、strCustnameに顧客名が格納されるはずです。
実際に、どういう状況から顧客名を参照させたいのかがよくわかりませんので、上記で実装できるのかよくわかりません。 何をする段階で、これをやりたいのですかね?
ありがとうございます。選果日と荷受データを入力する時に生産者コードの入力で名前を自動表示させたいのです。そして、レポート出力時や後からのデータ参照時に格納されている生産者コードが入ると名前が自動表示される形にしたいのです。
No.2
- 回答日時:
バージョンが古すぎる、って気がします。
書籍やネットのサンプルを参考にするとき、困るのではないですか?
最低でも、2003以降を使ったほうがいいと思いますよ。
なお、初心者が無い知恵を絞っても、何も出ません。
Access関連の書籍には、顧客検索とか商品検索などの作成事例が掲載されていたりします。
また、ネットにも検索処理のプログラム事例が探せば見つかると思います。
そういうサンプルプログラムを入力して、そこに書かれたコードの意味を調べながら学習したらいいと思います。
ご教授ありがとうございます。10年ぶりに急に弄る事になって、いざやってみると殆ど忘れてしまって。会社のバージョンが2000なので。会社内で唯一Access経験者が私と言う事で頼まれたのですが、日付の次に生産者があってその下に詳細があると言う形で、入力フォーム上で日付を入力した後、生産者をコードで検索して名前は自動でと言う事をしたいわけですが、上手くいかないのでお伺いしたわけです。未熟ですみません。ただ、勉強してる時間がないので皆様のお力をお借りしたいと思いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access フォームのデータがテー...
-
accsessで顧客コードで氏名を呼...
-
【続続】Access2002で連番のつ...
-
Access2000 更新のタイミング?
-
Access クロス集計クエリについて
-
Access IF文でテーブルに存在し...
-
ADOでレコードを閉じるタイミン...
-
シングルクォーテーションとダ...
-
ACCESS で マクロの中でフィ...
-
データベースの1要素に複数デー...
-
Access 縦(行)のデータを横(列)...
-
Access2000 単票フォーム上の...
-
SQLの抽出方法に悩んでいます(...
-
ワードでの単純作業の効率化に...
-
Access 新規入力画面にするコー...
-
Access リレーションシップの組...
-
エラーが出ます
-
顧客IDを入力すると顧客名や住...
-
Excel 2019 のピボットテーブル...
-
Accessでテーブル名やクエリ名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースの1要素に複数デー...
-
Access フォームのデータがテー...
-
Access 既に開いているフォー...
-
Access VBAでクエリーのレコー...
-
Access IF文でテーブルに存在し...
-
Access 縦(行)のデータを横(列)...
-
Accessデータベースで行と列を...
-
ACCESS で マクロの中でフィ...
-
ADOでレコードを閉じるタイミン...
-
ワードで保存するファイル名の...
-
Accessについて
-
シングルクォーテーションとダ...
-
Accessで名寄せグループの関係...
-
顧客管理に関して
-
Access2000 単票フォーム上の...
-
一発で顧客IDを確認するボタ...
-
ワードでの単純作業の効率化に...
-
エラーが出ます
-
Access クロス集計クエリについて
-
ACCESS2003 Aアクロバットを介...
おすすめ情報
すみません、そもそも論ですが、選果日、生産者、荷受明細と言う大きな分類があって、其々についてテーブルを作成するのは合ってますよね。そこからデータ入力フォームを作成したいのですが、生産者については随時更新したくないのです。追加をする場合は、別のフォームから追加をする事とし、荷受データを入力するフォームでは、生産者コードで氏名を自動表示だけしたいのです。選果日・荷受明細はデータを蓄積します。となると、これらを全て統括したテーブルが必要という事になるのでしょうか?この統括テーブルに生産者コードを受けさせて、生産者テーブルから氏名を持ってくると言う形になるかと思いますが、その方法に悩んでおります。説明が悪く伝わらないかも知れませんが、生産者テーブルは更新しないが、生産者コードで名前を参照したいと言う事です。よろしくお願いします。