6

テーブル「tblItems」があるとします。

*ID*    |     *Name*
1       |   First Item
2       |  Second Item

フォームのドロップダウンにこれを入力したいと思います。行を追加するにはどうすればよいですか?

ALL     |    SHOW ALL

になる

*ID*    |     *Name*
1       |   First Item
2       |  Second Item
ALL     |    SHOW ALL

Row Sourceコンボボックスのに配置するクエリが1つありますか?これを行うためのAccess構文を見つけることができませんでした。

AFAIK、次のような構文が必要です

SELECT ID, Name FROM tblItems
UNION
SELECT 0, "All" FROM SOME.SYSTEM.DUMMY.TABLE

私が見つけられないのは、そのダミーテーブルのAccessバージョンです。1つのフォームに1つの行を格納するためだけに別のテーブルを作成したくはありません...しかし、私が読んでいることから、私はそうしなければならないかもしれません。

4

5 に答える 5

8

あなたはこのようなことをすることができます:

select ID, Name
from tblItems
union all
select 'ALL', 'SHOW ALL'

常に下部に表示したい場合は、もう少し複雑にする必要があります。

コメントによると、Accessは句のSELECTないステートメントをサポートしていないことに気づきましたFROM。これは煩わしいことです。回避策は、テーブルを作成するtblAllことです(構文には変更が必要な場合があります)。

create table tblAll(ID varchar(15), Name varchar(30));
insert into tblAll(ID, Name) values ('ALL', 'SHOW ALL');

次に、次のことができます。

select ID, Name
from tblAll
union all
select str(ID) as ID, Name
from tblItems
于 2012-06-13T13:22:41.043 に答える
8

私がしていることは、SELECT TOP 1ステートメントを使用し、既存のテーブル名を使用することです。したがって、次のようになります。

SELECT ID, Name FROM tblItems
UNION
SELECT TOP 1 'ALL', 'SHOW ALL' FROM tblItems

これにより、既存のテーブルからの選択とともに単一の行が表示されます。行には任意のテーブルを使用できますTOP 1

于 2013-09-17T15:51:45.710 に答える
3

JeremyHolovacsの回答をMSAccessで機能するように修正したいだけです。このようにして、同じテーブルを使用でき、ダミーテーブルを作成する必要はありません。

SELECT ID, Name
FROM tblItems
UNION ALL
SELECT TOP 1 'ALL', 'SHOW ALL' 
FROM tblItems
于 2015-10-06T19:12:14.057 に答える
2

を使用できますUNION ALLが、定数と列の間に不一致があります(「ALL」は整数ではありません)。あなたは次のようなことをするかもしれません:

select ID, NAME from tblItems
union all
select 0, 'SHOW ALL'

アプリケーション側では、ID0を「SHOWALL」と解釈します。または、IDを文字列に変換します。

select str(ID), NAME from tblItems
union all
select 'ALL', 'SHOW ALL'
于 2012-06-13T13:23:59.647 に答える
2

以下は、テーブルに行がある場合にのみ機能します。空のテーブルがある場合は機能しません。

SELECT ID, Name
FROM tblItems
UNION ALL
SELECT TOP 1 'ALL', 'SHOW ALL' 
FROM tblItems
于 2016-08-26T10:53:09.610 に答える