型エラーについて

このQ&Aのポイント
  • 環境による型エラーが発生しています。ASPで使用しているDLLの処理結果を受け取る際に、Variant型の宣言にもかかわらず型エラーが発生しています。
  • VB(DLL)で処理を行い、その結果をASPで受け取る際に型エラーが発生しています。ASPではすべてVariant型であるため、VBでもVariant型を宣言しているにもかかわらずエラーが発生しています。
  • VB(DLL)でDBErrFieldという変数をVariant配列として宣言しており、ASP側で受け取っていますが、型が一致しないためエラーが発生しています。VB側とASP側の処理の間で型の整合性に問題がある可能性があります。
回答を見る
  • ベストアンサー

型エラーについて

環境  IIS4.0  WIN NT  VB6.0 ASPからDLLを使用して処理を行っている際に 以下のような事象が発生しました。 VB(DLL)側で処理を行い、その結果をASPで受け取る時に エラーが出ております。 ASPではすべてVariant型なのでVBでもVariant宣言しているのに 何故か型エラーが出ています。 ASP部分をVBで記述すると問題なく動作します。 解決方法など分かりましたらご教授願います。 以下コードの一部分を抜粋いたしました。 ▼▼▼▼▼▼▼▼▼ASP▼▼▼▼▼▼▼▼▼ Dim DBErrField() DBErrField = clsSEND_SCHEDULE_T.DBErrField ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ ▼▼▼▼▼▼▼▼▼VB(DLL)▼▼▼▼▼▼ Private mDBErrField() As Variant Public Property Get DBErrField() As Variant() DBErrField = mDBErrField End Property ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ ▼▼▼▼▼▼▼▼▼エラー▼▼▼▼▼▼▼▼▼ Microsoft VBScript 実行時エラー (0x800A000D) 型が一致しません。 ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

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

  • ベストアンサー
  • msystem
  • ベストアンサー率42% (79/186)
回答No.1

はっきりしたことはいえませんが、VBからの戻り値がVariantの配列になってますね。 確か、VBSでは配列の戻り値はエラーになると思います。 VB側で、配列をVariant型の変数に格納し、それを戻してやってください。

関連するQ&A

  • 型が一致しません

    クラスのメソッド(VBで作成したActiveXDLL)を実行する時、 型が一致しませんというエラーがでます。 クラスのパラメータをリテラルで埋め込むと正常に実行され、 変数を用いるとエラーとなります。 何かお気づきの方、教えてくれたら幸いです << asp側 >> Set SxeObj = Server.CreateObject("sxejancheck.Jancheck") 下の書き方だとOK ReturnResult = SxeObj.CheckJan ("000001", "1111111111111") 下の書き方だと駄目 pSellerCD = "000001" pGtinCode = "1111111111111" ReturnResult = SxeObj.CheckJan (pSellerCD , pGtinCode) VB(DLL側) Public Function CheckJan(pSellerCD As String, pGtinCode As String) As Boolean 環境はIE5.5+IIS5.0+WIN2000です。

  • 配列の参照渡しで型が一致しません。

    エクセル2003です。 いつもお世話になります。 以下のコードを実行すると「配列の型が一致しません。」というエラーが出ます。 typeNameで確認しても配列の型はvariant()で正しいと思うのですが。。。 皆様のお知恵を拝借させていただけないでしょうか。 -------------------------------------- Sub main() Dim e As Variant e = fuN() Call pRo(e)  '←ここでエラーになる。 End Sub Function fuN() As Variant Dim a(0) As Variant a(0) = "zero" fuN = a End Function Sub pRo(ByRef c() As Variant) '処理っす End Sub --------------------------------------

  • BC30002 型 List が定義されていません

    ASP.NETにてWEBアプリケーションを作っています。 IISのバージョン? によってエラーが出たり出なかったりしており、解決方法を探しています。 <エラーの起きる行> Dim xxx As New List(Of ReportParameter) <エラー内容> BC30002: 型 'List' が定義されていません。 <エラーの起きる環境> 環境 Win7/IIS7.5 Microsoft .NET Framework バージョン:2.0.50727.5446; ASP.NET バージョン:2.0.50727.5420 IIS6ですとエラーが起きず、きちんと動くのです。 情報をお持ちの方はお願いします。

  • エラー処理

    環境:IIS,ASP(VBScript) サーバー Windows2000Server ASP超初心者です。 処理の途中でエラーになっても On Error Resume Next と If Err.Number then ........ を組み合わせればうまく逃げられるのはわかるの ですが、On Error Resume Nextを書いてもエラー が表示されて落ちます。 #include file の中についてはOn Error Resume Nextは無効なのでしょうか?

  • エラー40040

    ボードを追加してVB5でプログラムしました。 2回ぐらい止まったらしいので、エラーを調べようとしたのですが、VBのコールバック関数のせいか、表示が出る前に消えてしまいます。 どうにか1度ビデオにとることが出来たのですが、Error40040 が出ておりました。 ヘルプにも載っていたのですが、いまいち理解できません。 無効な種類のバリアント型 (Variant) が検出されました。数値として文字列のデータ型 (リモート データ) を渡そうとした場合など、正しい型に変更できない値をリモート データ オブジェクト (RDO) のメソッドまたはプロパティに渡そうとすると、このエラーが発生します。 このエラーを回避するには、渡される値が操作に対して適切なデータ型であることを確認してください。列の値の場合、列の Type プロパティを調べることによって、正しいデータ型を渡しているかどうかを確認できます。 なんとなく分かることは、違う型のデータを無理やり代入したために起きたエラー と言う事なのですが、リモートデータ、リモートデータオブジェクトが何なのかすら分からず、どうしたものかと思っています。 そこで、どうすればこのエラーが出るのかを具体的な例で教えていただけたらと思います。 具体的なエラーの出方が分かれば対策の仕方も分かるかもしれないので。 よろしくお願いします。

  • Windows 2003 ServerのIIS

    今まで社内でNT → Win2000 Server とIISサービスを 利用してきました。VBScriptでASPを動かしていたのですが こんど2003Serverにして同じような設定で動くと思ったのですが、http://****/***.asp ファイルは以下のエラーになります。 ●「HTTP エラー 404 - ファイルまたはディレクトリが見つかりません。インターネット インフォメーション サービス (IIS)」 ●普通のhtml は問題なく表示されます。 ●セキュリテーや権限が以前とかなり違っているようなのですがIISマネージャの設定もいろいろ設定しました。 このままでは2000に戻すしかなさそうです。 ●\\****\***.asp で絶対パスを見に行くとファイルは存在しますが、(HTMLの部分は見られます)がVBScript内部は無視されます。 ●どこをチェックすればいいのかアドバイス頂ければ助かります。  以上宜しく御願いします。

  • エラーまで実行させたい。

    Windows2000(IIS5)にて、ASPの開発をしております。 デバッグする際に、実行時エラーが起こった場合、そこまでの出力などの処理は行いたいと思っております。 しかし、実際には、エラー行数などが出るだけで、 実際の処理は行なわれず、「ページが表示できません」と出てしまいます。 NT(IIS4)の頃は、実行時エラーになった時点までは処理が行なわれていたように思います。 これは、IIS5になった事で、セキュリティ上そうなってしまったのか、IISの設定によって、そのような挙動にする事が可能なのか、ご教授いただければ幸いです。 よろしくお願いいたします。

  • ASP.Net(VB)のエラーについて

    始めまして 以下の現象が発生し、解決方法がわからず困っています。 コンパイル エラー メッセージ: BC30002: 型 'NewActiveReport1' が定義されていません。 ソース エラー: 行 6: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 行 7: Dim lintRowCtr As Integer 行 8: Dim rpt As New NewActiveReport1 行 9: 行 10: 'テーブル内容を初期化 ソース ファイル: c:\inetpub\wwwroot\metabolic\metabolic_system\supportobjectlist.aspx.vb 行: 8 開発環境: OS:WindowsVista 言語:ASP.net (VB) 実行環境: OS:Windows Server 2003 IIS Ver6.0 .NetFramework 2.0 以上の環境下で開発、検証を行っていますが ActiveReportの宣言でエラーが発生しております。 ActiveReportのインストールでサンプルプログラムを実行した時 は正常に動作いたしましたが、そのサンプルプログラムを元に 作成したプログラムが上記のエラーとなって動作しません。 IISの環境設定が間違っているのか、VB.Netの設定が間違っているのか まったくわからない状態となっています。 何かしらのヒントでも良いので、よろしくお願い致します。

  • ASP6.0でVB6.0で作られたDLLを起動させる方法

    いつもお世話になります。 環境 OS:WIN2000    IIS6.0 ASPからDLLを起動させようと試みたのですが、うまくうごいてくれません。ご支持よろしくお願いします。 ASPではなくVBで作成したEXEからのDLLはうまくいっています。 よろしくお願い致します。  

  • BC30002: 型 'ListItem' が定義されていません となり動きません

    ASP初心者です。 ASP.NET2.0でドロップダウンリストに以下のコードでitemを追加しようとすると「コンパイル エラー メッセージ: BC30002: 型 'ListItem' が定義されていません。」となり動きません。当初はうまく動いていたのですが、サイトのファイルすべてをアップロードし直してから動かなくなりました。 初心者ゆえコードが悪いのか、IISに問題があるのかさっぱりわかりません。どなたかお教えいただけませんでしょうか。 よろしくお願いいたします。 ------------------------------------------------- Dim i as Integer Dim liitem As ListItem 'ここでエラーになります For i = 1 To 15 liitem = New ListItem liitem.Text = i liitem.Value = i+100 Me.DropDownList.Items.Add(liitem) Next i 変数を宣言せず Me.DropDownList.Items.Add(New ListItem(i, i+100)) として追加しようとしても同じでした。 よろしくお願いいたします。

専門家に質問してみよう