- ベストアンサー
accessのデータ削除の仕方
マイクロソフトACCESSのテーブル上のデータをSQLのコマンドで削除することはできますか? SQLのコマンドの入力の仕方が分からないのです。 データが多いため手動で削除するのは時間がかかるのです。 又、DOSプロンプトからACCESSにアクセスし、SQLコマンドを実行する事はできるのですか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>又、DOSプロンプトからACCESSにアクセスし、SQLコマンドを実行する事はできるのですか? VBScript + ADO 使えば割と簡単に出来ますよ。 SQLを実行するサンプル ---- sql.vbs ---- Option Explicit const MdbName = "c:\temp\db1.mdb" const SQL = "DELETE * FROM table1;" Dim objADO Set objADO = CreateObject("ADODB.Connection") objADO.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbName & ";" objADO.Execute SQL objADO.Close ------------------ DOSプロンプトからは、cscriptを使います。 >cscript sql.vbs エクスプローラー上からなら、vbsのファイルをダブルクリックで実行できます。 プログラムを改造すれば、コマンドラインの引数でSQL文を渡すことも出来ます。VBScriptについて、検索&勉強してみて下さい。 VBScriptを使うには、OSのバージョンによってはWSHのダウンロードが必要になります。
その他の回答 (2)
[イミディエイト] ? CNNExecute("DELETE FROM Table1;") True と、イミディエイトウインドウで SQL 文を実行することも可能です。 ただし、CNNExecute関数の類は用意する必要があります。 Public Sub ErrMessage(ByVal CnnErrors As ADODB.Error, ByVal strSQL As String) MsgBox "ADOエラーが発生しましたので処理をキャンセルします。" & Chr$(13) & Chr$(13) & _ "・Err.Description=" & CnnErrors.Description & Chr$(13) & _ "・Err.Number=" & CnnErrors.Number & Chr$(13) & _ "・SQL State=" & CnnErrors.SQLState & Chr$(13) & _ "・SQL Text=" & strSQL, _ vbExclamation, " ADO関数エラーメッセージ" End Sub Public Function CnnExecute(ByVal strSQL As String) As Boolean On Error GoTo Err_CnnExecute Dim isOK As Boolean Dim cnn As ADODB.Connection isOK = True Set cnn = CurrentProject.Connection With cnn .Errors.Clear .BeginTrans .Execute strSQL .CommitTrans End With Exit_CnnExecute: On Error Resume Next cnn.Close Set cnn = Nothing CnnExecute = isOK Exit Function Err_CnnExecute: isOK = False If cnn.Errors.Count > 0 Then ErrMessage cnn.Errors(0), strSQL cnn.RollbackTrans Else MsgBox "プログラムエラーが発生しました。システム管理者に報告して下さい。(CnnExecute)", _ vbExclamation, " 関数エラーメッセージ" End If Resume Exit_CnnExecute End Function
お礼
回答ありがとうございます。 返事が送れて申し訳ないです。 ソース迄記載していただき感謝です。 excelのVBAは良く使うのですがアクセスはあまり使いません。 イミディエイトもよく知らないので勉強してみます。 ありがとうございました。
- bardfish
- ベストアンサー率28% (5029/17766)
削除クエリーを使いましょう。 >又、DOSプロンプトからACCESSにアクセスし、SQLコマンドを実行する事はできるのですか? できません。 そういうことをしたいなら、自分でプログラムを作りましょう。
お礼
回答ありがとうございます。 返事が遅れて申し訳ないです。 やはり削除クエリーを使用するのが一般的なのですね。 telenetでoracleに入りsqlコマンドを入力する、というような作業を時々やったことがあったのでDOSでもできないかなあ、、なんて思ってました。 ありがとうございます。
お礼
回答ありがとうございます。 おお、そんな方法あったのですね。参考&勉強になります。 VBAは良く使いますがVBScriptは使ったことがありません。 もっと勉強してみます。 本当にありがとうございました。