みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQL DELETE FROM 削除できない

 お世話になります。
さて、題名通りですが、下記の具合で「DELETE FORM」で「全レコード削除」をしましたが、全く反応せず。
 試しに[ WHERE句 ]も試しましたが無反応です。
もしコードが間違いなら、エラーになる筈ですが、当然それもありません。
また「.RecordSource = "TRUNCATE UER01"」も無反応でした。

 対処法を御教授願います。

●環境
VB6.0
アクセス97
WINDOWS7
自作PC
 

With DATA
.DatabaseName = "E:\U SS VB\IK NY DATA\SV_TL.mdb"
.RecordSource = "DELETE FROM UER01"
End With

投稿日時 - 2015-05-30 02:36:19

QNo.8984899

すぐに回答ほしいです

質問者が選んだベストアンサー

win7でAccess97が使用できるのか確認はしていません。
その上で、質問の、「With DATA」の「DATA」が何をさしているのか
わかりませんが、一般的なVB6とAc97での方法を書いてみますと、
質問のデータベース名、テーブル名を使用すると、

Private Sub Command1_Click()
Dim strPath As String
Dim strSQL As String
Dim db As DAO.Database
Dim ws As Workspace

strPath = "E:\U SS VB\IK NY DATA\SV_TL.mdb"
strSQL = "DELETE * FROM UER01"

Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase(strPath)

db.Execute strSQL

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

のようになります。ここで、テーブルのデータをすべて
削除する場合は、「DELETE * FROM UER01」のように
普通は明示的に「*」を使用します。そして、このSQL文をdb.Executeを使って
データベースに対して実行します。

なお、この場合はDAOを使用しています。ADO接続の場合は接続方法を
変更してください。DAOの参照設定をプロジェクトで確認してください。

投稿日時 - 2015-05-30 04:04:07

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

No1です。
以下の一文を加えておきます。

何かのオブジェクトのRecordSourceを設定する場合は
SQL文で取得するならばSELECT文を使用します。
質問の中の、
  .RecordSource = "DELETE FROM UER01"
このような構文はありえないので、レコードを削除
するときは、Executeコマンドを使ってレコードを
削除するなりの処理が必要になります。

投稿日時 - 2015-05-30 13:07:38

トランザクション処理をしているのに、コミットを実行していないとか。
http://www.happy2-island.com/access/gogo03/capter00419.shtml

もしくは、接続先のデータベースが間違っているとか。

投稿日時 - 2015-05-30 12:10:28

お礼

早速、御回答感謝します。
恐れ入りますが、トランザクションなどのレベルのものでもない、高度なモノでもありません。素人発想でのモノ作りでした。

投稿日時 - 2015-05-30 19:42:44

あなたにオススメの質問