• ベストアンサー

VB6からADOを介してACSESS2000MDBへのアクセスエラー

VB6からADOを使用しACSESS2000MDBにデータを登録すると INSERT 文でエラーになってしまいます。 エラーコード:-2147217833です。 何が原因か分かる方教えて下さい。

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

  • ベストアンサー
  • jincyan
  • ベストアンサー率36% (4/11)
回答No.2

gould09さんの回答のようにテーブルに取っている項目に対してINSERTしようとしているデータのレングスが長すぎるのではないかと思います。テーブルの項目のレングスと挿入し様としているデータのレングスをチェックしてみてください。

その他の回答 (1)

  • gould09
  • ベストアンサー率33% (196/589)
回答No.1

エラーコード-2147217833をHEXに変換して検索して見たら下記のエラーがヒットしました。 今回の問題を解く参考にはなりませんか -------------------------------------------------------------------- アップロード中のトラブルの原因がわかりました。。何と、単にファイルの名称が長過ぎただけ・・。 Photohighwayを使われていて、アップロード中に 「Microsoft OLE DB Provider for SQL Server エラー '80040e57' STRING または BINARY データは切り詰められました。 /MA_UploadRcv.asp, 行 91」

関連するQ&A

  • MDBへレコード挿入中にエラーが出力される

    お世話になります。 VB6.0 & MDB でアプリケーションを作成しております。 ご質問内容を以下に記述させていただきます。 MDBへ合計140件のinsert文を実行している途中70件目くらいで、下記のメッセージが出力され、ロールバックしてしまいます。 エラーメッセージ: ADO:-2147217833 指定されたデータ量がフィールド サイズを超えています。データ量を減らし、挿入または貼り付けを行ってください。 しかしながら、エラーが出力されているinsert文を、access2003のクエリに直接貼り付けて実行すると、問題なくデータが登録されます。 原因がわからなく難儀しております。 ソースを以下に記述させていただきます。 ---------------------------------------------------------------- Public m_Connection As ADODB.Connection '// ADO接続 Private Function aaaaa() As Integer FOR i = 0 to RecordCount '// トランザクション開始 m_Connection.BeginTrans ・・(1) '// SQL文作成 ・・・・insert文・・・・ ・・(2) '// 実行 m_Connection.Execute strSQL, lngRsp ・・(3) '// エラー時ロールバック If (3) = Error then m_Connection.RollbackTrans Exit For ・・(4) End if Next   End Function ---------------------------------------------------------------- 70回目くらいの(3)でエラーが出力されて、(4)のロールバック処理に移行してしまいます。 恐れ入りますが、ご教示いただきたくよろしくお願い申し上げます。 以上です。

  • vb2005でmdbを読み込みmdbに書き出したい

    よろしくお願いします。windowsxp,access2003,vb2005express エディションを使用して、現在、勉強中です。 早速質問ですが、ADO・NETを使ってA_MDBをvb2005に読み込んで,その内容をB_MDBに書き込みたいのですがその方法が分かりません 例えば、A_MDBのA_TABLEには単価と数量が有ります。仮に10レコードがあるとします、このA_TABLEを読み込んで、単価と数量を 掛けて金額を計算し、B_MDBのB_TABLEに単価、数量、金額の各項目を書き込むという感じです。A,B両MDBは作成済です。あまり上手く 表現できませんがよろしくお願いいたします。

  • VBでACCESS(アクセス)にSQLを発行したときのエラーについて

    VBでアクセスのデータにSQLを発行してテーブルに更新等の処理をしています、削除や検索では該当するレコードがないとエラーコードが返りますが、挿入の場合はすでにあるデータに重複するデータを登録する(二重登録)処理をしてもエラーになりません? なにもメッセージがないので登録されたのか、だめだったのかを判断することができません、このような場合に二重登録の判定をするには先に検索をして当該データの有無を調べた後に登録処理にを行うようにするしかないのでしょうか?(同じことが更新についてもあてはまります) データの挿入にはjetSQLのinsert intoステートメントを使用しています データの更新には同updateステートメントを使用しています

  • ADOについて

    VB6のディストリビューションウィザードを使い、 インターネットパッケージを作成しました。 サーバーはNT4sp6です VBはver6sp3です。 クライアント側は95/98/NT/2000で動かしたいと考えております しかし、95でADOのプロバイダがおかしいとメッセージがでます。 データはMDBを使っています。 全てのOSで動作することを考え、特殊なコンポーネントは使っていません しいて言うなら、ADOくらいなんですけど・・・。 あとは標準のまま使っています。 私がやろうとしていることは実現できるのでしょうか? ADOって難しくって困りますね(笑) どなたか詳しい方がいたら宜しくお願いします。

  • VB6(ADO)=>SQLSERVER2000アクセス時のエラーコードの意味?

    VB6でADOと使用してSQLServer2000にアクセスしています。 以下のエラーが発生します。 -2147217871(80040031) 日本語のメッセージは別の場所で発生したので不明です。 よく-2147467259(80004005)時間切れになりました。 というメッセージはでますが、それとはコードが異なります。 教えていただきたのは、上のメッセージコードからその意味を知るには どのマニュアル(SQLServer2000のBOOKSOnlineのどの箇所?)をみれば 書いてあるのかということです。 ご存知の方お願いします。

  • VB2005でmdbに接続するには?

    Visual stadio2005のVB.NETでIDとパスワードを入力し、データベースに登録されているIDとパスワードと同じなら次の画面へ、違っていたらエラー表示。というプログラムを組みたいのです。 次の画面へやエラー表示と言うプログラムは自分なりに書けたのですが、accessのmdbとVB.NETとのファイルの接続方法が分からず、SQL文も必要なのでは?と思うのですが組み込み方が分からず困っています。 コネクションをしたりファイルオープンをしたりと言う、C言語のプログラムを見ましたが、良く分かりません。 ご存知の方、教えていただけませんでしょうか。 よろしくお願いします。

  • エクセルからアクセスへADO 「_be.mdb」に追加するべき?

    リンクテーブルでtest.mdbとtest_be.mdbに分割した場合 エクセルからアクセスへADOでテ゛ータを追加する場合、 「test.mdb」と「test_be.mdb」のどちらに追加すればいいのでしょうか? 「test_be.mdb」はリンクテーブルとして「test.mdb」のテーブルのみ保存されています。

  • mdbのテーブルを別のmdbのテーブルに追加

    2種類のMDBがあり 一つは 毎日の入力にて使用、もう一つは 累積として使用している。 それぞれに 同一デザインのテーブルがあります。 毎日の入力用のMDB内ののテーブルのデータをすべて 二つ目のMDBのテーブルに 追加したいのですが 一件読み込んで 一件書き込むなどと プログラムしていましたが 毎日の入力用のMDBが たくさんになったため 処理が遅くてたいへんです。 なにか 簡単に かつ 高速にすることは可能でしょうか? 開発環境は VB6 SP6 WindowsXP ADOを使用しています。 よろしくお願いします。

  • AccessのMDBのオープンエラーについて

    環境:Windows98 + VB5.0(SP3) + Access97 VBプログラムで、Access-MDBのオープンの為、以下の命令を発行します。 Set DB = OpenDatabase("D:\・・・\Md1.mdb") 通常問題無く動いているのですが、たまに以下のエラーが発生します。 エラー番号:3343 エラー内容:データベースの形式 'D:\・・・\Md1.mdb' を認識できません。 このエラー発生後は、REPAIR命令で修復しなければなりません。 このエラーの理由・対策等をお教え下さい。 少し古い環境での問題なので、既に語り尽くされているのかもしれませんが、よろしくお願いします。

  • ネットワーク上のDBにアクセス時にエラー

    VB6.0 + Access2003を使用しています。 ネットワーク上にMDBがあり、複数の端末からアクセスしています。 MDBにはADO接続で、共有モードで開いています。 複数の端末から同時にOpenし、同じテーブルにアクセス(Select文実行) した場合に、 エラー番号:-2147467259 内容:Microsoft JET Database Engineでエラーが発生しました。     データベース"を開くことができません。アプリケーションで認識できない    データベースであるか、またはファイルが破損しています というエラーが発生します。(ファイルは破損していません) 3、4台で同時アクセスを何度が試していますが、 毎回このエラーが出ることはなく、エラーが出る原因がわかりません。 原因、対処方法などわかりましたら教えてください。 よろしくお願いします。