ACCESS2000です。フォームに貼り付けたコンボボックスのプロパティの値集合ソースにクエリを書いて、クエリ実行結果のデータを取得して、コンボボックスの内容としているのですが、先頭行に空白行を挿入して、2行目以降にクエリ実行結果のデータを入れたいのです。どうすればよいのでしょうか?ちなみに列数は4列です。
それから、その空白行に「(指定なし)」のような表示が可能であれば合わせて教えてください。

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

A 回答 (2件)

値集合ソースに



Select "","","","" From テーブル1 UNION Select * FROM テーブル1;

と書いてみてはどうでしょうか?

ちなみにテーブル1のフィールド数は4つです。
    • good
    • 0
この回答へのお礼

有難うございます。確かにUNIONという手がありましたね。実は、テーブルからSELECTするデータは降順に並べたいので、
SELECT a,b,c,d FROM テーブル1 UNION SELECT "","","","" FROM テーブル1 ORDER BY a DESC, b DESC
としてみたのですが、これだと空白行が最後の行になるのは仕方ないようです(昇順だったら、先頭行が空白行、2行目以降に昇順のデータとなります)。 ともかくも、空白行を入れることができました。有難うございました。

お礼日時:2001/08/07 13:34

i-haradaです。



>クエリ実行結果のデータを取得して

とありますが、クエリーで null値が出るようにし昇順にすれば良いのでは?
一寸質問の意味がわかりません。
値リストでも良いのでしょうか?
コンボボックスで選択しなければ、空白と思いますし。(規定値を入れてなければ)
    • good
    • 0
この回答へのお礼

早速のご返答どうもありがとうございます。テーブルに入っているデータをSELECTしてコンボボックスのリストに入れたいので、値リストではだめなのです。また、故意に先頭にNull行が1行入るようなクエリを作ればよいのではないか、という案は、確かにうまく行きそうですね(残念ながら今回のところでは使えませんが)。以前にASPを使ってVbScriptとHTMLでWebページを作った際に、コンボボックスの先頭行には指定なし、2行目以降はDBからSELECTしたデータでリストを作ったもので、ACCESSでも同じようにできないかと思ったのです。アドバイス有難うございました。

お礼日時:2001/08/06 21:25

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

QExcelで「A列で任意のグループ」「B列は空白以外」「C列は空白セル」の数

さきほど、質問をした者です。
回答を締め切った後で、追加質問がありますので、新たに質問させていただきます。(たびたびスミマセン)

Excelで「A列で任意のグループ」名、かつ、「B列は空白ではないセル」、かつ、「C列は空白セル」の件数を出したいのです。 (オートフィルタではなく。)

=SUMPRODUCT((A3:A271="グループ名")*(B3:B271="▲▲▲")*(C3:C271=""))

という式を作ったのですが、「B列の空白以外」という条件にする"▲▲▲"の部分はどうすればいいのでしょう?

Aベストアンサー

B3:B271<>""

Qコンボボックスに行、列の名称の表示って出来る?

エクセルで、任意のセルを選択して、データの並び替えを選択すると選択範囲の行の名前(例:行6、行7、行8)や、列の名前(列C,列D,列E)と表示されますが、自分で作ったコンボボックスに同じ形式で表示することって出来ますか?行については、Rowsで範囲を範囲を抽出すれば出来そうですが、列をどのように実現すればいいのか?って悩んでいます。
力技で、手動でC,D,Eとカウントアップしていけば出来そうですが、芸が無いような気もします。どなたか?ヒント頂けないでしょうか?

Aベストアンサー

こんにちは。

#1 さんの
>2、Chr関数を使って、アルファベットに変換。
>でできそうな気がしますが、AA列以降のことも考えるとめんどくさそう。

i = 1~256
ret = Replace(Chr(Int(i / 27) + 64) & Chr((i - 1) Mod 26 + 65), "@", "")

Sub ComboBoxListing()
Dim r As Range
Dim i As Integer
Set r = Range("B1:E20")
''空でない場合は以下を入れる
'ComboBox1.ListFillRange = ""
'ComboBox1.Clear
For i = r.Column To r.Column + r.Columns.Count -1
  ComboBox1.AddItem _
   Replace(Chr(Int(i / 27) + 64) & Chr((i - 1) Mod 26 + 65), "@", "") & "列"
Next i
Set r = Nothing
End Sub

例えば、こんな感じ?
でも、これは、Rangeオブジェクトを最初に取っているのだから、そのアドレスから取ればよいのですね。これに関しては、あまり差はないような気がします。

もしコンボボックスが、コントロールツールなら、そのプロパティの 「ColumnHead : True」にすれば、同じ列名と、内容が全部出るはずです。それは、質問とは違うかもしれませんが。^^;

こんにちは。

#1 さんの
>2、Chr関数を使って、アルファベットに変換。
>でできそうな気がしますが、AA列以降のことも考えるとめんどくさそう。

i = 1~256
ret = Replace(Chr(Int(i / 27) + 64) & Chr((i - 1) Mod 26 + 65), "@", "")

Sub ComboBoxListing()
Dim r As Range
Dim i As Integer
Set r = Range("B1:E20")
''空でない場合は以下を入れる
'ComboBox1.ListFillRange = ""
'ComboBox1.Clear
For i = r.Column To r.Column + r.Columns.Count -1
  ComboBox1.AddItem _
   Rep...続きを読む

QA列が空白なら、計算式の入っているB.C・・~列も空白で表示する方法。

A列に対して、B.C・・~列にそれぞれ違った式が入っています。
A列が空白だと、B列#N/A、C列1 ・・・と、それぞれ答えが返ってきます。
今までは、各B、C・・列に「A列が空白の場合は表示しない」設定を「条件付書式」を使ったり「IF(ISERROR・・」の関数を使ったり
無い知恵と知識を振り絞って悪戦苦闘の末、1列1列・・こつこつ設定していたのですが
「もっと簡単な方法があるのでは??」と都合のいいことを考えました。

しかし、恥ずかしながら私には知識が無いもので、そんな事が出来るのか、また仮に出来るとしても方法がわかりません。
関数でも、条件付書式でも、何でもかまいません。
指定したセルが空白の場合、そのセルに対して数式が入っている他の複数セルにも何も表示しないように一発で出来るようにするには、
どうすればいいのか教えて頂けませんか?
98です。出来るだけ簡単な方法がありがたいです。
余談なのかもしれませんが、B列にはVLOOKUPの関数、C列には「A列内の数字+1」と言う式が入っています。
C列はA列に0と入力しても、空白でも1という答えが返ってきてしまいます。そこでA列が空白の場合答えが表示されないようにしたいのです。)
宜しくお願いします。

A列に対して、B.C・・~列にそれぞれ違った式が入っています。
A列が空白だと、B列#N/A、C列1 ・・・と、それぞれ答えが返ってきます。
今までは、各B、C・・列に「A列が空白の場合は表示しない」設定を「条件付書式」を使ったり「IF(ISERROR・・」の関数を使ったり
無い知恵と知識を振り絞って悪戦苦闘の末、1列1列・・こつこつ設定していたのですが
「もっと簡単な方法があるのでは??」と都合のいいことを考えました。

しかし、恥ずかしながら私には知識が無いもので、そんな事が出来るのか、また仮...続きを読む

Aベストアンサー

ご質問の「もっと簡単??」、「一発で出来る」という事と解釈して回答しますので、相違していれば読み捨て下さい。
(1)対象範囲を選択
(2)選択された状態で数式を入力、完了時にctrl+enterキー同時に押下して下さい。
   一例ですが以下のようになります。
   =IF(セル<>"",VLOOKUPやセル+1の数式,"")
   セルが""(空白)でなければ数式を実行、空白ならば空白を設定。
為参考.B列はVLOOKUP関数の為、検索値が見つからない場合は#N/Aが戻りますので、IF(COUNTIF(検索範囲,A1),VLOOKUP数式,"")とする方法もあります。

QEXCELでA列とB列の文字が合わせてC列に入るやり方を教えて欲しいで

EXCELでA列とB列の文字が合わせてC列に入るやり方を教えて欲しいです。

A1セルは04+  B1セルは2000 C列に04+ 2000のように作りたいです(真ん中に1個スペース)。
セルが多すぎて、一個ずつやるのは大変時間かかりますので、関数のやり方をご教示ください。
よろしくお願いします。

Aベストアンサー

C1に
=A1&" "&B1

Qコンボボックスの値が変更されたらそのコンボボックスに表示されたURLを開きたい

データ型がハイパーリンクの文字列が入力されたテーブルをコンボボックスに表示させています。(添付画像参考)
希望は、
プルダウンでURLを選択したと同時にリンク先へ飛びたいです。
現在は、
プルダウンでURLを選択→コンボボックスをクリック
でリンク先に飛んでいます。
多分コンボボックスのChangeイベントだと思うのですが
どうすればいいのでしょうか?

アドバイスよろしくお願いします。

Aベストアンサー

No.2です。

> ""を開いています。

このメッセージから、推測される原因を確認した結果、
おおよそ状況がつかめました。

前回回答前のこちらでのテストでは、ハイパーリンク型
フィールドへのファイルのドラッグ&ドロップでアドレス
を記録したのですが、この場合、入力データにカーソルを
合わせた後、F2キーで編集モードにすると
「http//www.goo.ne.jp/#http//www.goo.ne.jp/#」
と、アドレスが二重に表示されます。
(実際には1個目のアドレスは文字列としての表示、
 2個目のアドレスが実際のリンク先)

一方、Webブラウザなどからアドレスをコピー&ペースト
した場合は
「#http//www/goo.ne.jp#」
と、実際のリンク先のアドレスのみが記録されますが、
このデータを「Call FollowHyperlink(コンボ0)」の
形で参照すると、エラーとなってしまうようです。
大変失礼致しました。


対処法としては、「データの先頭文字が『#』かどうかで
切り分け」も考えましたが、今回の件では「Follow」を
使用した方がよさそうです(汗)

Private Sub コンボ0_AfterUpdate()

  If Nz(コンボ0, ") = "" Then Exit Sub

  'コンボ0に記録されたハイパーリンクを実行
  '(FollowHyperlinkと違い、アドレスを引数とする必要
  ' はなし。こちらの詳細もヘルプを参照下さい(汗))
  コンボ0.Hyperlink.Follow

End Sub

No.2です。

> ""を開いています。

このメッセージから、推測される原因を確認した結果、
おおよそ状況がつかめました。

前回回答前のこちらでのテストでは、ハイパーリンク型
フィールドへのファイルのドラッグ&ドロップでアドレス
を記録したのですが、この場合、入力データにカーソルを
合わせた後、F2キーで編集モードにすると
「http//www.goo.ne.jp/#http//www.goo.ne.jp/#」
と、アドレスが二重に表示されます。
(実際には1個目のアドレスは文字列としての表示、
 2個目のアドレスが実際...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報