PRB: VBScript「型の不一致」エラーのフィールドの種類が adNumeric

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:306916
現象
AdNumeric (131) のフィールドの型の数値の比較や計算を実行する Visual Basic スクリプト版 (VBScript) を使用すると次のエラー メッセージが表示される可能性があります。
Microsoft VBScript 実行時エラー '800a000d'
型が一致しません
- と -
Microsoft VBScript 実行時エラー '800a01ca'
変数は、VBScript でサポートされていない種類のオートメーションを使用してください。
原因
VBScript に有効な数値型にadNumeric値適切に変換できないために、これらのエラー メッセージが発生します。
解決方法
次の 2 つの回避策のいずれかを使用することができます。
  • 使用して、 Cdbl 関数 または Cint 関数 関数に変換する、 adNumeric フィールドです。
  • この現象が発生していません、JScript を使用します。
状況
これは仕様による動作です。
詳細

現象を再現する手順を実行します。

Active Server Pages (ASP) ページで、または単純な Visual Basic スクリプト (.vbs) ファイルでは、この現象を再現することができます。単純 .vbs ファイルで問題を再現するのには次の手順をデモンストレーションします。

Oracle テーブルを作成します。

サンプル テーブルを作成する Oracle サーバー上には、次のスクリプトを実行します。
DROP TABLE Cust;            CREATE TABLE Cust             (CustID     NUMBER(22,6) PRIMARY KEY,              Name   VARCHAR2(50));            INSERT INTO Cust VALUES(222,'Kent');            INSERT INTO Cust VALUES(333,'Sally');    COMMIT;   / 				

VBS ファイルを作成します。

  1. メモ帳で、Test.vbs という名前の新しいテキスト ドキュメントを作成し、Test.vbs を次のコードを貼り付けます。
         Set oConn = CreateObject("ADODB.Connection")     oConn.open "Provider=MSDAORA;user id=User;" & _     "password=password;data source=Oracle816Server;"     set oRS = oConn.Execute("Select CustID FROM Cust")     MsgBox "Numeric field type is 131." & vbcrlf & _     "Field Type = " & ors.fields("CustID").type      MsgBox "Numeric field * 100 = " & oRS("CustID") * 100    'MsgBox "Numeric field * 100 = " & cdbl(oRS("Custid")) * 100					
  2. Oracle サーバー] をポイントし、有効なユーザー名とパスワードを入力するため、接続文字列を変更します。
  3. Test.vbs をデスクトップに保存します。拡張子を変更するファイルを不安定にさせることがあります警告が表示されます。[ [Ok] 続行します。この警告が表示されない、場合は、既知のファイルの拡張子を表示していることを確認します。
  4. Test.vbs を閉じます。
  5. デスクトップ上には、コードを実行する Test.vbs をダブルクリックします。「型の不一致」エラー メッセージが表示されます。

    回避策

  6. 変換するには、コードの次の行のコメントを解除します adNumeric double データ型にフィールドを挿入するには:
        'MsgBox "Numeric field * 100 = " & cdbl(oRS("Custid")) * 100					
  7. 次のコード行をコメントにします。
        MsgBox "Numeric field * 100 = " & oRS("CustID") * 100					
  8. Test.vbs を保存して閉じます。
  9. デスクトップ上には、コードをもう一度実行する Test.vbs をダブルクリックします。2 つのメッセージ ボックスとエラー メッセージが表示されることに注意してください。
800a000d 800a01ca

警告: この記事は自動翻訳されています

プロパティ

文書番号:306916 - 最終更新日: 07/03/2016 14:04:00 - リビジョン: 6.0

Microsoft Data Access Components 2.5, Microsoft Data Access Components 2.6, Microsoft Data Access Components 2.7, Microsoft Active Server Pages 4.0

  • kbprb kbmt KB306916 KbMtja
フィードバック