Access2000+SQL Server難しい・・・(´д`;) (185レス)
1-

1
(13): 1 01/10/03 17:04 AAS
今までACCESSのみでフォームやレポートを作成するときワーク
テーブルを作成しそれをレコードソースとして作成していました。
しかし、ADOではクライアントにワークテーブルを作成する事が
できないですよね。
皆さんはこの辺をどういう方法で処理していますか?
本によるとストアドプロシジャーを使って対応できるとか書いてあり
ますがいまいち方法はわかりません。
2
(3): ACCESS超初心者 01/10/03 20:57 AAS
私もこれ やりかた探してるんですが・・・
Transact-SQLのヘルプで CREATE TABLE ってあるんですが、ここに「一時テーブル」っていうのがあるんです。
クライアント側に作るんじゃないけれど 同じような使い方ができそうなんですけれど・・・
ストアドの中で作ってその間だけしか使えないと プログラム全体(フォームとか)をストアドの中で
呼ばないと使えないのかな?
とか・・・ よくわからないのです。
ヘルプの意味もよくわからない・・・ (/_;)

どなたか詳しい方いらしたら教えてください!!
わたしからも よろしくお願いします!! m(u_u)m
3
(1): 01/10/03 22:48 AAS
クライアントにワークのmdb作るだけじゃないのか?
ado接続もできるんだし。
4: ACCESS超初心者 01/10/04 02:09 AAS
あれ? 私は1の方の書いてる意味を 勘違いしてたみたいです。

ワークテーブルってテンポラリーのテーブル=一時テーブルのことだと思っちゃいました。

スミマセン 自分が一時テーブル使いたくて探してたもので「同じ質問の人がいる〜」って
思ってしまいました。
こちらも ご存知でしたら 教えてください、お願いします。
5
(1): 01/10/04 02:33 AAS
>>1 フォームのレコードソースにするだけならビューを使えばいいのでは。
   またはSQL文を直接レコードソースにいれれば。

>テンポラリーのテーブル=一時テーブル
って何のために??フォームをストアドで呼ぶというのもよくわからん。
ストアドはデータベース側で動くもので、
クライアントはコマンドとパラメータを渡すだけだよ。

何がやりたいかを書けばレス付くのでは?
6
(7): 01/10/04 05:52 AAS
>>2
一時テーブルはクライアントがDBを閉じるまで有効だったと思います。
ストアドの実行方法を理解されてることを前提に書きます。

SELECT ・・・ INTO ##テーブル FROM テーブル WHERE 1 = 2
とか
CREATE TABLE ##テーブル (・・・)

とかで、とにかく'##'の付いたテーブルを作ると一時テーブルができるわけで、
##テーブルをフォームのレコードソースにできます。
ストアドの中でデータ作って参照だけならそれだけでいいけど、
フォームでデータを編集する場合、主キーが必要だったように思います。
省7
7: 1 01/10/04 10:02 AAS
早速たくさんの人たちに書きこんで頂いて喜んでおります。

>>2
多分、同じ悩みだと思いますので問題解決にご協力をお願いします。

>>3
現在の開発環境はAccess2000を.adpで作成し使用しています。.adpで使用すると
接続できるデーターベースはSQL Serverのみでクライアントにワークテーブルも
作れないし、他のmdbとも接続できないようなのです。
ここが間違いで何かの方法があれば教えて頂きたいのです。
今日から、Accessを.mdbで作成し、SQL Serverのデータをodbc接続してDAOで
開発しようかなーとも思っています。
省18
8
(3): 6 01/10/04 12:54 AAS
>>1
一時テーブルはサーバー側に出来ます。
クライアント毎に作成され、他のクライアントからは見えません。
同じテーブル名の問題はありません。

>>6の方法は、私は明細型の伝票入力等で使っています。

 ・フォームオープン前にストアドで一時テーブル作成
 ・伝票修正・削除の場合はストアドで該当レコードを一時テーブルに転送
 ・連結型の帳票フォームオープン(サブフォームだったりします)
 ・明細編集後の決定ボタンのアクションで明細テーブル更新処理のストアドを実行
 ・フォームクローズ時に一時テーブル削除
省27
9
(1): 01/10/04 13:49 AAS
ここなんてどう?
参考になると思う。
http://www2p.biglobe.ne.jp/~sakurait/cstrue/cl1999/cl1999c4.html
10: 1 01/10/04 14:58 AAS
6番さん、9番さん、ありがとうございます。

>>8
「mdbは分散型アプリケーション
 adpはホスト集中型アプリケーション」って素晴らしい表現ですね。
サーバー側で作成する一時テーブルは名前が同じでも他のクライアントには全く
関係無い。という事、これで納得し安心しました。
クライアントの台数が多くなるとサーバーに負担が掛かるのでサーバーの負担を
軽くする意味でクライアントにワークテーブルを作成した方がいいのではないかと
思っていましたが、この考えだと逆にネットワークに負担がかかり遅くなるんです
省8
11
(1): 01/10/04 21:33 AAS
3がとても正しいと思う今日この頃なのでした
12: 1 01/10/05 11:02 AAS
>>11
11番さん、こんにちは、
adoとmdbを一緒に使えるのでしょうか?
お忙しいと思いますのでヒントでも結構です。宜しくお願い致します。
13
(1): 01/10/05 12:30 AAS
>>8
サーバーでテーブルを作ったり削除したりして
サーバーの負荷は重くならないのでしょうか?
またSQLサーバーのばあい
データエリアがフラグメントしたりしないのでしょうか?
14
(1): 8 01/10/05 20:48 AAS
>>13
自己流なので、間違ったことを書くかも知れませんが

>サーバーでテーブルを作ったり削除したりして
>サーバーの負荷は重くならないのでしょうか?

参考書を読んだことがないので何とも言えませんが、
一時テーブルはこのような使い方をするために
あるのだと思っています。
どうしても一時テーブルが必要な場合があります。
SELECTだけで出来ることであれば、なるべく避けた方が
いいのでしょう。
省15
15
(1): 01/10/05 22:31 AAS
sqlで作成した方がいいお勧めの本は
ナツメ社のaccess2000sqlハンドブック
16: 01/10/05 23:15 AAS
>ACCESSと違って、勝手に最適化してくれてるようです
それに、一時テーブルはtmpdbに作成されるから、直接ユーザのDBには影響しないしね。
17: 1 01/10/05 23:28 AAS
>>14
皆様のおかげでSQL Serverの良い所やプログラミングする時の注意点等が
少しづつ分かってきました。ありがとうございます。
実をいいますと、前回、教えて頂いたストアドプロシージャでのフォーム
の作成がまだ理解出来ていないのです。

CREATE TABLE #テーブル を使用するとテーブルの定義が面倒みたいなので
SELECT INTO #テーブルが簡単でいいかなと思いこの方法を実験しているの
ですがなかなか難しいですね。
・フォームを開くとき
 SELECT INTO #テーブルを使用して一時テーブルを作成する。
省7
18
(1): 6 01/10/06 01:07 AAS
>>1
ほぼ大丈夫だと思います。
私も行き当たりばったりでやってますので、なんとも言えません。

とりあえず、フォームでテンポラリを参照するところから
始めてはどうでしょう? (もうこの辺は理解されてるかもしれませんが・・・)

1.ストアドを2つ作る
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Alter Procedure TEST_テンポラリ作成
As
--とりあえずテーブルをデータ毎コピー
省28
19
(1): 1 01/10/07 14:24 AAS
>>6
TESTテンポラリー作成について質問なのですが
1.RecordSource = "#TEST"
 RecordSource = "##TEST"
#TESTで実験した場合、テーブルが無いとメッセージが出ます。
 これはどうしてでしょか?
2.表形式のフォームに##TESTを張りつけたとき、データは正常に表示されるので
 すが、最終行に空白が空かないため追加データの入力が出来ません。
 TESTにはインデックスはセットしているのですが何が問題なのでしょうか?
 >>18で「レコードが編集できないことも確認出来るかと思います。」と説明し
省2
20: 01/10/07 19:09 AAS
だれかSQLserver2000のCDキーを教えて下さい!!
明日までにわからないとぼくはもうダメなんです!!!
1-
あと 165 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.556s*