- 締切済み
ASP(VBScript)でACCESSの任意の行を呼び出して変更する方法
ID(オートナンバー)が判っている場合ですが、 ID番号を指定して、その行のデータを変更する方法を教えてください。 VBScriptで、そういうことはできますか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- hequil
- ベストアンサー率65% (242/372)
もちろん可能です。 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文に変数を代入する場合は、危険な文字は正しい形に変換しておきましょう。 例: " → "" ' → '' | → \| など
お礼
hequilさん、こんばんは。 >ADO定数を global.asa や Const で定義しているものとして簡単なサンプルです。 # Option Explicit してたら別途変数宣言も必要 これらの定義方法、または、インクルード(というのでしょうか?)の方法についても教えていただけませんでしょうか?(超初心者です!) よろしくお願い致します。
補足
<% 'データベースとの接続を確立する 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 %> これで、なんとか書き換えに成功しました。 お騒がせいたしました。