ACCESS2000にて初歩的な質問なのですが、
テーブルのフィールド1に
あいう銀行
ABC銀行
いろは銀行
123銀行
の4つの銀行名があります。
これをフォームからコンボボックスを使って
選択するように構築したいのですが、コンボボックスに現れるのは
あいう銀行
いろは銀行
ABC銀行
123銀行
と並んでしまいます。
いろは銀行
ABC銀行
123銀行
あいう銀行
の順にコンボボックスにて表示させるにはどうすれば良いのでしょうか?
ちなみに、テーブルのデータの並びを
いろは銀行
ABC銀行
123銀行
あいう銀行
に変更しても、コンボボックスでは
あいう銀行
いろは銀行
ABC銀行
123銀行
と現れます。
ACCESSの初心者ですので、よろしくお願いいたします。

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

A 回答 (2件)

こんばんは。

このような場合にクエリをうまく利用するといいですよ。
まず、銀行の名前がはいったテーブルにフィールドをひとつ追加します。
新しく追加したフィールドに、自分が後でコンボボックスで並べさせたい順番に番号を入力します。あなたの場合、いろは銀行に「1」、ABC銀行に「2」、123銀行に「3」、あいう銀行に「4」を入力します。
次に、新しい選択クエリを作成し、銀行名がはいったテーブルの「銀行名」と「順番」フィールドを選択し、「順番」を昇順に並べ替え指定します。
これで、このクエリを開いたときは必ずあなたの指定した「順番」通りに銀行名が並びます。
あとは、コンボボックスの元データを、今のテーブル指定から、新しく作ったクエリ指定にしてやれば、銀行名をコントロール出来ます。
 おわかりでしょうか??ちなみに、このクエリを利用すれば、入力データの多い銀行順にコンボボックスを表示させたりすることも出来、私は結構多用してます。いずれにしても、テーブルのデータを直接利用するより、例え1テーブルに入っているデータしか利用しないときも、一旦クエリを介して利用するようにしておくと、後々便利に使える場合がありますよ。
    • good
    • 0

値集合ソース使ってコンボボックスに登録したんだよね?


そこにクエリが出てきましたよね?
そこで昇順降順を付ける方法が1つと後は、昇順降順ってフィールド作って
あらかじめ順番付けて、そのフィールドに対して昇順するって方法があるん
じゃないかな?
    • good
    • 0

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

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

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

Qエクセル、フォームでのVBAについて(コンボボックス)

エクセル97でフォームのコンボボックスを使用する場合の質問です。
ワークシートにコンボボックスを10個配置しました。
入力範囲はすべて同じです。
このコンボボックスで特定の項目(入力範囲6番目)を選んだ場合、次のマクロを実行するようにしようと思っています。マクロを10個書いてそれぞれのコンボボックスに登録してもいいのですが、それよりはどのコンボボックスが使用されたか特定できればすべてのコンボボックスに一つのマクロで対応できます。
コンボボックスに番号(たとえばコンボ1~コンボ10)を振ってその番号の取得ができればいいのですが、どのように記述したらよいのか検討がつきません。
お教えください。

Aベストアンサー

ゆん(yunn117)です。
まず、ByValですが、引数を値渡しするという宣言(?)です。
もうひとつ、ByRefというのがあって、それは参照渡しというモノになります。
・・・値渡しとか参照渡しってなに?というのを説明するべきなんでしょうが
説明がかなり苦手なので。。。申し訳ないです。(^-^;

で、検討がつかない、なんておっしゃってますが
Combo2では、ちゃんとNextMacro(2)って渡してるじゃないですか♪
カッコ内に入れた値が、NextMacro側に渡ってます。

ExcelのVBAのヘルプが見られる環境なら、ヘルプで調べてみてください。引数、ByVal、ByRefなど。

で、更なる質問部分についてですが
DrawingObjects("Combo1")といった表現をする場合はまとめられないんです。。。
が!
もう一度、考え直してみました。

Sub Combo1()
Call NextMacro(1)
End Sub

Sub NextMacro(ByVal SelCombo As Integer)
Dim ans As String
If Sheets("LOG").Range("C1") = False Then
Sheets("回答書").DrawingObjects("Combo" & SelCombo).ListIndex _
= Sheets("LOG").Range("H" & (30 + SelCombo)).Value
Exit Sub
End If
If Sheets("回答書").DrawingObjects("Combo" & SelCombo).ListIndex = 6 Then
ans = InputBox("地域を入れてください。", "地域設定")
Worksheets("LOG").Range("J" & SelCombo) = ans
End Sub

で、いいのでは。
ちゃんと全部キレイにまとまるやん♪
と、言いたいところなんですが、テストしてません。
動かなかったらごめんなさい。(^-^;;;

ゆん(yunn117)です。
まず、ByValですが、引数を値渡しするという宣言(?)です。
もうひとつ、ByRefというのがあって、それは参照渡しというモノになります。
・・・値渡しとか参照渡しってなに?というのを説明するべきなんでしょうが
説明がかなり苦手なので。。。申し訳ないです。(^-^;

で、検討がつかない、なんておっしゃってますが
Combo2では、ちゃんとNextMacro(2)って渡してるじゃないですか♪
カッコ内に入れた値が、NextMacro側に渡ってます。

ExcelのVBAのヘルプが見られる環境なら、...続きを読む

QAccess・画像でコンボボックスを操作する際に

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1223250
で、画像を押すと、コンボボックスをドロップダウン、はできたのですが、
そのクリックを行うと、下に隠れていたコンボボックスの▼が画像の上に出てきてしまいます!(>_<)
これは回避することはできないのでしょうか?

Aベストアンサー

こんにちは。
先ほど回答した者です。
コンボボックスの上、って重ねてという意味だったのですね…。

調べてみたのですが、技術評論社のページで、
「コンボボックスの矢印を隠す方法」というのがありました。(参考URLの「14」です。)

ダウンロードしてみましたが、やはりカーソルが当たると▼が出てきてしまいます。

画像の代わりにテキストボックスやコマンドボタンを置いてもダメでした…。

お力になれず申し訳ございません。

参考URL:http://www.gihyo.co.jp/books/support-link.php/4-7741-0835-9/c2.html

Qコンボボックスの設定  【エクセル】

エクセルのコンボボックスについてです。
コンボボックスのリストとして


黄色
というリストをコンボボックスの‘入力範囲’に指定します。

コンボボックスの
‘コントロールの書式設定’→‘リンクするセル’
でセルを指定すると、赤を選んだとき リンクさせたセルには
「1」とでますが、なぜ1と出るのか、というのと
私は「赤」と表示させたいのですが、そのやり方を教えて頂きたいです。

コンボボックスを初めて使うので初心者的な質問だと思いますが宜しくお願いします。

Aベストアンサー

この質問もあいまいな点あるのだが。
(1)データー入力規則ーリストー元の値のドロップダウンリスト
ガあるのだが知っていて使わないのか?
これだと質問のようなことはない。選択したドロップダウンの出るセルに文字が出る。
(2)シートやユーザーフォームにコンボボックスを貼り付けているのか
A。質問者はどうもフォームのコンボボックスを使っているらしい
(「入力範囲」という言葉から)
下記Bをお勧めします。
しかし現状のままだと別のセルに一旦数字を出して(J2とでも仮定して)赤白黄うお出したいセルに
=INDEX(H1:H3,J2)
と入れると良い。
H1:H3に赤、青、黄といれて置く(入力範囲)。
ーー
B.コントロールツールボックスのコンボぼっくすを使うと
FillListRangeに例えばH1:H3  H1:H3に赤、青、黄といれ
LinkedCellを例えばD2にすれば、選択後出るには赤とでる。
ーー
>「初心者的な」といいながら、一番難しい方法でやっているようだ。

QACCESS2000の帳票フォーム詳細欄でのコンボボックスについて

まずは現状から説明します。
以下のテーブルがあります。

[細分類マスタ]
細分類ID(主キー)
細分類

[品目区分マスタ]
細分類ID(主キー/細分類マスタ参照)
品目区分ID(主キー)
品目区分

[品目マスタ]
細分類ID(主キー/細分類マスタ参照)
品目区分ID(主キー/品目区分マスタ参照)
品目ID(主キー)
品目

[台帳テーブル]
台帳明細ID(主キー)
細分類ID(細分類マスタ参照)
品目区分ID(品目区分マスタ参照)
品目ID(品目マスタ参照)
数量

やった作業:
1.台帳テーブルをレコードソースとした台帳フォーム(帳票フォーム)を作成
2.台帳フォームの詳細に 細分類、品目区分、品目のコンボボックスを作成
 -------------------------------------台帳フォームの詳細欄イメージ
 [細分類▽][品目区分▽][品目▽][数量]
 -------------------------------------
 コントロール名:cbo_saibunrui,cbo_hinmoku_kubun,cbo_hinmoku
3.それぞれの値集合ソースに
 SELECT * FROM 品目区分マスタ WHERE 細分類ID=cbo_saibunrui;
 SELECT * FROM 品目マスタ WHERE 細分類ID=cbo_saibunrui AND 品目区分ID=cbo_hinmoku_kubun;
を設定(これにより絞込み)
4.コンボボックスがフォーカス取得時に自分自身をリクエリー

現象:
2レコード以降を追加しようとすると、それより以前のコンボボックスの内容が一斉に
変ってしまう。(リクエリーがかかるからあたりまえ?)

なんとか、それぞれのレコードのコンボボックスが独立して働くようにしたいのですが。
無理なら、特にこの方法にこだわるのもではありません。
要は台帳フォーム(帳票フォーム)の詳細欄で効率よく品目を選択でき、
その画面上でそれまでに選択した品目が見えていればOKです。

現在納期に追われて非常に困っています。
表現がわからないところは突っ込んでください。すぐに補足します。
よろしくお願いします。

まずは現状から説明します。
以下のテーブルがあります。

[細分類マスタ]
細分類ID(主キー)
細分類

[品目区分マスタ]
細分類ID(主キー/細分類マスタ参照)
品目区分ID(主キー)
品目区分

[品目マスタ]
細分類ID(主キー/細分類マスタ参照)
品目区分ID(主キー/品目区分マスタ参照)
品目ID(主キー)
品目

[台帳テーブル]
台帳明細ID(主キー)
細分類ID(細分類マスタ参照)
品目区分ID(品目区分マスタ参照)
品目ID(品目マスタ参照)
数量

やった作業:
1.台帳テーブルをレコードソースとした...続きを読む

Aベストアンサー

実際にフォームを作成して実験したところ…変わりますね(苦笑)

ということで自分なりに改造してみたんですが、台帳テーブルを
[台帳テーブル]
台帳明細ID(主キー)
細分類ID
細分類
品目区分ID
品目区分
品目ID
品目
数量

と作り直して、フォームの詳細に

台帳明細ID 細分類ID▽ 細分類 品目区分ID▽ 品目区分 品目ID▽ 品目 数量

と連結フィールドを作成します。

コンボボックスの値集合ソースは
SELECT [細分類マスタ].[細分類ID], [細分類マスタ].[細分類] FROM 細分類マスタ;
SELECT [品目区分マスタ].[品目区分ID], [品目区分マスタ].[品目区分] FROM 品目区分マスタ WHERE ((([品目区分マスタ].[細分類ID])=[Forms]![フォーム]![細分類ID]));
SELECT [品目マスタ].[品目], [品目マスタ].[品目ID] FROM 品目マスタ WHERE ((([品目マスタ].[細分類ID])=[Forms]![フォーム]![細分類ID]) And (([品目マスタ].[品目区分ID])=[Forms]![フォーム]![品目区分ID]));

それぞれ、フォーカス取得時に
Me![コンボボックス名].Requery
変更時に
Me![コンボボックスの右隣のフィールド名] = Me![コンボボックス名].Column(1)

とすることでうまく動きました。
参考になるでしょうか?

実際にフォームを作成して実験したところ…変わりますね(苦笑)

ということで自分なりに改造してみたんですが、台帳テーブルを
[台帳テーブル]
台帳明細ID(主キー)
細分類ID
細分類
品目区分ID
品目区分
品目ID
品目
数量

と作り直して、フォームの詳細に

台帳明細ID 細分類ID▽ 細分類 品目区分ID▽ 品目区分 品目ID▽ 品目 数量

と連結フィールドを作成します。

コンボボックスの値集合ソースは
SELECT [細分類マスタ].[細分類ID], [細分類マスタ].[細分類] FROM 細分類マスタ;
...続きを読む

Qエクセル、コンボボックス/フォームのとコントロールツールボックスの

エクセル2000です。
今まではワークシートにフォームのコンボボックスを貼って使ってきました。
でも色を変えたり出来ないので、今度はコントロールツールボックスからコンボボックスを貼ってみました。

質問ですが、コンボボックスに表示させるリストを設定するのに、これまでのフォームのコンボボックスだと書式設定で入力範囲をカーソルをあてて一度に簡単に指定できたのですが、コントロールツールボックスのコンボボックスだとそれが出来ません。VBEditorのプロパティのところのListFillRangeの右側にいちいち手でSheet1!A1:A5のように打ち込まなければならないようです。これではけっこう手間がかかってしまいます。
わたしのやりかたが間違っているのでしょうか?

Aベストアンサー

#2です。
>この意味が良くわかりませんでした。
エクセル(VBA)ではリストに出す範囲を指定するだけですが、
VBのコンボボックスの項目(アイテム)の登録はListFillRangeがないので、AddItemを項目数だけ、記述
する必要があると言うことを言いたかったのです。
エクセル(VBA)では手数が省けていると思います。

Qaccess2000でコンボボックスでの選択は変更されていないと判断されるのですが。

現在、履歴をとるモジュール(beforeupdateとafterupdate利用)なのですが、今は変更が起こったかどうかを見て履歴を書いているのですが、これを更新ボタンをクリックしたら。に変更は可能でしょうか?(これは何故かと言いますと、コンボボックスで選択を変えただけでは変更が起こっていないとみなされて履歴を取ってくれないのです。それに変更をした!という気にもなるので。よろしくお願いいたします。

Aベストアンサー

現在
If Ctr.ControlType = 109 Then

と記述されているところを

If ((Ctr.ControlType = acTextBox) or (Ctr.ControlType = acComboBox)) Then

へ、変更してみてください。

Qエクセルに貼りついたコンボボックスについて

パソコン初心者です。よろしくお願いします。

インターネットの画面をコピーしてエクセルに貼り付けました。
余分な部分まで貼り付けてしまい削除したのですが、コンボボックスがどうしても削除できません。(リンクははずしました。)
ドラッグすることもできず、行を削除してもコンボボックスは残っております。どうしたらコンボボックスを削除できるでしょうか?
ご回答よろしくお願いいたします。

Aベストアンサー

こんにちは。

お使いのExcelのバージョンによって操作が違うかもしれませんので参考までに。
※以下はExcel2000での操作例です。

まず、ツールバーに「デザインモード」というアイコン(鉛筆?と三角定規とものさし
が書かれているもの)が表示されていないでしょうか?
もし表示されていなければ以下の操作をしてみて下さい。

1)メニュー操作
  「表示」→「ツールバー」をクリック
2)表示されたメニューより「Visual Basic」にチェックマークが付いていなければ、
  クリックして下さい。
3)これでツールバーが追加されて「デザインモード」というアイコンが表示され
  ていれば、下記の作業を行ってみて下さい。

次に、コンボボックスの削除を行います。
※添付画像もご覧下さい。

4)ツールバーの「デザインモード」のアイコンをクリックして、くぼんだ状態に
  して下さい。(※デザインモードをONの状態にします。)
5)シート上の消したい「コンボボックス」にマウスを当ててクリックして下さい。
  ※これで「コンボボックス」が選択状態になり、周囲にサイズ変更用の
   マークが表示されると思います。
6)上記5)でコンボボックスが選択状態になったら、[Del]キー(デリートキー)
  を押して下さい。
  ※これで「コンボボックス」が削除されれば完了です。
7)続けて、他のコンボボックスなどのコントロールを削除したい場合は、
 上記5)、6)の作業を繰り返して下さい。

8)なお、シート上のコントロールを全て削除したい場合は、下記の操作を
 行って下さい。
 ◎あらかじめ「デザインモード」をONの状態にします。
   ↓
 ◎メニュー: 「編集」→「ジャンプ」
   ↓
 ◎表示された「ジャンプ」ダイアログの「セル選択」ボタンをクリックします。
   ↓
 ◎表示」された「選択オプション」ダイアログの中の「オブジェクト」という
  項目(オプションボタン)を選択します。
   ↓
 ◎「OK」ボタンをクリックします。
   ↓
 ◎これでシート上の全てのコントロールが選択された状態になります。
   ↓
 ◎ここで[Del]キー(デリートキー)を押せば、全てのコントロールが削除
  されます。

9)作業が終了したら、「デザインモード」アイコンを再度クリックして、
  デザインモードをOFFにします。

以上で作業完了です。

もしも上手くいかなかった場合はすみません。
参考になれば幸いです。

こんにちは。

お使いのExcelのバージョンによって操作が違うかもしれませんので参考までに。
※以下はExcel2000での操作例です。

まず、ツールバーに「デザインモード」というアイコン(鉛筆?と三角定規とものさし
が書かれているもの)が表示されていないでしょうか?
もし表示されていなければ以下の操作をしてみて下さい。

1)メニュー操作
  「表示」→「ツールバー」をクリック
2)表示されたメニューより「Visual Basic」にチェックマークが付いていなければ、
  クリックして下さい。
...続きを読む

QAccessのコンボボックスでリストが選択できない

いつもお世話になっております、ありがとうございます。

コンボボックス1で部署名を選択し、
コンボボックス2でその部署の社員の名前を選択するようなフォームがあります。

コンボボックス1の値集合ソースで社員テーブルの一覧を参照し、
部署名のフィールドでグループ化して選択できるようになっています。

このとき、なぜかコンボボックス2では最上段にリスト化された社員名しか
選択できなくなります。
画面上では全員がリストとして見えているのに、
リストの2番目以降をクリックしても、一番上の社員しか入力されません。

プロパティで何か変な制約がかかっているのでしょうか?
どなたかお分かりになる方がいらっしゃいましたら教えてください。
どうぞよろしくお願いします。

Aベストアンサー

すみません、No5の訂正です。

Private Sub cmb都道府県_AfterUpdate()
Me!cmb市区町村.Requery
Me!cmb市区町村 = Me!cmb市区町村.ItemData(0)
End Sub

コンボ名が違っていました。

QエクセルVBA コンボボックスで強制終了

こんにちは。
エクセルVBAでいくつかのフォームを作成しているのですが、
常にではないのですが、「問題が発生したため・・・」のメッセージで
強制終了させられてしまいます。
恐らく、コンボボックスが原因かと思われるのですが。。。
申し訳ありません。教えていただけると嬉しいです。

VBA
1.Initialize
 (1)コンボボックス1リスト設定:データ2
 (2)コンボボックス2~21(20個のコンボボックス)リスト設定
               :データ数80
2.コンボボックス1_Change
 (1)コンボボックス22リスト設定:データ数80

現象
 (1)コンボボックス22を▼でなく入力し、保存すると強制終了
 (2)上記現象発生後、コンボボックス1の▼押下で強制終了
 (3)複数のPCで試したが、性能の良いPCでもたまに起こる。
  性能が悪いPCの場合、確実に起きる。
 (4)他のフォームはいくらやってもこの現象は発生しない。
  但し、コンボボックス2~21のような大量なコンボボックスはない

考えること
 (1)コンボボックスのリストの限界等はあるのでしょうか。
 (2)メモリ等の関係で発生するのでしょうか。
 (3)コンボボックスに入力不可とするか、テキストでNoを入力
  させる方法をとった方がよいでしょうか。

長々とすみません。
よろしくお願いいたします。

   

こんにちは。
エクセルVBAでいくつかのフォームを作成しているのですが、
常にではないのですが、「問題が発生したため・・・」のメッセージで
強制終了させられてしまいます。
恐らく、コンボボックスが原因かと思われるのですが。。。
申し訳ありません。教えていただけると嬉しいです。

VBA
1.Initialize
 (1)コンボボックス1リスト設定:データ2
 (2)コンボボックス2~21(20個のコンボボックス)リスト設定
               :データ数80
2.コンボボックス1_Change
 (1)コンボ...続きを読む

Aベストアンサー

こんにちは。

>VBAを組んだのは2007で今、それを動かしているのは2002です。
>こんなことをしているのが悪いのでしょうか・・・。

一般論なのですが、VBAの場合は、下位互換は期待しないほうがよい、ということです。下のバージョンでは、テキストコード(.bas)で、エクスポート・インポートをしたほうが良いかもしれません。特に、2007と2003では、ファイルフォーマットが違いますからね。

>自分で設定しない限りは、Add-inの機能はエクセルに入ってないという認識でよいでしょうか?

今、私は、「自分で設定しない限り」だったか、ちょっとはっきり答えられません。これは、当面、そのままにしておきます。

Qテキストボックスのデフォルト設定とコンボボックスの更新について

テキストボックスのデフォルト設定とコンボボックスの更新について

エクセルのVBAで、ユーザーフォームを使用しています。
ユーザーフォームの中にはコンボボックスとテキストボックスとボタンがあります。

コンボボックスには「ABCDEFGHIJKLM」と合計13のリストがあります。

ユーザーフォーム起動時に、コンボボックスには最初のリスト(A)が表示
されていて、「次へ」ボタンと「戻る」ボタンの2つを用意しています。
(1)ユーザーフォーム起動時にテキストボックスに「0」を入れる方法を教えていただけないでしょうか。

コンボボックスで「A」が選択された状態で「次へ」ボタンをおしたら「B」が選ばれる。
「D」が選択された状態で「次へ」ボタンをおしたら「E」が選ばれる。
「M」が選択された状態で「次へ」ボタンをおしたら「A」が選択される。(リストの最初に戻る。)
というのは、次のVBAで上手くいきました。
If Combobox1.ListIndex < Combobox1.ListCount - 1 Then
Combobox1.Text = Combobox1.List(Combobox1.ListIndex + 1)
Else
Combobox1.Text = Combobox1.List(0)
End If

(2)しかし「E」が選択された状態で「戻る」ボタンをおしたら「D」が選ばれる。
「G」が選択された状態で「戻る」ボタンをおしたら「F」が選ばれる。
「A」が選択された状態で「戻る」ボタンをおしたら「M」が選ばれる。(リストの最後に戻る。)
といった内容のマクロがうまく組めません。

教えていただけると助かります。

テキストボックスのデフォルト設定とコンボボックスの更新について

エクセルのVBAで、ユーザーフォームを使用しています。
ユーザーフォームの中にはコンボボックスとテキストボックスとボタンがあります。

コンボボックスには「ABCDEFGHIJKLM」と合計13のリストがあります。

ユーザーフォーム起動時に、コンボボックスには最初のリスト(A)が表示
されていて、「次へ」ボタンと「戻る」ボタンの2つを用意しています。
(1)ユーザーフォーム起動時にテキストボックスに「0」を入れる方法を教え...続きを読む

Aベストアンサー

回答1、myRangeです。

>ちなみに、このVBAはどうやって覚えましたか?
>あるいは、本などで調べられるものでしょうか。

ふつうComboBoxは質問のような使い方をしないので、
本にはそのものずばりというコードは載ってないでしょう。

VBAのヘルプをじっくり眺めて、プロパティ、メソッドなどの機能を
いくつも試してみながらひとつひとつ理解していけば
時間は掛かるでしょうがどんなコードでも書けるようになります。
 
因みに、ひと月である程度のコードが書けるようになるには
以下のような手段で、日に4~5時間程度勉強をすればいいでしょう。

  VBA専用サイト
  VBA専用Q&A
  VBAのヘルプ
  参考書(入門編、応用編、各1~2冊)

あとは、粘りと根性!!
以上です。


人気Q&Aランキング

おすすめ情報