Access2000を使っています。
フォーム中にリストボックスを作成したいと思っています。
ところが、リストボックスを作成するときのウィザードを実行中、リストボックスに表示させるためのフィールド選択画面で、フィールドを選択した後「次へ」をクリックすると、

「1つ以上の必要なパラメータの値が設定されていません」

とのエラーメッセージが表示され先に進むことができません。

どうすればよいのでしょうか。

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

A 回答 (1件)

今、手元にAccess2000を使える環境が無く再現がとれませんので、あくまで推察でしかお答えできませんが、まだどなたも回答されていないようなので、自信なしのアドバイスをさせていただきます。



ご質問から察すると、リストボックスは既存のクエリーを使って作成されているのでしょうか。もし、クエリーの抽出条件に他のフォームのテキストボックスの値を参照したりしていたら、これが原因かもしれません。

(以下意味がわからなかったら無視してください)
DAOのQueryDef オブジェクトでRecordsetを開く際、上記のようなクエリーを参照すると、抽出条件がパラメーターとして要求されます。
リストボックスウィザードでも、同じことがおこっているのかもしれません。

ということで、
リストボックス自体は抽出条件があっても問題無いはずですので、対策としては、
(1)ウィザードを使わずにリストボックスを作り、手作業で集合値ソースにクエリー名(またはSQL文)を記述する。
あるいは、
(2)そのクエリーの抽出条件を削除してから、ウィザードでリストボックスを作り、その後で集合値ソースのWHEREの部分を追加記述する。

原因がウィザードにあるとすると、上記のどちらかしか方法がないように思うのですが?
    • good
    • 0

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

お探しの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のヘルプが見られる環境なら、...続きを読む

QExcell97でリストボックスを作成したが選択できない

範囲指定でリストボックスを作っていましたが、
急に選択肢を表示させる為の矢印がなくなりました。
セルの右横に出るヤツです。
データ→入力規則で、確認してみるのですが、
設定はされたままです。
パソコンの調子が悪いのかと、再起動してみましたが、
無くなったままです。

どうすれば直るのでしょうか?

Aベストアンサー

ウィンドウ枠を固定してませんか?

ウィンドウ枠を固定している場合、固定部分のセルに設定した入力規則のリストはドロップダウンしないようです。

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

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


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

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

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

Aベストアンサー

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

Qリストボックス(複数選択しない)の場合の選択解除について

こんにちは。現在ACCESS2000のフォームにリストボックスを配置し、
複数選択は「しない」に設定しています。
リストボックスの項目をどれか一つ選択するか全く選択しないことを
可能としたい(選択している値を再度クリックすると選択解除できるよう
にしたい)のですが、うまくいきません。
何か方法がありましたら、ご教示願います。

Aベストアンサー

#1の補足&別提案

pooh-tanさんの仰るとおりでした。(無念)

で、違う方法です。
複数選択のプロパティを「する」にして、複数選択させない方法です。
(泥臭いプログラムだが動きはOK)


Private lngIdx As Long 'リスト選択インデックス格納用変数

Private Sub Form_Load()
  lngIdx = -1 'リストボックスが初期選択されていない場合
End Sub

Private Sub list1_Click()
  If list1.ItemsSelected.Count > 1 Then
    For i = 0 To list1.ListCount
      list1.Selected(i) = False
    Next i
    list1.Selected(list1.ListIndex) = True
    lngIdx = list1.ListIndex
  Else
    lngIdx = -1
  End If
End Sub

#1の補足&別提案

pooh-tanさんの仰るとおりでした。(無念)

で、違う方法です。
複数選択のプロパティを「する」にして、複数選択させない方法です。
(泥臭いプログラムだが動きはOK)


Private lngIdx As Long 'リスト選択インデックス格納用変数

Private Sub Form_Load()
  lngIdx = -1 'リストボックスが初期選択されていない場合
End Sub

Private Sub list1_Click()
  If list1.ItemsSelected.Count > 1 Then
    For i = 0 To list1.ListCount
      list1.Sele...続きを読む

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

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

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

Aベストアンサー

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

Qアクセスのパラメータ入力画面をリストまたはコンボボックスにする方法

いつも大変お世話になっております。
Microsoft Accessについて質問させてください。

パラメータクエリを作成し、実行すると
「値を入力してください」というようなダイアログボックスが表示されます。
このボックスの中で値を指定するテキストボックスをリストボックスまたはコンボボックスにし、値を選択するようにできるでしょうか?
(あまり難しい方法ではなく、できるだけ簡単な方法をお願いします)

良い方法がありましたらぜひご伝授ください。
m(_ _)m

Aベストアンサー

直接の変更は出来ないのでフォームを使います。
1.フォームにコンボボックス又はリストボックスを設定して値を選択できるようにする。
2.コマンドボタンを作成しクエリを開く設定をする。
(クエリをデータソースにしたフォーム・レポートでも可)
3.クエリの抽出条件に、1のフォームのコンボボックスを指定する。

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で、コード実行中に、フォームのテキストボックスの値をデータソースとしたクエリーフィールドの値を取得したい

Accessにおいて、frmMENUというフォームを作成し、txtYearというテキストボックスを配置しました。"式1: [Forms]![frmMENU]![txtYear]"というフィールドを含むクエリーを作成しました。
フォームを起動し、txtYearに値を入れた後、そのクエリーを開くと、"式1"には正しく値が入っているのですが、コードの実行中(例えばボタンクリック処理の間など)にクエリを開くと何も入っていません。このとき、クエリーに対するSQL(select 式1 from クエリ1)を実行しようとすると「パラメータが少なすぎます。1を指定してください。」というエラーが発生してしまいます。コード実行中にクエリーから"式1"の値を取得することはできないのでしょうか?

Aベストアンサー

補足に対してアドバイスします。

>テキストボックスの値を一旦テーブルに書き込む処理を入れ、そのテーブルを参照するクエリーを作成して対処しようかと思い始めています。

テーブルに書きこまなくてもクエリの定義を直接変更することが出来ます。
CurrentDb.QueryDefs("クエリ名称").SQL プロパティーに直接SQLを設定してみてください。

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非連結のリストボックスに特定フィールドのテーブルの内容を表示させる

Access2003で、フォームに非連結のリストボックスがあるのですが、ここにテーブルの特定のフィールド2つを表示させたいのですが、どうすればよいのでしょうか?

テーブルには、以下の4つのフィールドがあるのですが、名前と年齢のみを
リストボックスに表示させたいです。

no 連番
name 名前
age 年齢
sex 性別

どのように設定すればよいのでしょうか?

Aベストアンサー

NO1です。
>値集合タイプをテーブル/クエリにし、値集合ソースにクエリを書けば、2つのフィールドを表示させることはできると思いますが、

クエリを作らなくてもできるとおもいますが?
慣れていれば、直接非連結のリストボックスの、プロパティで設定を変更すれば、出来ると思いますが、不安であれば、
ツールバーの「コントロールウィザード」をonにして、「リストボックス」を使用してはどうでしょうか?念のため以下に記述しておきます。(3がポイントかも)

1.「リストボックスウィザード」が動き出したら、相手のテーブルを選択します。
2.「選択したフィールド」欄に表示したい2つのフィールドを指定します。
3.「キー列を表示しない」をオフにします。(チェックをはずす)
4.「選択可能なフィールド」及び保存したいフィールドを指定します。

もし、直接変更したい場合、上記フィールドを作ることにより、プロパティを比べることにより、設定箇所がわかるのでは?

的はずれでしたらご容赦を。


人気Q&Aランキング