• ベストアンサー

Accessのクエリ内にある!マーク

Accessのクエリ内にある!マークはどういう意味ですか? <例> SELECT table1.item1 ,([table1]![item2] + [table1]![item3]) AS name1 FROM table1

質問者が選んだベストアンサー

  • ベストアンサー
  • gyokusei
  • ベストアンサー率80% (4/5)
回答No.1

Accessのクエリ内にある!マークは、クエリの式内でフィールドを参照するときに使用されます。上記の例では、[table1]![item2]は、table1テーブルのitem2フィールドの値を参照しています。!マークは、フィールドをテーブルから区別するために使用されます。例えば、table1とtable2という2つのテーブルがある場合、[table1]![item1]と[table2]![item1]は、2つのテーブルのitem1フィールドを区別するために使用されます。

webuser
質問者

お礼

ありがとうございます。 通常のSql言語の.『ドット』と同じですか? [table1].[item1]と記述しても同じ値が取れます。 サンプルに貰ったいくつかのアクセスのいくつかのクエリは大抵ドットを使っているのですが、一か所だけ!が使われています。 なぜそこだけ?と気持ちが悪いのですが、特に意味はないと思って大丈夫でしょうか?

関連するQ&A

  • Access97のクエリーでのDISTINCTROW について

    Access97のクエリーでのDISTINCTROWの解読の仕方がわからず困っています。 SELECT DISTINCTROW テーブル1.番号, テーブル1.D名, テーブル1.E名, FROM テーブル1 WHERE (((テーブル1.番号) In (SELECT [番号] FROM [テーブル1] As Tmp GROUP BY [番号] HAVING Count(*)>1 ))) ORDER BY テーブル1.番号; このSQL文はどういう条件のデータを選択する意味なのでしょうか。 教えてください。

  • Accessでのテーブルのコピー

    はじめまして、よろしくおねがいします。 リンクテーブルのバックアップテーブルを作りたいのですが、 Accessで出来るでしょうか? Access2003にて、 「Create table TABLE_A as select * from TABLE_B;」 のクエリを実行しようとすると、 「CREATE TABLEステートメントの構文エラーです」 とエラーが出ます。 TABLE_Bテーブルは、他のDBからのリンクテーブルです。

  • アクセスクエリ メモ型だとエラーになる

    アクセスのテーブル1(主キーなし)に *********************************************************** フィールド1(メモ型) あああ いいい ううう いいい *********************************************************** と言うデータがあるのですが 「あああ」「ううう」は1個で「いいい」は2つあります。 これを、クエリ1で *********************************************************** SELECT テーブル1.フィールド1, Count(テーブル1.フィールド1) AS フィールド1のカウント FROM テーブル1 GROUP BY テーブル1.フィールド1; *********************************************************** と作り、 新しいクエリで *********************************************************** SELECT テーブル1.フィールド1, クエリ1.フィールド1のカウント FROM テーブル1 INNER JOIN クエリ1 ON テーブル1.フィールド1 = クエリ1.フィールド1; *********************************************************** としたいのですが、 メモ型ではダメなのでしょうか? メモ型でフィールドを宣言しつつ、 このようなクエリを作るにはどうすればいいですか? テキスト型にすると問題なくいけます。

  • T-SQLとACCESSクエリのSELECT分内のif文の利用について

    お世話になります。 ACCESSクエリからSQLServer2005のストアドに移行を検討中です。 ACCESSクエリではINSERT INTO時のSELECT内にIIF文による条件分岐が使えたのですが、T-SQLでは、INSERT INTO時のSELECT内にIF文やswitch文は使えないのでしょうか?その場合、どのようにすれば宜しいでしょうか? 例> ACCESSクエリでは以下のようにかけると思うのですが・・・ INSERT INTO Table1 (Pコード,単価) SELECT Table2.Pコード,IIf(Table2.Check定価=1,Table2.定価A*Table3.値引率,Table2.定価B*Table3.値引率) FROM Table2 RIGHT JOIN Table3 ON Table2.Pコード = Table3.Pコード; 宜しくお願いします。

  • Accessのクエリで半角円マークが抽出できない

    いつもお世話になっております。 Windows XP(SP3) 上でAccess 2003 SP3を利用しているのですが クエリで"\"(半角円マーク)をWhere句に指定した際に 半角・全角とも抽出してしまい困っています。 回避策をご存知であれば教えてください。 ■サンプルデータ テーブル名を「テーブル1」登録データは次とします。 番号  名前(テキスト型)    説明 ---- ---------------------  -----------------  1 ああああ¥ああああ   #全角の円マーク  2 ああああ\ああああ    #半角の円マーク ■作成したクエリ SQLビューでいうと次になります。 SELECT 番号,名前 FROM テーブル1 WHERE 名前 Like "*\*" 【結果】 番号  名前(テキスト型)    説明 ---- ---------------------  -----------------  1 ああああ¥ああああ   #全角の円マークもヒットする  2 ああああ\ああああ    ■他に試したSQL (1)全角を明確に除外 SELECT テーブル1.番号, テーブル1.名前 FROM テーブル1 WHERE (((テーブル1.名前) Like "*\*" And (テーブル1.名前) Not Like "*¥*")); >>【結果】該当件数0件となりいずれもヒットしない (2)円マークをchrで指定 SELECT テーブル1.番号, テーブル1.名前 FROM テーブル1 WHERE 名前 Like ("*" & chr(92) & "*") >>【結果】2件ともヒット

  • Accessの選択クエリで

    アクセス2003で選択クエリでGROUP BYを使ったSQLを書きたいのですが、 count部は表示させなくて、グループのみ表示させる方法はありますか? SELECT NAME, COUNT(NAME) FROM CLASS_A GROUP BY NAME; CLASS_AというテーブルにあるNAMEの一覧を取得したいです。 グループを使った場合と、グループを使わない場合の両方について教えて欲しいです。

  • ACCESSのSQLクエリについて

    AccessでのSQLについて教えてください。 リンクテーブルAから新しいテーブルAを作成し、その新テーブルにオートナンバー型のフィールドを追加して、そのフィールドに主キーを設定する、という作業をしたいと思っています。 以下の3つの構文のクエリをそれぞれ作って出来たのですが、この操作を一度に行いたくて、以下のように1つのクエリに入れると、「FROM句の構文エラーです」と出てきてしまいます。 全くの素人で仕組みは全然理解できてないので、ちょっと調べたのですがよくわかりません。上手くいく入力方法を教えていただけると嬉しいです。よろしくお願いいたします。 SELECT Sheet1A.F1, Sheet1A.F2, Sheet1A.F3, Sheet1A.F4, Sheet1A.F9 INTO A FROM Sheet1A ALTER TABLE A ADD ID COUNTER ALTER TABLE A ADD PRIMARY KEY (ID);

  • SQLクエリ

    以下のようなAccessのテーブルがあったとします。   time  -------------- (1) 200207050545 (2) 200207050546 (3) 200207050733 そこで、以下のようなクエリを実行したとします。 SELECT time from table WHERE time <= '200207050546' 当然、得られる結果は(1)(2)です。 しかし、条件を『time <= 'a'』にすると、(1)(2)(3)の結果が得られてしまいます。 条件が『time <= 'a'』のときはレコードなしにしたいのですが、 どうすればよいでしょうか?

  • SQL Server 2008 クエリをデバッグしていますで延々と時計マーク

    新しく搭載された 順位付け関数を使いたいと思い SQL Server 2008 Developerを購入してインストールしました。 2005からのアップグレードインストールが失敗するので 一度2005をアンインストールして、2008を新規インストールしました。 うまく行き、MS SQL Server Management Studio を開いて、TESTというデータベースをGUIで作成し 次のその中に dbo.SCORE_TABLE  というテーブルを作成しました。 新しいクエリの画面で、クエリを投げました。 select * from dbo.SCORE_TABLE ところが、待てど暮らせど クエリをデバッグしています というメッセージが出たままで延々と時計マークです。 キャンセルしました。 ほとんど2005と同じ画面に 見えるのですが、2008からはクエリを投げる前に 何かの設定作業が必要でしょうか? どうぞよろしくお願いいたします。

  • AccessのクエリでvbLfのみ抽出するには

    Access2010のクエリー(SQL)で vbLfかvbCrLfが含まれているレコードを抽出するには、 SELECT [テーブル1].* FROM テーブル1 WHERE [テーブル1].フィールド1 Like "*" & Chr(10) & "*"; vbLfが含まれているレコードは抽出せず、 vbCrLfが含まれているレコードだけを抽出するには、 SELECT [テーブル1].* FROM テーブル1 WHERE [テーブル1].フィールド1 Like "*" & Chr(13) & Chr(10) & "*"; でよいと思いますが、 vbCrLfが含まれているレコードは抽出せず、 vbLfが含まれているレコードだけを抽出するには、 どのように記述すればよいのでしょうか。 よろしくお願いします。