アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えてください。

フォームで年月日を入力させ
ボタンを押すとテンポラリーのテーブルが出来る(そのあとでその一時テーブルを使ってselect等がしたい)ような仕組みを作りたいと思っています。
##テーブル名 でいけるかとおもったのですが、
##テーブル名という実際のテーブルができてしまいました。

記述は下記の通りです。
mySQL = "SELECT テーブルA.* INTO [##table] from テーブルA where 年月 = " & n1 & " "
です。 ##テーブル部分を一時テーブルにしたいのですが・・・
どうしたらよいでしょうか?

どうぞよろしくお願いします。

A 回答 (2件)

データベースウィンドウのテーブルの一覧に出さない


(TableDefsコレクションに追加しない)一時テーブルは、
DAOのCreateTableDefで、Name引数を省略することで
作成できるといった話を見たことがあるような・・・
(私自身はこの方法を使ったことはありませんので、
 誤解の可能性もあります(汗))

私の場合は、ご質問の件そのままに一旦「##Table」を
実際に作ってしまって、一連の操作が終わったところで
DeleteObjectメソッドを使用して「##Table」を削除、
という対処をしています。
(もっとも、最近は、ワークテーブルのようなものも
 テーブルとしてそのまま保存しておいて、必要時に
 レコード追加、不要化したらレコード全削除、として
 組むようにしていますが:
 私の場合は、以前はクエリのデザインビューで対処する
 ことが多かったのですが、この場合、削除済みの一時
 テーブルを参照したクエリをデザインビューで開くと、
 クエリ自体が壊れる(上書き保存しなければ、一時
 テーブル再生時には問題なく動きますが)ということが
 あったため。
 ・・・さらに最近はSQL文で対処することが多くなった
 ので、どちらでもよくはなっているのですが)


※ディスクへの書き込み発生による動作遅延に関しては
 目を瞑っておりますので、その点を問題視しての
 ご質問でしたら趣旨が合いませんがご容赦願います。
    • good
    • 0
この回答へのお礼

おぉ!そうでした。そうですね!
一度作って最後に消す処理を入れれば
テーブルが増えることもないですし、
それでいきたいと思います。
#db作成者と管理者が別で、管理者がシステム知識のないものなので、
テーブルが増えたりクエリが増えたりせずとにかくボタン一つで
完了するようなものが作りたかったのです。

非常に助かりました。ありがとうございました。

お礼日時:2009/03/02 12:40

普通、そういう事をしたいなら、クエリを使います。



データベースのクエリのタブで

SELECT * FROM 元のテーブル WHERE 年月=Mid([Forms]![フォーム名]![日付入力テキスト],1,6)

と言うクエリを作ります。

このクエリを参照元にして

mySQL="SELECT * FROM クエリ名 WHERE 商品分類=" & n2 & " ORDER BY 商品コード"

などとやれば、一時テーブルなど要りません。

簡単に言えば「クエリを作れば、それが一時テーブルになる」のです。

この回答への補足

ありがとうございます。
なるほどです。

ですが、一時テーブルがないと、今度はその後で
活用することが出来ないのかと思ったのですが・・。
つまり、コードビルダのコード内で、まずテンポラリーテーブルを作り、そのテーブルをinにしてopenquery等で様々な加工データに仕分けしたかったのです。

素人の考えなので、やはり発想の転換をしないと無理なのでしょうか?

補足日時:2009/02/26 17:48
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A