部品マスターテーブル内に300件以上のデータがあります。
部品マスターテーブル
品ID  品区分  品コード  品名  ****  ****  ・    a  ・ b *製品仕様のサブフォーム内に部品構成を作るのですが 製品仕様フォーム  製品コード 999   製品名 ZZZ    構成 sub   999  品ID 品区分 品コード 品名  員数 ****   ・   ・ 現在品コードをコンボBOXのリストから入力していますが 300件以上表示され見つけ出すのが大変です。 品区分のカテゴリでANDの絞り込みができれば表示件数は1/10に減ります。レコード入力の際サブフォームからの入力時にできないものでしょうか? 

このQ&Aに関連する最新のQ&A

A 回答 (7件)

「部品ID/CD」の「コントロールソース」を空欄にすると全行が同じになりますので、もともとのデータ項目に戻してください。



部品名以降の列の内容は、区分とコードだけを取り上げて他の項目は省略してクエリビルダを作成しましたので、必要に応じて項目を追加しカスタマイズしてください。

新規にレコードの追加ができないのは、クエリーのリレーションの構成を見直してみてください。
もともと追加できていないと思います。
    • good
    • 0

まず既存のクエリーを流用されない方がいいと思います。


シンプルに作成しましょう。

「部品ID/CD」の「コントロールソース」を空欄にします。
値集合ソースの欄に記述されている既存のクエリー名を削除します。
空欄になったところで右の「・・・」ボタンを押下。
「T部品マスター」を追加。
(※必要に応じて他のテーブルとリレーションを取る)
「部品区分」と「社内品CD」だけをドロップダウン。
「部品区分」の抽出条件に「=[テキスト26]」と記述し「表示」のチェックをはずす。
以上でクエリビルダの右上のXをクリックしプロパティーの設定を保存する。

「区分」フィールドの更新後処理のイベントに下記記述。
Private Sub テキスト26_AfterUpdate()
部品ID.SetFocus
部品ID.Requery
部品ID.Dropdown
End Sub

編集ロックをはずす。

以上です。
    • good
    • 0
この回答へのお礼

お世話様です。
アドバイスの通りやってみましたすると
区分設定後に、部品IDから該当品の社内品コードのリストが自動的にdropdownする様になりました。
しかし、ほかの部分で変な動作をしています。
*社内品コードを選ぶと全ての行のコードが同じ表示になってしまう。
*部品名以降の列の内容が正しく表示されない(前の内容の表示のまま)
*サブフォームに新しい行の追加ができない
何処かでリレーションが変に影響しているのかな???

お礼日時:2005/04/07 13:00

コンボ2で品区分を選択した瞬間にコンボ1に該当の品区分に一致する品コード一覧のコンボボックスを表示させたいのであれば・・・



コンボ2の「更新後処理」のイベントに下記を記述してください。

Private Sub コンボ2_AfterUpdate()
[コンボ1].SetFocus
[コンボ1].Requery
[コンボ1].Dropdown
End Sub

もちろん、フォームが違う場合にはフォーム名の指定から記述してくださいね。
    • good
    • 0
この回答へのお礼

お世話になってます。
そうなんです、こんな風にしたかったのです。
品区分をコンボに変え値ソースを品区分マスター
にしました。
品区分のイベントから更新後処理に以下のコード記述。
Private Sub 品区分_AfterUpdate()
部品ID.SetFocus
部品ID.Requery
部品ID.Dropdown
End Sub
品区分をクリック後に品コードが自動でDropdownリスト表示されましたが
品区分の設定条件が品コード(部品ID)のドロップダウンに反映されず、全件出てきました。
VBAとかコードを使ったことない物で良くわかりませんでした。
もしできましたら、この部分をhomePageにUP(画像掲示板)しましたので診てもれえれば幸いです。
http://tcom.dip.jp

お礼日時:2005/04/05 20:12

もしかして、左右にスクロールすれば品コードが現れないですか?


ちなみにフィールドを思いっきり広げてみてください。
すべての列が表示されると思いますよ。

もし、品コードだけを表示させたいのであればクエリーで品コード以外の「表示」のチェックをはずしてください。
もしくは、列幅0;0;0;0;2にしてください。

Sample:

コンボボックス名「コンボ1」の値集合ソースのクエリーで「品コード」「品区分」を指定し、品区分の抽出条件を「Like ("*" & [コンボ1] & "*")」とし「表示」のチェックをはずす。

「コンボ1」の「キークリック時」のイベントで下記VBAを記述

Private Sub コンボ1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyRight Then
DoCmd.RunCommand acCmdSaveRecord
Me.[コンボ1].Requery
Me.[コンボ1].Dropdown
End If
End Sub

って感じです。

別のコンボボックス「コンボ2」で品区分を選択し、「コンボ1」で該当の品区分に属する品コードの一覧表示をさせるには、上記のSampleの・・・

「コンボ1」の値集合ソースのクエリーの品区分の抽出条件を「=[コンボ2]」とすればよいです。
    • good
    • 0

コンボボックスの列数をたとえば2(品コード、品区分)にして、コンボボックスの一覧に2項目を表示されてますか?



そうすれば、品区分で絞り込むことができます。
    • good
    • 0
この回答へのお礼

何度もアドバイス頂き、有難うございます。
コンボBOXに2行表示(品コード・品区分)を表示させ品区分で絞り込むことができました、 でも選択後に表示されるのが品区分の値でした 品コードを表示させたかったのですが?? subformのソース(クエリのフィールド順序)は 部品ID・品区分・分類・部品名・品コード・*** コンボboxのプロパティは 列数5 列幅0;1;0;0;2 連結列1です。 ドロップダウンリストの表示と選択後box内に表示をさせるフィールドの指定がわかりません  絞込みは、同一のコンボbox内でしかできないんですか

お礼日時:2005/04/05 13:06

つまり・・・


品区分の中から、入力した文字列をキーにしてあいまい検索をしてその一覧をコンボボックスとして自動表示することは可能です。

1.コンボボックスの入力フィールドに検索文字列入力
  (何文字でも、検索したい文字のどの位置でも可)
2.「→」キー押す(「→」でなくても何のキーでも可)
3.Requery、Dropdownで自動的に絞り込んだ一覧をコンボボックスに表示する。
    • good
    • 0

ANDの絞込みの具体例がないとやり方が変わってくるのですが。



こんなやり方でもいいですか?
コンボボックスの入力フィールドに検索したい文字(たとえば、「ar」を入力し「→」キーを押すと「ar」の文字が含まれるリストをすべてコンボボックスとして表示する。
「sugar,garden,artist」とか。

つまり絞り込み検索ができるわけです。
    • good
    • 0
この回答へのお礼

PC?回線?の調子が変です、何回も送っていたらごめんなさい。
comboBOXに入力し同じようコードを抽出できました、ありがとうございます。

でも、品区分がその他の部品のカテゴリではコードに規則性はなく同手法が使えません

品区分でカテゴリを絞って、カテゴリ内から目的の品コートを見つけることができたら楽ですね。゛

お礼日時:2005/04/04 15:05

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qフランス語のsouについて

フランス語のsouについて、英語での解説です。

Un sou is an ancient French coin, which no longer exists. Interstingly, the Latin root of sou ― solidus ― is the same word that gave the English their “solidi” in the predecimal currency system (£.s.d). Today, le sou is used in familiar langauge to mean “money”. Il est pres de ses sous.― He is close to his money(i.e. miserly). Je n'ai pas un sou.― I haven't a penny.
Another way of saying je ne sais pas un sou would be je suis fauche, meaning “I'm broke”(from the verb faucher, to reap).

そこで質問です。

(1)ラテン語のsolidusの元の意味は何でしょう?
(2)英語のsolidiはどのくらい昔に使われていたんでしょうか? また、predecimal currency systemとはどんな数え方をしていたんでしょうか?
(3)英語で"be close to one's money"という表現は一般的なんでしょうか?
(4)brokeというのは breakから派生していると思うんですが、breakの過去分詞はbrokenですよね。それとも breakとは無関係なんでしょうか?

フランス語のsouについて、英語での解説です。

Un sou is an ancient French coin, which no longer exists. Interstingly, the Latin root of sou ― solidus ― is the same word that gave the English their “solidi” in the predecimal currency system (£.s.d). Today, le sou is used in familiar langauge to mean “money”. Il est pres de ses sous.― He is close to his money(i.e. miserly). Je n'ai pas un sou.― I haven't a penny.
Another way of saying je ne sais pas un sou would be je sui...続きを読む

Aベストアンサー

(1)金貨
(2)英語の、という意味がわかりませんが、ソリディ通貨は14世紀からフランス革命前、細かくは1793年の10進法度量衡採用までじゃないでしょうか。
predecimal currency systemは、12進法です。重量の計測法です。ただし、国や時代によって釣り合う重さの単位は違うようです。
1solidus =12denarii  
(3)それは、フランス語で、けちという意味です。英訳はあくまで字並びどおりに訳してみせただけと思われます。
(4)breakの古語の過去分詞ですね。意味は「文無し」、
フランス語の部分、「文無し」は je ne sais pas un sou ではなく、je n'ai pas un sou でしょうね。なぜ違って書かれているのか理由がわかりませんが。

Qaccessのフォームで製品番号と製品名を表示させたい

こんにちは。いつもお世話になります。突然で申し訳ありませんがすみません教えてください。

テーブル1に製品番号と製品名が書いてあり、それを基にフォームを作成します。
そのフォーム内に、製品番号をプルダウンで選択できるようにして、選択した製品番号をその隣にあるテキストボックスに表示させたいのです。

すみません初歩で。よろしくおねがいします。

Aベストアンサー

>製品番号をプルダウンで選択できるようにして選択した
>製品番号をその隣にあるテキストボックスに表示
プルダウンというのをコンボボックスとして
Cmb1という名前でテーブル1を基にコンボボックスを作り[製品番号][製品名]の順で表示するようにします。製品名を表示するテキストボックスをText1とした場合。
そのCmb1のプロパティを開きイベントの更新後処理に下記の記述をします。

Private Sub Cmb1_AfterUpdate()
Text1 = Cmb1.Column(1)
End Sub

これでCmb1で製品番号を選択するとText1に製品名が表示されます。
フォーム上の表示のみですが。

Qフランス語 en と sous 

前置詞の勉強をしてます。

1.La plupart des economistes ont passe le phenomene de l'inflation (sous) silence.

2.Nous regardions les tableaux (en) silence.

1. sous silence 言及しない
2. en silence  無言で

上記の2つの例の使い分けがはっきりしません。
例題1の場合は (en) silence でも正解なのではないでしょうか?

Aベストアンサー

passer qch sous silence「~を見逃す・に気づかない・を黙殺する」という成句をなすので sous を他のものに変えることはできません。*passer qch en silence「無言で~を passer する」とは考えられないかと思うかもしれませんが、今度は「インフレの現象を」と上手く結びつく passer の意味が見つかりません。

sous silence はほぼこの成句だけで使われると言ってもよく、成句というものは文法的にどうのというより変えられないものと考えてください。類例:réduire/ condamner qn au silence「(人)の発言を封じる」au silence もこの成句だけです。

en silence も成句ですがこの2語だけなのでいろいろなところで使えます。

Q帳票フォームで製品写真を表示するには?

帳票フォームで製品写真を表示しようとしています。
写真はmdbと同じフォルダ内に作ったphotoという名前のフォルダに
入っています。
写真を読み込むとこまではできたのですが、
全てのレコードの写真が
アクティブになったレコードの製品の写真になってしまいます。

写真を読み込むイベントプロシージャを「レコード移動時」に
設置しているます。単票フォームのときにはレコードを移動するときに
製品のデータも写真も入れ替わるので問題なかったのですが、
帳票フォームにすると製品データが一覧表示されているのに
まず1レコード目の製品の写真が全てのレコードに表示され、
レコードを移動するとどの製品の写真も一斉にアクティブに
なっているレコードの製品の写真になってしまいます。
これでは使えません。

イベントプロシージャを設置する場所が悪いのでは
ないかと思いますがどこに置いたらいいのか分かりません。
ご指導ください。

現在の状況

帳票型の製品一覧フォームの詳細に[写真]というイメージコントロールを置き、
写真の名前は[写真パス]テーブルの[パス]フィールドに入っています。
写真はmdbと同じフォルダ内に作ったphotoという名前のフォルダに
入っています。
製品一覧フォームのレコード移動時に下のイベントプロシージャを
設置しています。
写真の読み込みはうまくいっています。
If IsNull(Me![パス]) = False Then
Me![写真].Visible = True
Forms!製品一覧!写真.Picture = Left(CurrentDb.Name, InStrRev(CurrentDb.Name, "\", , vbTextCompare)) & "photo\" & Forms!製品一覧!パス
Else
Me![写真].Visible = False
End If

帳票フォームで製品写真を表示しようとしています。
写真はmdbと同じフォルダ内に作ったphotoという名前のフォルダに
入っています。
写真を読み込むとこまではできたのですが、
全てのレコードの写真が
アクティブになったレコードの製品の写真になってしまいます。

写真を読み込むイベントプロシージャを「レコード移動時」に
設置しているます。単票フォームのときにはレコードを移動するときに
製品のデータも写真も入れ替わるので問題なかったのですが、
帳票フォームにすると製品データが一覧表...続きを読む

Aベストアンサー

「mdb」とあるので、Microsoft Access の話だと思いますが、バージョンは
何でしょうか。
バージョンによって回答がまったく変わってきますので、バージョン情報が
非常に重要になってきます。

Access 2007 以降であれば、イメージ コントロールに [コントロールソース]
プロパティが追加されたはずなので、そちらを試してみるとよいでしょう。

Access 2003 以前であれば、下記を試してみるとよいでしょう。

OleImage 関数 - 表形式(帳票)フォームにパスから画像を表示する方法 | YU-TANG's MS-Access Discovery
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsFrmOleImage.html

OleImage 関数を使うなら、VBA のコーディングは基本的に不要です
(特殊なケースでは数行のコーディングが必要になる場合もあります)。
「使用上の注意」をよく読んだ上で、ニーズにマッチしないと思われる
場合は、他の方の回答を採用してください。

参考URL:http://www.f3.dion.ne.jp/~element/msaccess/AcTipsFrmOleImage.html

「mdb」とあるので、Microsoft Access の話だと思いますが、バージョンは
何でしょうか。
バージョンによって回答がまったく変わってきますので、バージョン情報が
非常に重要になってきます。

Access 2007 以降であれば、イメージ コントロールに [コントロールソース]
プロパティが追加されたはずなので、そちらを試してみるとよいでしょう。

Access 2003 以前であれば、下記を試してみるとよいでしょう。

OleImage 関数 - 表形式(帳票)フォームにパスから画像を表示する方法 | YU-TANG's MS-Acces...続きを読む

QAulnay-sous-BoisとGerard Gaudronの読み方、訳し方。フランス語?

こんばんは。
タイトル通りですが、「Aulnay-sous-Bois」と「Gerard Gaudron」の読み方、訳し方を教えて下さい。いちよ英字新聞に載っていたのですが、フランス語?だと思うんです。「Gerard Gaudron」=「ジェラルドさん」というのは分かりますが、苗字が読めません・・・。フランス名ですか?
「Gerard Gaudron」さんは「Aulnay-sous-Bois」の市長だと思います。

よろしくお願いしますm(_ _)m

Aベストアンサー

これらは地名と人名ですので、訳をしません。

Aulnay-sous-Bois オルネー・スー・ボワ
Gerard Gaudron ジェラール・ゴードロン

英字新聞を読んでないので分かりませんが、先のフランスでの暴動の際に、この市長が何か発言をしたのでしょうね。フランス語では末尾の子音は例外を除いては発音をしないので、「ジェラルド」ではなく「ジェラール」となります。

QAccess2003・フォーム・データ抽出コードについて

Access2003 コンボボックスで選択されたデータの、
他のレコードをテキストボックスに抽出したいです。

id,no1,no2=integer name=varchar
-----test table-----
id | no1 | no2 | name |
-----------------------
1 | 2 | 10 | abc |

例えばコンボボックスで『abc』を選択し、コマンドボタンをクリックすると
textbox1、textbox2、textbox3にそれぞれ
『idの1』、『no1の2』、『no2の10』という値を入れたいです。
phpのようにselect文で値をとって・・・ができないことにやっと気づき、Accessの場合どのような方法があるのか検討もついていません。
めちゃくちゃ簡単なコードでも参考URLでも良いのでどなたか教えていただけないでしょうか?

Aベストアンサー

連結フォームを使う方法と非連結フォームを使う方法があります。

非連結フォームの場合を、簡単に書くと以下のような感じです。
どうでしょう?PHPと比べてもそんなに違和感ないですよね?

private sub コマンドボタン_click
 Dim cnn As Connection
 Dim rst As New Recordset
 Set cnn = CurrentProject.Connection
 Me.コンボボックス.SetFocus

 rst.Open "SELECT * FROM testtable WHERE name = '" & Me.コンボ0.Text & "';", cnn
 Me.textbox1.Value = rst!id
 Me.textbox2.Value = rst!no1
 Me.textbox3.Value = rst!no2
 rst.Close
exit sub

Qフランス語の「Sous-titres」の表記について

お世話になります。
フランス語はまったくわかりませんので、質問させてください。
ネット翻訳によると、フランス語で字幕は「Sous-titres」と言うようですが、
これを、翻訳文の文頭や文末に(s-t)、(st)、(-st)などと書いてしまっても一般的に通じるのでしょうか。
おそらく通じないと思いますが、念のためご回答いただければと思います。

Aベストアンサー

通じないです。誰もがわかる略記はリストにまとめられております。
映画会社だとか、番組制作会社だとかの身内で
メモになさるのでしたら、かまわないと思いますが。

Q中古品の商品コード

中古品の商品コードをどうつけようか悩んでいます。

月に300件から500件の中古品を扱いますが、連番だけだと桁が増えていくので、桁を出来るだけ少なくしたいです。年月を頭につけて、毎月連番をリセットしようかと考えていますが、他に良い方法はないでしょうか。希望は次の通りです。

・連番の桁を出来るだけ少なくしたい(4桁程度)。
・分かりやすいものにしたい。

よろしくお願いします。

Aベストアンサー

先頭2桁を基底からの月数、後ろの3桁を連番の5桁表示としてみては
いかがですか?

例えば2006年1月からの通算月数として2006年の1月なら01、2007年
の2月なら13です。8年ちょいしか持ちませんが少なくはできます。
アルファベットを使用できるなら(大文字小文字区別や数字まで
含めると)4桁でも結構表現できます。

通算月で表示ならさほど判別しにくくはないだろうという前提です。

QIEでのITMLソースの表示について

エクセルVBAでIEを操作したいのですが、URLにアクセスして、何もいじらず、メニューバーの

「表示→ソース」で表示されるソースと、
「右クリック→ソースの表示」で表示されるソースが別の場合があるのですが、なぜでしょうか?
フレームが3つあるのですが、最初の「表示→ソース」だと、表のフレームのソースを表示しているのでしょうか?

Aベストアンサー

フレームを利用しているページの場合

「表示→ソース」で表示されるソース=ページのソース
(URLに表示されたWEBページのソース)

「右クリック→ソースの表示」で表示されるソース=フレームのソース
(右クリックされたフレームのソース)

になります

Qサブフォームのデータをメインフォームへ

お世話になります。
ひとつお聞きしたいのですが、サブフォームのデータをメインフォームに表示させる方法ってないのでしょうか?
データシートのサブフォームで計算させた合計の値を、メインフォームにもテキストボックスを表示させたいと思っています。
できるかどうかわかりませんが、何かいい方法がございましたら、よろしくお願いいたします。

Aベストアンサー

サブフォームの名前を「金額計算フォーム」、このサブフォームの中にある合計の値を表示するテキストボックスの名前は、「合計金額」と仮定します。

メインフォームに新しくテキストボックスを作成して、そのテキストボックスのコントロールソースを
=[Form]![金額計算フォーム]![合計金額]
とすれば、レコードの入力が確定したあと値が変わるはずですのでお試しください。

蛇足ですが、サブフォームはデータシートにしているようですが、帳票フォームの方が個人的には改造のしやすさから言って好きです。

ご参考になれば幸いです。m(__)m


人気Q&Aランキング