- ベストアンサー
Access2000のコンボボックスで苦しんでます
- access2000でコンボボックスを用いた抽出がうまく出来ずに、苦しんでおります。
- Access2000で「取引先選択」のコンボボックスを作成し、選択しても反応しない問題が発生しています。
- 「Microsoft Access Club」の「Access裏技tips」に紹介されている方法を試しましたが、うまくいきません。ご指導・アドバイスをお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#2 です。 > 「Microsoft Access Club」というサイトの 「Access裏技tips」 というページで紹介されている「立ち上がるコンボボックス」 という所で紹介されていることをそのまま真似して作ろうとしているのですが、 > なぜか?うまくできません。 ということで、 コンボボックスが、自動的に開かないのが問題だと思っていました。 > 私の実力不足なことは承知しているのですが、なぜうまくいかないかアドバイス頂ければ幸いです。 参照先は、コンボボックスを開くことがメインで 抽出そのものに関しては、解説もあまりなく、 実際のコードやクエリにも、やや問題があって 練習のために作ってみる分には良いのですが、 実務ではちょっとどうかな・・・というところです。 「Microsoft Access Club」の「参考ファイル」に上記とは若干異なりますが、データそのものは使えるサンプルファイルがあります。11番です。 http://www.accessclub.jp/samplefile/index.html ただし、フォーム等は異なりますし、エラーも出ますから あくまで、眺めてみる程度で。 実務でよく使われる、さまざまな条件で抽出する場合などでは VBA でフィルタを制御するものが便利です。 というか、クエリでは複雑になりすぎます。 ちょっと、敷居が高くなりますが、こちらなどがフィルタの例です。サンプルファイルもありますので研究してください。 http://hatenachips.blog34.fc2.com/blog-entry-129.html 現在のを、そのまま利用するとして コントロールの名称が混乱していますね。 > Private Sub Con取引先_AfterUpdate() > Private Sub Con_取引先_Enter() > Me.Cob_Con取引先_Enter() 'この行はそもそも不要では? > Me.cob_Con.取引先.Dropdown プロパティの、コンボボックスの「更新後処理」は「[イベント プロシージャ]」になっていますか? なっていなければ [イベント プロシージャ] にして、右の「...」ボタンをクリックし そこに、 コードを書きましょう。 クエリの中のコンボボックス名とフォーム上のコンボボックス名は、 もちろん一致させる。 コンボボックスのプロパティで、 列数 : 2 連結列 : 1 まあ、こんなところで動くんじゃないでしょうか。
その他の回答 (3)
- piroin654
- ベストアンサー率75% (692/917)
解決しましたか。以下で確認してみてください。 【コンボボックス「Con取引先」の設定】 (1) 値集合タイプ テーブル/クエリ (2) 値集合ソース SELECT tbl_sample.取引先ID, tbl_sample.取引先 FROM tbl_sample GROUP BY tbl_sample.取引先ID, tbl_sample.取引先; (3) 列数 2 (4) 列幅 2cm;2cm (5) 連結列 1 (6) リスト幅 5cm 【その他】 (1) 見た目の感じでフォームを開いたときに コンボボックスをドロップダウンさせて おくならば、フォームの開くときの イベントで、 Private Sub Form_Open(Cancel As Integer) Me.Con取引先.SetFocus Me.Con取引先.Dropdown End Sub とします。
お礼
回答ありがとうございました。 正直まだ、理解不足等もあり、完全に解決しておりませんが、 このままズルズル時間が過ぎるのは申し訳ないので、一旦締め切らせていただきます。 皆様の親切丁寧なアドバイスに感謝いたします。ありがとうございました。
- m3_maki
- ベストアンサー率64% (296/460)
> Private Sub Cmdコマンド_Click() > > > Me.con取引先 = "" > Me.txtColumn = "" > DoCmd.ShowAllRecords > > End Sub Me.con取引先 = Null Me.txtColumn = Null でしょうね。 なお、参照先の最後に書かれていますが 何かと問題のある 「SendKeys」 ではなく 「Dropdownメソッド」 を使うのがベターかと思います。
お礼
回答ありがとうございます。 アドバイス頂いたとおりに修正させていただきましたが、残念ながら症状は変わりませんでした。 よろしければ、またアドバイス頂けるとありがたいです。 以下 修正したコード Private Sub Con取引先_AfterUpdate() DoCmd.ShowAllRecords ' --- A Me.txtColumn = Me.con取引先.Column(1) ' --- B End Sub Private Sub Cmdコマンド_Click() Me.con取引先 = Null Me.txtColumn = Null DoCmd.ShowAllRecords End Sub Private Sub Con_取引先_Enter() Me.Cob_Con取引先_Enter() Me.cob_Con.取引先.Dropdown End Sub
- imogasi
- ベストアンサー率27% (4737/17069)
あとの回答者・読者のために補足のこと。 (1)画像の中身がぼやけて読み取れない。 コードはテキストなのだから要所をコピペ(テキスト「)するものだ (2)Microsoft Access Cluはよく出てくるが、どこかを参考に貼り付けておくべきだ。 (3)したいことを、文章で説明のこと。コンボボックスはGUIのツールであるから、それを用いて何がしたいのか (4)質問者のコード実行でエラーが出るならそのエラーコードやデータなど書くべきだ。 (5)抽出がうまく出来ずに・・ならコンボボックスの質問というより、質問標題は、抽出についてだろう。 標題によって、答えてくれたり、素通りしたりも起こりえる大切な点だ。
補足
ご指摘ありがとうございます。回答者様のおっしゃるとおりの至らない質問の仕方にただ頭が下がります。ここで、精一杯補足をさせていただきます。理解不足もあり的を得ていない部分もあるかも知れませんが、ご懇情をお願いいたします。 ■したいこと ・何百件とある住所リストがあり。コンボボックス「都道府県欄」で、指定した内容、たとえば「愛知県」を選んで十数件該当する「愛知県」のリストを抽出できるようにしたい。 ■症状 コンボボックスで選んでも、エラーもでず、抽出もせず、何も反応しない。 ■参考としたいページ http://www.accessclub.jp/urawaza/03.html 以下 私の記載したコード Option Compare Database Private Sub Con取引先_AfterUpdate() DoCmd.ShowAllRecords ' --- A Me.txtColumn = Me.con取引先.Column(1) ' --- B End Sub Private Sub Cmdコマンド_Click() Me.con取引先 = "" Me.txtColumn = "" DoCmd.ShowAllRecords End Sub Private Sub Con取引先_Enter() If IsNull(Me.con取引先) Then ' --- A SendKeys "{f4}", False ' --- B End If End Sub
お礼
回答ありがとうございました。 正直まだ、理解不足等もあり、完全に解決しておりませんが、 このままズルズル時間が過ぎるのは申し訳ないので、一旦締め切らせていただきます。 皆様の親切丁寧なアドバイスに感謝いたします。ありがとうございました。