• ベストアンサー

ASPで,mdbファイルへのinsert文のエラー

OSはWin xp professionalです。 ASPでmdbファイルへ接続はOK そしてinsert文で新規レコードを追加しようとすると エラーが出てしまいます。 エラーの内容は, エラー タイプ 更新可能なクエリであることが必要です。 以前は問題なく動いていたのですが、HDDが壊れて 修理をしてから出るようになりました。 同時にAccess2000から2002に更新したのですが 何か設定も変更する必要があったのでしょうか。

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

  • ベストアンサー
  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.2

HDDのプロパティウィンドウの web共有タブのユーザーが どのようになっているか確認してください。 そこにインターネットゲストアカウントがいなかったら、 追加して、アクセス種別を設定しろってことです。

その他の回答 (1)

回答No.1

ファイルへのアクセス権には問題ないでしょうか?。 インターネットゲストアカウントの書き込み許可を確認してみてください。

tenarai
質問者

お礼

回答有り難うございます。 申し訳ありませんが ”インターネットゲストアカウント” というのは、何処で設定すればよいのかが 分からないのですが もう少し詳しく説明をお願いします。 宜しくお願いします。

関連するQ&A

  • ASPで,mdbファイルへのinsert文のエラー

    ASPで,guestbook.mdbファイルへ接続,はOK, そしてinsert文で新規レコードを追加しようとすると エラーが出てしまいます。 select文は使えるのですが。 エラーの内容は, エラー タイプ Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver] 更新可能なクエリであることが必要です。 /asp_server/toda/guestbook.asp, line 24 です。 dbへの接続方法は, '***** データベース(guestbook.mdb)に接続 ***** Set ObjConn = Server.CreateObject("ADODB.Connection") ObjConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _ Server.Mappath("guestbook.mdb") です。 問題は, '***** 名前とメッセージが空白でないときはデータ追加SQLを実行 ***** StrSQL = "insert into T_Message (name, word, entrydate) " & _ "values ('" & name & "','" & word & "',#" & entrydate & "#)" ObjConn.Execute(StrSQL) ここの,ObjConn.Execute(StrSQL)でエラーが起こります。 なぜエラーが出るのでしょうか。原因と対処方法をおしえていただけませんでしょうか? 「更新可能なクエリであることが必要です。」というエラーなので何かの設定の問題でしょうか?

  • ASP.NETのユーザー権限について

    ASP.netとACCESSを接続しています。 INSERT文を記述して実行したところ、「更新可能なクエリであることが必要です」というエラーメッセージがでました。 これはmdbを保存しているフォルダにASP.netのユーザー権限がないから起こるエラーのようですが、ASP.netのユーザー権限はどのように設定するのでしょうか? ご存知の方がおられましたら教えて下さい。

  • ASP(海外)サーバでMDBファイルのパスを設定するには?

    brinksterというASPサーバを使用しています。 MS ACCESS Databaseもサポートしているのですが、 PWSのODBCマネージャに相当する部分がありません。 ASPファイルを実行すると、『プログラムで指定したMDBファイルが見つかりません』というエラーが出ます。 Database Managerというページが、あるにはあるのですが、ACCESS DB Passwordや、SQL Queryを書き込むように求められます。SQL Queryとは何ですか?何を書けばよいのでしょうか? ちなみに、実行させたASPファイルは、私の自宅のPWSでは、問題無く動作するのですが…。

  • ASPでMDBファイルを更新する時のロックについて

    こんばんは ASP(VBスクリプト)で MDBファイル(アクセス2000)の データベースを 更新 又は レコード追加 をさせるときの ロックについて悩んでいます。 まず条件として このMDBファイルは 複数のユーザーが共有する物です。 (ここでは仮に A B C と3つのユーザーとします) データの新規登録の時(レコードの追加)はレコード内の項目で 絶対重複しないIDを発行して登録します。 逆に更新の時は そのIDを基に該当レコードを更新します。 また、IDはA*** B*** C*** と言うように 各ユーザーの固有ID+重複しない番号 と言う内容にしています 二重書き込み防止のために色々考えているのですが このIDを基にした方法だと 基本的にはAというユーザーが 同じIDの情報を複数のブラウザ開かない限り二重書き込みには ならないと思っています。 (変更登録などはパスワードで管理して物理的に1人(1画面)しかできないようにしています) なので物理的な2重書き込みはこれで防止できると思っているのですが 正しいでしょうか? ただ、ものすごく悩んでいるのが 1人が1つのデータベースをさわっているのなら良いのですが 複数人が同時に使っている場合、レコードが服従することはないので 2重書き込みはないとしても Aのデータを更新しているときに Bが新しく情報を追加したと言うような 事は起こるはずなので、ファイルが壊れないかと心配しています。 なので cgiで言うような書き込みロックのような事が ASPでもできるのかなと思っています。 ただ、それ以前に こういった使い方はダメでしょうか? (1つを複数人で使うこと) 良くない場合は A、B、C それぞれデータベースを作り それを結合させた方が賢明なのかなとも思っています。 ロックの方法でやるか 個々に作って結合させるか それ以外にもよい方法があるのか これで悩んでします。 また、ロックの場合 Updateではなく Recordsetオブジェクトを使って IDがあれば更新 なければ 追加 と言う方法にしようと 思っていまして その場合 OPENメソッド recordset.Open Source, ActiveConnection, CursorType, LockType, Options で、ロックタイプを3にしても これはUpdateの時だけ有効のようなので 意味がないのかなと思っています ただ MSのHPでの解説で >>レコード単位の共有的ロックを示します。Update メソッドを呼び出した場合にのみ、プロバイダは共有的ロックを使ってレコードをロックします。 と書いているのですが、そもそも >>共有的ロックを使ってレコードをロック と言う意味が分かっていません ファイルを壊さないためにも有効であるなら Updateを使う方法に変えようかとも思うのですが、どうなんでしょうか? なんか 基礎的なことが分かっていないので 分かりにくい質問になりましたが ファイルが壊れないような処理方法を作っていきたいので、ご教授のほど よろしくお願いします。

  • アクセスMDBファイルが壊れた

    アクセスMDBファイル(access2000)が壊れたようでテーブルを開こうとすると下記のようなメッセージが出ます。(これは、このデータベースからデータを拾っているaspファイルの一部のようです。)そのままOKを押すと開けることもあれば、開けないこともあります。 #テーブルをコピーしてもだめ #「修復」をしてもだめ #MDBファイル全体をコピーしてもだめ #あとの手を思いつきません。 ----ここからメッセージ---- クエリ式 'szObject = wszTableName OR szReferencedObject = wszTableName' の 構文エラー

  • mdbファイル開けない

    とあるaccessで作成されたmdbファイルを開こうとしても開けません。パスワードで保護されているのでしょうか?もし保護されているとすれば、作成者に問い合わせるのが適切なのでしょうが、問い合わせなくても開く方法はありませんか? 使っているときに 「実行時エラー’3075’ クエリ式’症状種別CD=’の構文エラー」 とでます。 VBA, access詳しくないのでこのエラーメッセージ自体わからないのですが、開ければ何とかなるのではと考えております。 ご指導お願いいたします。

  • ASP + MDBで発生したエラーが解決できません。。。

    こんにちは。 いま、ローカルPCでシステム開発をしています。 環境としては、  WindowsXP + IIS + ASP + MDB(ACCESS2003) です。 いま、MDBにDB接続して、データを取得しようとしているのですが、以下のエラーが発生していて、治りません。 【エラータイプ】 Microsoft VBScript 実行時エラー (0x800A01B6) オブジェクトでサポートされていないプロパティまたはメソッドです。:Open ソースコードは以下の通りです。 【ソース】 'コネクションオブジェクト Set objCon = Server.CreateObject("ADODB.Connection") objCon.Provider = "Microsoft.Jet.OLEDB.4.0" objCon.ConnectionString = "C:\test.mdb" objCon.Open 'レコードセットオブジェクト objRs = Server.CreateObject("ADODB.Recordset") objRs.Open strSQL, objCon, 3 上記のobjRs.Open→Set objRs = objCon.Executeに変更するとエラーは発生しないのですが、RecordCountなどのプロパティが利用できません。 色々と調査したのですが、全くわかりません。 どなたか情報をご存知でしたら、ぜひともご教示ください。 宜しくお願いします。

  • mdbがとじれない

    VB6で開発をしています。 DB変数A = OpenDatabase(【mdb名】) Set QUERY変数B = DB変数A.CreateQueryDef("") QUERY変数B.SQL = SQL文 QUERY変数B.Execute (中略) Set レコード変数C = DB変数A.OpenRecordset(SQL文2) (中略) Set DB変数A = Nothing といった処理を行っています。 この処理を繰り返すのは問題ないのですが、 この処理で使用している【mdb名】はレコードロックされたままになってしまいます。 どのように修正したらよいのでしょう?

  • ACCESSのmdbファイルが壊れました・・・

    アクセスでmdbファイルを起動中にPCがフリーズしてしまい,再起動をさせました。 その後,mdbファイルを起動させようとしたところ, 「修復が必要であるか,データベースファイルではありません。データベースを開いているときに,いずれかのユーザーがACCESSを終了しました。修復しますか?」 というエラーメッセージが出ます。 当然修復を選択したのですが,すると修復中にAccessが強制終了してしまいます。 なお,そのmdbファイルと同一フォルダー上にmdbファイルと同一名のaccess.lockfile.9という形式のファイルが1つ存在します。 このような状況の場合,修復は可能なのでしょうか? ファイルの一部分でも復活させたいのですが・・・。 よろしくお願いします。 なお,OSはwin2000 pro,ACCESSは2000です。 よろしくお願いします。

  • ACCESS mdbファイル 更新日時

     ACCESS(アクセス)2000で、住所録の管理をしています。フォームにより、入力や参照などを行っているのですが、フォームにより内容を参照しただけで、データを書き換えたり新規に追加したりしていなくても、ACCESSを終了すると、mdbファイルが更新され、更新日時欄が現在の日時になってしまいます。これを回避する方法があれば、ご教示いただきたいのです。つまり、データを書き換えたり新規に追加した場合に、mdbファイルが更新されるのはいいのですが、内容を参照しただけで変えていない場合には、mdbファイルの更新日時が更新されないようにすることができないのか、ということです。仕事場のパソコンと自宅のパソコンとで同期を図っているため、どれが新しい内容のmdbファイルであるのかをmdbファイルの更新日時により見分けたいものですから、このようなお尋ねをする次第です。どうぞよろしくお願い申し上げます。

専門家に質問してみよう