初心者ですが、よろしくお願いします。
Access 同様のクエリ操作が出来るのでしょうか?
例)グループ化、抽出設定、関数の使用、更新・テーブルクエリ 等

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

A 回答 (2件)

機能面では、SQL Serverが上回りますが、クエリはデザイナを使って作成するものだと思っていると、ちょっと苦労するかもしれません。


SQL Serverのクエリデザイナは、あくまで補助的なもので、Accessのものほど高機能ではありません。やはり直接SQL文を書くのが基本です。

なお、おそらく唯一Accessでしかできないクエリ機能は、クロス集計クエリです。これをクエリ(ビュー)で実装することは、SQL Serverではできません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
初心者レベルではやはり、難しそうですが、、、頑張ってみます!
また機会があったら、お願いします!

お礼日時:2011/04/10 23:10

マイクロソフトですよね。

もちろん出来ます。
サーバーさえ設定されていれば無料のマネージメントスタジオでもクエリは走らせられますよ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
サーバー自体に設定があるんですね。
また教えて下さいm(__)m

お礼日時:2011/04/10 23:15

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

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

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

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

QエクセルのWEBクエリとアクセスのクエリは意味が違

エクセルのWEBクエリとアクセスのクエリは意味が違うのでしょうか?
そもそもクエリとはどういう意味ですか?

ずっとエクセルのWEBクエリを使ってきて、最近アクセスを使うようになったのですが
アクセスのクエリに戸惑っています。

Aベストアンサー

>エクセルのWEBクエリとアクセスのクエリは意味が違うのでしょうか?

全く別物です。

>そもそもクエリとはどういう意味ですか?

単語としては「質問」「問い合わせ」。

Webクエリは、お使いになっているのでおわかりかと思いますが、Webの内容を定型的にシートに貼り付ける機能です。

一方、Access はデータベースソフトですから、ここで言うところのクエリとは、データベース内のデータに対し、抽出・閲覧・更新などを行う機能を指します。
内部的にはSQLと言う言語が使われます。

QAccessのクエリをSqlサーバーのクエリへ変換

Accessで書かれたクエリをSqlサーバーのクエリに変換したいと考えているのですが
そのクエリは膨大な行数ある上にIIF関数やSwitch関数がそこら中に含まれており、一つ一つ置換していられません。

もしどなたかIIF関数などのAccessのクエリをSqlサーバーのクエリへ変換してくれるソフトをご存知の方いらっしゃいましたら教えていただければ幸いです。

よろしくお願いいたします。

◆バージョン
SQL Server:SQL Server 2008 R2
ACCESS:ACCESS2000
OS:Windows7

Aベストアンサー

実際に使ったことがないのであまり自信がないのですが、Access オブジェクトの SQLServer への移行にMicrosoft SQL Server Migration Assistant (SSMA) for Access というツールが使えるようなことが書いてあります。たしかクエリも Access オブジェクトの一種でしたよね。試してみてはいかがでしょうか。

SQLServer 関連ソフトウェアのダウンロードページ(SSMA for Access へのリンクあり):
http://www.microsoft.com/ja-jp/sqlserver/2012/downloads/default.aspx

SSMA for Access の使い方(英語):
http://blogs.msdn.com/b/ssma/archive/2011/01/29/access-to-sql-server-migration-how-to-use-ssma.aspx

Qエクセルからアクセスの全てのクエリ名を取得すること

エクセルからアクセスの全てのクエリ名を取得することはできますか?

アクセスからなら
http://www.accessclub.jp/vbakaisetu/58.html
これでできたのですが、
エクセルからアクセスの全てのクエリ名をシートに書き出したいのですが
どうすればいいでしょうか?

エクセルからアクセスのクエリ名を取得するプロシージャーを実行して
変数に格納し、エクセルに戻すしかないのでしょうか?

Aベストアンサー

Excelのコード表の参照設定で、
Microsoft DAO xx Object Library
にチェックを入れて置いてください。
なお、xxは3.6のような数字です。

Sub test()
  Dim db As DAO.Database
  Dim qdf As DAO.QueryDef
  Dim myQdfName As Variant
  Dim i As Long
  Dim j As Long

  Set db = OpenDatabase("C:\Temp\sample.mdb")
  'クエリ名の取り出し
  ReDim myQdfName(i)
  For Each qdf In db.QueryDefs
    If Left(qdf.Name, 1) <> "~" Then
      ReDim Preserve myQdfName(i)
      myQdfName(i) = qdf.Name
      i = i + 1
    End If
  Next qdf

  'シートへの書き込み
  For j = LBound(myQdfName) To UBound(myQdfName)
    With Worksheets("Sheet1")
      .Cells(j + 1, 1).Value = myQdfName(j)
    End With
  Next j

  Set qdf = Nothing
  db.Close: Set db = Nothing
End Sub


クエリの数は不明なので、一旦配列に取り込み、
それをシートに書き込む仕様にしています。

なお、No1さんのおっしゃるMsQueryからは、肝心なMSysObjectsや
MSysQueriesの列は参照できないようです。Accessのバージョンに
よってことなるかもしれませんが。

Excelのコード表の参照設定で、
Microsoft DAO xx Object Library
にチェックを入れて置いてください。
なお、xxは3.6のような数字です。

Sub test()
  Dim db As DAO.Database
  Dim qdf As DAO.QueryDef
  Dim myQdfName As Variant
  Dim i As Long
  Dim j As Long

  Set db = OpenDatabase("C:\Temp\sample.mdb")
  'クエリ名の取り出し
  ReDim myQdfName(i)
  For Each qdf In db.QueryDefs
    If Left(qdf.Name, 1) <> "~" Then
      ReDim Preserve myQdfName(i)
   ...続きを読む

QSQL Server 2008 を使用しています。bcpコマンドでクエ

SQL Server 2008 を使用しています。bcpコマンドでクエリー結果をエクスポートする際に、1行目に列名を含めるにはどうしたらよいでしょうか?

>bcp "select * from [db1].[dbo].[table1]" queryout output.txt -c -t"," -r"\n" -T
などとしてクエリー結果をテキスト出力する際、上記のコマンドを実行すると1行目からいきなり条件に一致したデータで始まってしまうのですが、1行目に列名を含めるにはどうしたらよいでしょうか?

Aベストアンサー

BCPには列名を出力するオプションはありません。
「BCP 列名」で検索すると同様の質問、回答をがすぐに出てきます。

別途列名を取得したCSVをコマンドプロンプトで結合するような
対応が多いようです。

Qアクセス テーブル容量とクエリ速度 ローカルでアクセス2010を使用しています。 一般的に2Gまでと

アクセス テーブル容量とクエリ速度



ローカルでアクセス2010を使用しています。
一般的に2Gまでとプログラム容量が言われていますがクエリをサクサク動かしたいのでクエリ結果を小刻みにテーブル作成クエリで作っています。その度に容量が増え、最適化などを行います。教えて頂きたいのは、多少重くてもクエリにクエリを重ねたりしてでも、テーブルを作るより良いものなのでしょうか?
さじ加減がわからないので教えてください。

Aベストアンサー

別に、容量許す限りテーブル作成してもいいですよ。
例えば月次の集計なんかは、月締めしたらテーブルに切り分けて、それを元に集計しますし。
ケースバイケースですね。

あまり重くなるなら、データとクエリとをファイルごと分けたらいいんです。
いわゆる分散化です。
それだと最適化も早いし。

QSQL2008 クエリ文について

いつもお世話になっております。
一応30分ほど自力で考えましたが、断念しました。
どなたかご教授下さい。

テーブルAの中に、以下の様なデータがあるわけですが、

KAINo SEQ 
0001    1
0001    2
0001    3
0001    5
0002 1
0002 5

1つのKAINoに対して、存在するSEQがバラバラなので、全てのKAINoにSEQ1~7を
作るクエリを流したいのです。

(↑をこんな感じに↓)
KAINo SEQ 
0001 1
0001 2
0001 3
0001 4
0001 5
0001 6
0001 7
0002 1
(略) 
0002 7

どの様なクエリになるのでしょうか?
そもそもクエリで可能なのでしょうか?
どうぞ、よろしくお願い申し上げます。

いつもお世話になっております。
一応30分ほど自力で考えましたが、断念しました。
どなたかご教授下さい。

テーブルAの中に、以下の様なデータがあるわけですが、

KAINo SEQ 
0001    1
0001    2
0001    3
0001    5
0002 1
0002 5

1つのKAINoに対して、存在するSEQがバラバラなので、全てのKAINoにSEQ1~7を
作るクエリを流したいのです。

(↑をこんな感じに↓)
KAINo SEQ 
0001 1
0001 2
0001 3
0001 4
0001 ...続きを読む

Aベストアンサー

select t1.KAINo ,
(select count(*) from テーブルA t2 where t1.KAINo = t2.KAINo and t2.SEQ <= t1.SEQ)
from テーブルA t1

KAINo SEQ 
0001    1
0001    2
0001    3
0001    5
0002 1
0002 5
上の順にt1で取得されるとして、
(select count(*) from ・・・)は、それぞれ
1
2
3
4
1
2
となります。
件数多いとちょっと遅いので要注意ですが。

Qユニオンクエリで繋げられるテーブル(クエリ)の上限の個数は?

access2003です。
ユニオンクエリで繋げられるテーブル(クエリ)の上限の個数はいくつなんでしょうか?
またSQL文は1024文字越すとエラーになるのでしょうか?
よろしくお願い致します。

Aベストアンサー

Accessのヘルプで、仕様制限と検索してください

「Access の定義」と出てきます

そこで、クエリでの使用テーブル数32(Access2000/2002)の場合、出てきます
2003は、判りませんが、ヘルプを読んでみて下さい

> またSQL文は1024文字越すとエラーになるのでしょうか?

それも、ヘルプで、
> SQL ステートメント内の文字数 約 64,000
となってません?

QSQL2008 クエリ文について

いつも皆様に助けていただいてます。
過去に色々聞いているものの、なかなか応用が利かず・・・今回もご支援下さい。

SQL2008に、1つのDBを作っていて、その中にテーブルAとテーブルBがあります。
テーブルAには、1つの会員Noにつき3つのSEQ1~3の行があって、それぞれにポイント数が入ってます。

テーブルA
会員No  SEQ   Point
1001     1     20
1001     2     30
1001     3     50
1002     1     15
1002     2     10
1002     3      0 

テーブルBには、1つの会員につき最大10個のSEQが付きますが、今は殆どカラッポです。

テーブルB

会員No  SEQ  Rank
1001    1    5
1002    1    5


やりたいことは、テーブルAのSEQ1のポイント数が99以外なら、テーブルBに
テーブルAの「会員NO」、SEQ「7」、Rank「1」 の行を挿入したいです。

クエリ実行後のテーブルB

会員No  SEQ  Rank
1001    1    5
1001    7    1
1002    1    5
1002    7    1

テーブルAのSEQ1のPointが99以外なら、テーブルBに「会員No」とSEQ「7」 とRank「1」を挿入、という概要です。

クエリで可能でしょうか?
先ずは自力である程度やってみるのが筋なんでしょうが、時間が無いので聞いてしまいます。
何卒よろしくお願いします。

いつも皆様に助けていただいてます。
過去に色々聞いているものの、なかなか応用が利かず・・・今回もご支援下さい。

SQL2008に、1つのDBを作っていて、その中にテーブルAとテーブルBがあります。
テーブルAには、1つの会員Noにつき3つのSEQ1~3の行があって、それぞれにポイント数が入ってます。

テーブルA
会員No  SEQ   Point
1001     1     20
1001     2     30
1001     3     50
1002     1     15
1002     2     10
1002   ...続きを読む

Aベストアンサー

insert into テーブルB(会員NO,SEQ,Rank)
select
a.会員NO,'7','1'
from
テーブルA as a
where
SEQ = '1' and
Point <> '99'

ん?単純に、こういうこと???


ただし、
・一発処理。(定期実行なんぞ考慮してないです。データを用意する目的で、全部データがそろってる状態~で最初に一発だけ流すようなもんです。
・重複なんぞ考慮してない。(だからこその一発処理。ではあるけど。ついでに言うと、テーブルBで会員Noでプライマリとってあったりしたら入らないけどね。うん。(まぁ、クエリ実行後のテーブルBを見た限りは、大丈夫か。うん。


定期処理にしたりするのなら、not existsとかでも使ってやる必要があるかと思います。

まぁ、

select
a.会員NO,'7','1'
from
テーブルA as a
where
SEQ = '1' and
Point <> '99'

とりあえず、コレだけで実行してみてください。

QSQLサーバーに保存してあるクエリをアクセスで開くには?

SQLサーバーに保存してある「クエリ1.sql」をアクセスで開くにはどうすればいいでしょう?
アクセスで「リンクテーブル」→「ODBC接続」
でテーブルのリンクはできているのですが
クエリをリンクするにはどうすればいいでしょうか?

宜しくお願い致します。

Aベストアンサー

多分、この質問と同じですよね。

http://oshiete1.goo.ne.jp/qa4966123.html

クエリ1.sqlは、データベースのオブジェクトとしてではなく、単にテキストファイルとして保存されているので、Access からはリンクできません。

多分、やりたい事は、そのクエリをそのまま Access から実行、と言う事でしょうから、解としては、そのファイルを開いてクエリをコピーして、Access のパススルークエリを作成して、ペーストです。

QSQL2008 クエリ文について

いつも助けてもらってます。
皆様ありがとうございます。

以下の内容で1つのテーブルを更新するクエリを作りたいのですが、どうしたら良いでしょうか?
本見て自力で考えれば良いんでしょうが、、、、よろしくお願いします。

1つのテーブル、「A」があるとしまして、その中には会員Noや、SEQ、Point、Point2といった
列があります。
1つの会員Noに、3つの行、SEQ1~3が必ずあります。
更新したい行はSEQ1だけです。
Pointは整数で、Point2は小数点第一位までの表記です。

テーブルA

会員No  SEQ   Point   Point2
1001     1     20    99.0
1001     2     30    99.0
1001     3     50    15.5
1002     1     99    10.2
1002     2     99    21.6
1002     3     99     10.0

やりたい事は、
SEQ1の中で、
Pointが99以外でPoint2が99.0なら、Point2へPointの数値を移したい。
Pointが99でPoint2が99.0以外なら、PointへPoint2の四捨五入した数値を移したい。
要するに、SEQ1のPoint,Point2、片方だけ99、という現状がマズイので直したい。

という内容です。

会員No  SEQ   Point   Point2
1001     1     20    20.0 ←更新
1001     2     30    99.0
1001     3     50    15.5
1002     1     10    10.2  ←更新
1002     2     99    21.6
1002     3     99     10.0

上記の様になれば、、と思います。

何卒ご指南くださいませ。

いつも助けてもらってます。
皆様ありがとうございます。

以下の内容で1つのテーブルを更新するクエリを作りたいのですが、どうしたら良いでしょうか?
本見て自力で考えれば良いんでしょうが、、、、よろしくお願いします。

1つのテーブル、「A」があるとしまして、その中には会員Noや、SEQ、Point、Point2といった
列があります。
1つの会員Noに、3つの行、SEQ1~3が必ずあります。
更新したい行はSEQ1だけです。
Pointは整数で、Point2は小数点第一位までの表記です。

テーブルA

会員No  SEQ ...続きを読む

Aベストアンサー

UPDATE テーブルA SET Point2=Point WHERE SEQ=1 AND Point!=99
UPDATE テーブルA SET Point=ROUND(Point2,0)
WHERE SEQ=1 AND Point=99 AND Point2!=99.0
の2個のSQLで出来ます。


人気Q&Aランキング

おすすめ情報