SQL文を見ていると、
SELECT ・・・・・・・・INTO SURVEY IN 'DEPOSIT.mdb'
となりますよね。で、このIN以下は、ACCESSのツール→オプション→全般で指定した「規定のデータベースフォルダー」にあるものになりますよね。
これを、たとえばネットワーク上の他のコンピューターのフォルダーに保存させることは出来ますか? 「規定のデータベースフォルダー」をネットワーク上にする方法よりも出来ればSQL上で書いてしまいたいのですが。

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

A 回答 (2件)

はじめまして


>SELECT ・・・・・・・・INTO SURVEY IN 'DEPOSIT.mdb'

SELECT ・・・・・・・・INTO IN '\\コンピュータ名\共有フォルダ名\DEPOSIT.mdb'
でできませんか?
Access2000では使ったことがないのでわかりませんが
Access97の時はたしかできました。
    • good
    • 0
この回答へのお礼

ありがとうございました。無事にできました。

お礼日時:2002/04/03 14:02

すみませんまちがえました。



SELECT ・・・・・ INTO テーブル名 IN '\\コンピュータ名\共有フォルダ名\DEPOSIT.mdb'

補足ですが
SELECT ・・・・・
FROM テーブル名 IN '\\コンピュータ名\共有フォルダ名\DEPOSIT.mdb'
ということもできます。 きっと
    • good
    • 0

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

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

関連するカテゴリからQ&Aを探す

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

QSQL文について質問です(mdb)

ADO接続にてmdbを使い開発しています。

例えば、フィールドが[001],[002],[003]とあるとします。
いずれかひとつだけに値が入っていた場合にそのレコードを取得したいと思っています。

例えば、
・[001]がNull、[002]が'1'、[003]がNullであれば[002]にのみに値があるので抽出
・[001]が'1'、[002]が'1'、[003]がNullであれば[001]と[002]の2つに値が入っているので対象外。
といった感じです。

また、[001],[002],[003] は3つだけとは限らずその時々によって変化します。

どなたかお力添え頂けたらと思います。

Aベストアンサー

フィールドの値がNULLなら1、NULL以外なら0に置き換えて合計を別フィールドに出力する方法をクエリーで考えてみました。

SELECT IIF(IsNull([001]),1,0) AS F1, ... , F1+F2+F3 AS CF ...

やり方にこだわらないなら、同様の方法で CF=1 を検索条件に使うとできると思われます。

QMS SQL上にあるデータベースのデータをExcelにエクスポートしようとすると65536行以上書き込めずにエラーが出てきてしまう。

ある仕事上の必要性からMS SQLにて管理しているデータを
Excel上に吐き出す必要が出てきました。
そのため、SQL Server Enterprise Managerを利用して
「全てのタスク→データのエクスポート」と指定していき、Microsoft Excelにデータのエクスポートを指定し、実行
したのですがSQLより65000行ほどデータをエクスポートした時点でエラーが起こり、中断してしまいます。
エクセルを見た所では65536行で中断しております。
これは、おそらくエクセルの行の限界であると思うのですが、SQLからエクセルにエクスポートを行う際に一定行以上
となったら新たにエクセルのシートを作成させたり新たな
エクセルファイルにてエキスポートを行う事は可能でしょうか?
もし、不可能である場合では大容量(100万行以上)の
SQLデータベースを閲覧可能&プリント可能な状態で
アウトプットを行う方法をご教授願えればと思います。
宜しくお願いいたします

Aベストアンサー

Excelではなくてもいいということでしょうか?

Accessへの移行が可能ならば、Accessへ移すことで、閲覧が可能になると思います。
また、レポート機能を使用することで、プリンタへの出力も可能です。

QMDB→SQL Server Expressの移行

 
お世話になります。
長文失礼します。

現在稼動中の MS ACCESS 2003で作られた業務管理システムがあります。
そのシステムのDB部分のみ SQL Server 2008 Express に移行するという作業を行なっています。
※データ照会などのレスポンスアップが目的です

現行のシステムは

FORM.MDB(インターフェースのみ) → DATABASE.MDB(データのみ)

移行後は

FORM.MDB(インターフェースのみ) → SQL Server 2008 Express(データのみ)

となります。

まず、DATABASE.MDBにあるテーブルをACCESSの機能である
"アップサイジングウィザード"を使用し、SQL Server に移行しました。
次にテーブルのリンク先をDATABASE.MDB から SQL Server に張り替えました。

基本的には上記の処理のみでデータの照会等うまくいっているのですが
大量の件数(約20万件)のデータを照会する画面で結果が表示されるまでの速度が
(現行のシステムと比較して)低下したため改善を行なっております。

上記の照会画面では ACCESSのクエリで複数のテーブルを繋げ、集計した結果を表示しています。
このクエリの代わりにSQL Server側でビューとして作成し、それに対してテーブルリンクを張れば
良いのではないかと考え、実行しました。ビューにリンクを張ったクエリ名を仮に"Q_照会"とします。

結果、照会結果を表示するまでの時間はかなり短縮できた(ように見えた)のですが
照会結果をスクロールや、PageUpキーによるページ移動をすると毎回1、2秒後に
スクロール後の結果が表示されます。※現行システムではスムーズにスクロールします。

プロファイラで監視してみるとページ移動した時に、"Q_照会"をテーブルキー指定で
SELECT している事がわかりました。毎回10レコード取得しています。
この様な記述は私は書いていませんのでACCESS(SQL Server?)が勝手に行なっている
動きだと思われるのですがどこかで設定できるのでしょうか?

また今回、ACCESSのクエリをSQL Serverのビューに置き換える方法を取りましたが
別の方法でレスポンスアップが望める方法があればご教授お願い致します。
 

 
お世話になります。
長文失礼します。

現在稼動中の MS ACCESS 2003で作られた業務管理システムがあります。
そのシステムのDB部分のみ SQL Server 2008 Express に移行するという作業を行なっています。
※データ照会などのレスポンスアップが目的です

現行のシステムは

FORM.MDB(インターフェースのみ) → DATABASE.MDB(データのみ)

移行後は

FORM.MDB(インターフェースのみ) → SQL Server 2008 Express(データのみ)

となります。

まず、DATABASE.MDBにあるテーブルをACCESSの機能である
"アッ...続きを読む

Aベストアンサー

Accessは勝手にSQLを投げます。これはODBCなどの仕様にもなります。
要するにAccessは一人で使うもの。だからリソースをふんだんに使ってよいという設計になってます。
SQLサーバーに限らずOracleでも複数人で使うDBはPG側で考慮が必要なので、TBをスクロールするなどの処理は避けます。というような基本的な事は後で学んでください。
パフォーマンスを上げる事だけに特化すれば、まずその情報は何を基準に検索するのか。どのキーでビューを作成しているのか。
キー項目ならインデックスは自動で付加されますが、キー項目以外でリレーションを張る場合は、対象の項目にインデックスを張る。さらに検索対象の項目にもインデックスを張ります。
インデックスは多ければ今度は更新時に遅くなります。その辺はDB設計に考慮を組み込んでおきます。
またAccessはテーブルリンクは使わない。TBになるものを全てパススルークエリで作ります。
つまりAというTBをリンクするのではなく、SELECT * FROM Aというクエリをパススルー定義で作り参照するという苦肉の策です。本来は目的の情報だけをAccess側で扱うようにするため、SELECT XXX,XXX,XXX,XXX from A Where XXX = 'YYY' とちゃんとそのたびにクエリをパススルーで投げるのが一番です。そのためにはパススルークエリをADOXでそのたびに作成する必要があります。
そこまでやるなら、VBAで全て書き直しEXCUTEした方が早いです。
さらに早くするのはストアドプロシージャをSQL上に作成し、変数を投げて結果だけを取得するなどしてください。

Accessは勝手にSQLを投げます。これはODBCなどの仕様にもなります。
要するにAccessは一人で使うもの。だからリソースをふんだんに使ってよいという設計になってます。
SQLサーバーに限らずOracleでも複数人で使うDBはPG側で考慮が必要なので、TBをスクロールするなどの処理は避けます。というような基本的な事は後で学んでください。
パフォーマンスを上げる事だけに特化すれば、まずその情報は何を基準に検索するのか。どのキーでビューを作成しているのか。
キー項目ならインデックスは自動で付加されますが、...続きを読む

QSQL NOT INで抽出できない

SQL NOT INで抽出できない

SQLで条件抽出したいと思っています。テーブル1に「名前」というフィールドがあるとします。名前には「青木さやか」、「矢口真里」、「青山裕子」、「山田はな子」・・・などがあります。文字列の中に「青」や「子」が含まれていたら、抽出条件から外すといった処理をしたいと思っています。この例でいうと、「青木さやか」、「山田はな子」は抽出条件から外します。

そこで、
select 名前 from テーブル1 where 名前 NOT IN('青','子')
といったら文を書きましたが、うまく動きません。どういった文にすればよいでしょうか?よろしくお願いいたします。

Aベストアンサー

In演算子では指定したリスト内(→今回の例では「青,子」)と完全一致した
ものしか抽出対象になりませんので、「リスト内の文字を含むもの」を抽出
したいということでしたら、既に回答がある通り、Like演算子を使用する必要
があります。

なお、リストとして列挙する項目がそれぞれ一文字ずつなのでしたら(つまり
「'青木', "裕子"」といった、複数文字の項目からなるリストでないなら)、
以下のSQLでも対応可能です:

Select 名前 From テーブル1 Where 名前 Not Like "*[青子]*"

念のために明記しておきますが、角括弧内の項目は、カンマ等の区切りは
【無用】です。
(No.2の方と同様、AccessでANSI89系(→Accessの初期設定値)の場合。
 メニューで「ツール(T)→オプション(O)」で『オプション』ダイアログを開き、
 『テーブル/クエリ』タブを選択すると「SQL サーバー互換構文 (ANSI92)」欄
 で設定変更が可能:Access2003)
※「ANSI○○」については下記URLを参照下さい。


また、今回の例では使えませんが、角括弧([ ])を使用した曖昧検索では、
ハイフン(-)を使用することで文字範囲を指定すること等も可能ですので、
併せて今後の参考まで:
http://office.microsoft.com/ja-jp/access/HA100766011041.aspx
(適用対象がAccess2007となっていますが、それ以前のバージョンでも同様)

In演算子では指定したリスト内(→今回の例では「青,子」)と完全一致した
ものしか抽出対象になりませんので、「リスト内の文字を含むもの」を抽出
したいということでしたら、既に回答がある通り、Like演算子を使用する必要
があります。

なお、リストとして列挙する項目がそれぞれ一文字ずつなのでしたら(つまり
「'青木', "裕子"」といった、複数文字の項目からなるリストでないなら)、
以下のSQLでも対応可能です:

Select 名前 From テーブル1 Where 名前 Not Like "*[青子]*"

念のために明記し...続きを読む

Q【SQL文】 where (colA & colB) in ((1 & 1), (2 & 2)) とは?

VB6のプログラムを読んでいたら、ACCESSのMDBにSQL文を
投げる際に以下のような記述がありました。

------------------------------------------------------
select * from tableA
where (colA & colB) in ((1 & 1), (2 & 2))
------------------------------------------------------

これはどういったことを表しているのでしょうか?

雰囲気的には
(colA, colB) の組み合わせが (1, 1) か (2, 2)
というようなことを表しているのかなと思うのですが
はっきりとわからなかったため質問させていただきました。

また、これはOracle等の他のDBでも使用できる構文
なのでしょうか?

ご存知の方がいらっしゃいましたら教えていただけたらと
思います。

Aベストアンサー

<IN=集合>

WHERE節のキーワード INに値を列挙することで、その値を持つ列を抽出することができます。

<列名> [NOT] IN (<値1>,<値2>,...<値n>,)

SELECT * FROM 得意先一覧 WHERE 郵便番号 IN ('8300001', '8300002')

Informix、SQL Sever では、このように書きます。
ですから、構文としては共通した書き方です。
ただし、Access では、演算子をSQLのそれでなくVBAのそれが通用します。

・文字列の加算・・・&
・'11' と 11とで型照合エラーが発生しない。

などです。

ですから、Access 以外では、次のような書き方が一般的。

[イミディエイト]
? DBSelect("SELECT * FROM A WHERE 列1+列2 IN ('1'+'1', '2'+'2')")
1;2;2;
2;1;1;

この場合、列1と列2の組合せが1+1、2+2 を取得しています。

ただし、示されているコードはバグに近い書き方です。

[イミディエイト]
? DBSelect("SELECT * FROM A WHERE 列1+列2 IN ('11'+'11', '22'+'22')")
1;11;11;
2;22;22;
3;111;1;

[イミディエイト]
? DBSelect("SELECT * FROM A WHERE 列1+'/'+列2 IN ('11/11', '22/22')")
1;11;11;
2;22;22;

この2つではヒットするレコードが違います。
ちょっと、問題ありかと思います。

<IN=集合>

WHERE節のキーワード INに値を列挙することで、その値を持つ列を抽出することができます。

<列名> [NOT] IN (<値1>,<値2>,...<値n>,)

SELECT * FROM 得意先一覧 WHERE 郵便番号 IN ('8300001', '8300002')

Informix、SQL Sever では、このように書きます。
ですから、構文としては共通した書き方です。
ただし、Access では、演算子をSQLのそれでなくVBAのそれが通用します。

・文字列の加算・・・&
・'11' と 11とで型照合エラーが発生しない。

などです。

ですから、Access...続きを読む


人気Q&Aランキング

おすすめ情報