• 締切済み

ASP(VBScript)でACCESSの任意の行を呼び出して変更する方法

ID(オートナンバー)が判っている場合ですが、 ID番号を指定して、その行のデータを変更する方法を教えてください。 VBScriptで、そういうことはできますか?

みんなの回答

  • hequil
  • ベストアンサー率65% (242/372)
回答No.1

もちろん可能です。 ADO定数を global.asa や Const で定義しているものとして簡単なサンプルです。 # Option Explicit してたら別途変数宣言も必要 -- id = 1234 '-- オートナンバーの値 Set cnn = Server.CreateObject("ADODB.Connection") cnn.ConnectionString = "DRIVER=Microsoft Access Driver (*.mdb);UID=admin;Password=;FIL=MS Access;DBQ=" & Server.MapPath("sample.mdb") cnn.CursorLocation = adUseClient cnn.Open Set rst = Server.CreateObject("ADODB.Recordset") rst.Open "SELECT ID, FIELD_DATA FROM SAMPLE_TBL WHERE ID=" & id, cnn, adOpenStatic, adLockOptimistic, adCmdText If rst.RecordCount > 0 Then rst("FIELD_DATA") = "NewValue" rst.Update Else Response.Write "該当レコードが見つかりませんでした。" End If rst.Close Set rst = Nothing cnn.Close Set cnn = Nothing -- あと余談ですが、この手のコード書く場合 rst.Open "SELECT * FROM TBL WHERE ID=" & Request("id"), cnn, ・・・・ という危険なコードは書かないように気をつけましょう。 Request.QueryString("id") または Request.Form("id") と指定し、 SQL文に変数を代入する場合は、危険な文字は正しい形に変換しておきましょう。 例: " → "" ' → '' | → \| など

quick-nono
質問者

お礼

hequilさん、こんばんは。 >ADO定数を global.asa や Const で定義しているものとして簡単なサンプルです。 # Option Explicit してたら別途変数宣言も必要 これらの定義方法、または、インクルード(というのでしょうか?)の方法についても教えていただけませんでしょうか?(超初心者です!) よろしくお願い致します。

quick-nono
質問者

補足

<% 'データベースとの接続を確立する Set Con = Server.CreateObject("ADODB.Connection") Con.Open "Test" 'テーブルを開く Const adLockOptimistic = 3 Set Rec = Server.CreateObject("ADODB.Recordset") Rec.Open "TestTable", Con,2,3,2 'IDでフィルターをかける Rec.Filter = "ID = '" & ここにID番号を記述 & "'" 'フィールドを書き換える Rec("ここにフィールド名") = "書き換える内容" %> <% Rec.Update Rec.Close Con.Close %> これで、なんとか書き換えに成功しました。 お騒がせいたしました。

関連するQ&A

専門家に質問してみよう