プロが教える店舗&オフィスのセキュリティ対策術

ASPでAccessのデータベースに対するデータの更新、レコードの
削除が出来ません。(データの検索、参照は出来ています。)
DBはAccess2000です。
下記のようなエラーメッセージが出てしまいます。

【エラーメッセージ】
ADODB.Recordset エラー '800a0cb3'

オブジェクトまたはプロバイダは要求された操作を実行できません。

/asp/ParsonUP.asp, 行 95

【プログラム】
<%
dMode = Request.QueryString("MODE")
sSyain = Request.QueryString("SyainNO")
sSimei = Request.QueryString("Simei")
sKaisya = Request.QueryString("KAISYA")
'************* DB コネクション **************************
Dim fPROV,fDBNAME
fPROV = "Microsoft.Jet.OLEDB.4.0"
fDBNAME = "D:\Inetpub\wwwroot\asp\data\OP_tbl2.mdb"
Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.ConnectionString = "Provider=" & fPROV & ";Data Source=" & fDBNAME
ObjConn.Open
Set ObjRS = Server.CreateObject("ADODB.Recordset")
StrSQL = "SELECT * FROM TM_個人情報 WHERE TM_個人情報.社員NO = '" & sSyain & "';"

'**************************************************
If sSyain<>"" Then
Select Case dMode
Case "UpDT"'更新登録
ObjRS.Open StrSQL, ObjConn, adOpenStatic
With ObjRS
.Fields("氏名").Value=sSimei
.Fields("所属会社").Value=sKaisya
.Update
.close
End With
Case "DelDT"'削除
ObjRS.Open StrSQL, ObjConn
ObjRS.Delete
End Select
Else
Response.Write "<H2>処理に失敗しました</H2>"
End If
%>

A 回答 (2件)

先程の回答でも書いておきましたが、adLockOptimisticやadCmdTextの定数を


ちゃんと宣言されていますか?

#TypeLib宣言かadovbs.incをインクルードしていれば問題ないのですが・・・

されていなければこんな感じでどうぞ

Const adLockOptimistic = 3
Const adCmdText = &H0001

この回答への補足

再びご回答有難う御座いました。ConstでadLockOptimistic とadCmdText を宣言する事で、動くようになりましたが、出来ればadovbs.incをインクルードして動作させたいので、どのようにしたら宜しいでしょうか?ちなみにadovbs.incはC:\Programfils\common fils\system\adoの中に入っています。

補足日時:2002/10/18 08:25
    • good
    • 0

ObjRS.Open StrSQL, ObjConn, adOpenStatic



の部分を

ObjRS.Open StrSQL, ObjConn, adOpenStatic, adLockOptimistic, adCmdText

に変更してみてはいかがでしょうか?
LockTypeを指定しないと、デフォルトでは adLockReadOnlyが指定された記憶があります。

#多分大丈夫だと思いますが、adLockOptimisticやadCmdTextの定数宣言もお忘れなく・・・

以上、参考になれば幸いです。

この回答への補足

ご回答有難う御座います。ご指摘の通り試みてみましたが、次のようなエラーメッセージが出てしまいました。”ADODB.Recordset エラー '800a0bb9' 引数が間違った型、または許容範囲外であるか、競合しています。”

補足日時:2002/10/17 17:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!