• ベストアンサー

accessのデータ削除の仕方

マイクロソフトACCESSのテーブル上のデータをSQLのコマンドで削除することはできますか? SQLのコマンドの入力の仕方が分からないのです。 データが多いため手動で削除するのは時間がかかるのです。 又、DOSプロンプトからACCESSにアクセスし、SQLコマンドを実行する事はできるのですか?

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.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のダウンロードが必要になります。

sakuuuuu
質問者

お礼

回答ありがとうございます。 おお、そんな方法あったのですね。参考&勉強になります。 VBAは良く使いますがVBScriptは使ったことがありません。 もっと勉強してみます。 本当にありがとうございました。

その他の回答 (2)

noname#140971
noname#140971
回答No.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

sakuuuuu
質問者

お礼

回答ありがとうございます。 返事が送れて申し訳ないです。 ソース迄記載していただき感謝です。 excelのVBAは良く使うのですがアクセスはあまり使いません。 イミディエイトもよく知らないので勉強してみます。 ありがとうございました。

  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.1

削除クエリーを使いましょう。 >又、DOSプロンプトからACCESSにアクセスし、SQLコマンドを実行する事はできるのですか? できません。 そういうことをしたいなら、自分でプログラムを作りましょう。

sakuuuuu
質問者

お礼

回答ありがとうございます。 返事が遅れて申し訳ないです。 やはり削除クエリーを使用するのが一般的なのですね。 telenetでoracleに入りsqlコマンドを入力する、というような作業を時々やったことがあったのでDOSでもできないかなあ、、なんて思ってました。 ありがとうございます。

関連するQ&A