テーブルを削除するには?

解決


たっち  2005-08-30 22:53:47  No: 124616

今、データベースからアクセスにデータを取り込むというプログラムをつくって
います。
テーブル作成クエリを作り、実行してテーブルが作成されるまではよかったのですが、2回目以降「テーブルが存在するため実行できません」となってしまいます。
その度にアクセスを起動して一回一回テーブルを削除しているのですが、VB6で
テーブル自体を削除するプログラムというのはあるのでしょうか?

過去ログを検索したのですがちょっとわからなかったので
どなたかご教授お願いします。


id_rsa+  2005-08-30 23:02:10  No: 124617

VBぢゃないけど、「DROP TABLE テーブル名」のSQLで。


medaka  2005-08-30 23:14:25  No: 124618

T-SQLかPL-SQLか不明だけど
create の前に if で存在判定してなければcreateでいいんじゃないかな?
無条件にdropだと存在すればエラーでるかも?


たっち  2005-08-31 00:42:25  No: 124619

ご返信ありがとうございます。

createを使ってどのように記述したらいいのでしょうか?
VB始めて間もないものでご迷惑をおかけしますが、
ご教授お願いします。


medaka  2005-08-31 01:05:43  No: 124620

VB DB等環境によって変わってくるんじゃ?


たっち  2005-08-31 01:33:52  No: 124621

これが環境でいいのかわかりませんが、VBはVB6で、DBはオラクルです。
プログラムは、下のように書いています。

strQry = "SELECT〜
strQry2 = "SELECT〜
strQry3 = "SELECT〜

Set cn = DataEnvironment1.Connection1
cn.Open

mRs.Open strQry, cn
D1_Qry = strQry
cn.Close

If D1_Qry = strQry Then
    cn.Open

    mRs.Open strQry2, cn   
    D2_Qry = strQry2
    cn.Close
        
End If

If D2_Qry = strQry2 Then
    cn.Open
    mRs.Open strQry3, cn
    cn.Close
End If

ここでstrQry,strQry2,strQry3を実行する前に、strQry,strQry2,strQry3で作成された前のテーブルを削除したいのですが。


id_rsa+  2005-08-31 01:52:14  No: 124622

Accessにテーブルを作ってるんですよね??削除するのも・・

だったら、クエリで「DROP TABLE テーブル名;」で作って、
VBからテーブルを作る時と同じようにクエリを実行すれば良いんじゃない?
もちろん、テーブルが無い時に実行したらエラーになるけど。


もげ  2005-09-01 00:06:48  No: 124623

Oracle→Access(MDB)へのテーブルコピーで、
テーブル作成クエリを利用したコピーの際に、
事前にAccess(MDB)側のテーブルを消したいということでいいですかね?

Accessがお判りなら、データ定義クエリを作成する方法もあります。
クエリの種類でメニューから「SQL」→「データ定義」を選んで、
窓に、
DROP TABLE テーブル名
と打ち込んで、適宜名前をつけて保存すれば、
あとはテーブル作成クエリと同じように、名前を指定して呼べばよいです。
エラーはOn Error Resume Nextで無視するか、
事前にテーブルの存在チェックを行うかです。
(MSysObjectsを読むか、DAO.TableDefsかADOX.Catalogを検索)
どこまでの前提知識があるのかわからないけど、
上記キーワードをもとに検索、調査してみてから、
不明点をポイント絞って再質問すれば解決が早いかも。

ちなみに、
テーブル作成クエリやデータ定義クエリなら
RecordsetとRecordsetのOpenは不要で、
cn.Execute "SQL文"  とか  cn.Execute "アクションクエリ名"
だけでいいですけど。
(前後の処理がわからないけどDataEnvironmentも無駄な気がする)


たっち  2005-09-01 02:33:01  No: 124624

ご返信ありがとうございます。

おかげさまでようやく解決することができました。

id_rsa+さん、medakaさん、もげさん
どうもありがとうございました。
自分がいたらないせいで多大なご迷惑をおかけしました。

また何かわからないことがあった場合にはよろしくお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加