出産前後の痔にはご注意!

VB6.0で作ったプロジェクトが起動できなくて困っています。
実行しようとすると、「コンポーネント'crystl32.ocx',またはその依存関係のひとつが適切に登録されていません。ファイルが存在しないか、あるいは不正です。」と出て起動しません。

また編集しようとすると、「'C:\Explore Testset\ExploreTestset\ReportVB\crystl32.ocx'を読み込めません。--プロジェクトのロードを続けますか?」とでて出来ませんでした。
もちろん'C:\Explore Testset\ExploreTestset\ReportVB\crystl32.ocx'にcrystl32.ocx'がなかったので
コピペしてcrystl32.ocx'をいれました。それでもなりませんでした。

どうすれば良いかわからないのでよろしくお願いします。

A 回答 (2件)

> 実行してみたんですが、LoadLibrary("C:¥Explore Testset¥ExploreTestset¥ReportVB¥crystl32.ocx)


> に失敗しました。-指定されたモジュールが
> 見つかりません。とでて出来なかったです。

それはそこにcrystl32.ocxファイルがないからですよね?
ファイル自体をコマンドプロンプトにドロップするなりして、
正しいファイルパスを指定しましょう。

この回答への補足

そこにcrystl32.ocxファイルはありますね。 一応 ドロップして実行してみたんですがだめでした。
crystl32.ocxをネットでダウンロードしてきたからかな?

補足日時:2012/08/08 13:13
    • good
    • 0

プロジェクトを開く前に、コマンドプロンプトから


regsvr32 "C:\Explore Testset\ExploreTestset\ReportVB\crystl32.ocx"

を実行しましょう。

ocxはファイルを配置しただけでは認識しません。
更に言えば、そのCOM登録を行ったOCXファイルは後から場所を移動しては
ならない為、汎用的なディレクトリ内に保存されている方が良いです。
(実際は上記を再度実行すればいいですが、いちいち面倒)

この回答への補足

実行してみたんですが、LoadLibrary("C:¥Explore Testset¥ExploreTestset¥ReportVB¥crystl32.ocx)に失敗しました。-指定されたモジュールが
見つかりません。とでて出来なかったです。

補足日時:2012/08/08 10:49
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCrystal Report for VB

Visual Basic Vre.6のユーザーです。
確かVre.5にハンドルされていた、CrystalReport がVre6にはどこを探してもありません。
5年ぶりにVB6を使うことになり、すっかり忘れてしまいました。
VB6にはCrystalReportはハンドルされていないのでしょうか?
それならば、AccessのReportのように帳票印刷したい場合、
何か手はあるのでしょうか?
ご教授のほどよろしくお願いいたします。

Aベストアンサー

Visual Basic 6.0 で使用できるように Crystal Reports をインストールする方法
http://support.microsoft.com/kb/193336/ja

QCrystal Report 8.5について

Crystal Report 8.5について

いつもお世話になっております。
VB6.0で以前に開発されたプログラムの改修を行なっているのですが、
参照設定で
Crystal reports 8.5 ActiveX Designer Run Time Library
Crystal reports 8.5 ActiveX Designer Design and Run Time Library
の二つが「参照不可」となっています。

「Crystal reports 8.5」をインストールしたら良いとは思うのですが、
これは別の製品になるのでしょうか?
Crystal reports 8.5はVB6.0をインストールしたら自動で入るという事を言われたのですが、
入りませんでした…。

Aベストアンサー

> Crystal reports 8.5はVB6.0をインストールしたら自動で入るという事を言われた
 それはガセだろう。VB6は1998年生まれだがCR8.5は2000年前後だったはず。同梱しようがないね。

 VB6.0のProfessional以上はCrystalReportsの(4.5か6.0か7.0の)簡易版がついてくる。CrystalReports 8.5は付属しない。なのでCrystalReports 8.5 Developerなりインストールする必要がありますな。
 正確には、参照不可になってる2つのうち、上のものはランタイムのみで良く、帳票定義をCR8.5が無い状態で変更する必要があるときのみ下のものをインストールする必要がある。下はCR8.5 Professionalじゃないと使えないコンポーネントだったような気がする(あいまい)。

Qデータベース内のテーブル名の取得

お世話になります。
初心者的な質問でしたらすいません。
SQL文にてデータベース内のテーブル名を
調べることができると聞いたことがあるのですが、
可能でしょうか。

もし、可能であれば、SQLの記述を教えてください。
お願いします。

Aベストアンサー

select * from tab;

私の場合、テーブル名だけ手っ取り早く知りたいとき、↑を打ちます。その他の情報も知りたいときは#2さんの仰るとおり、user_tablesで取得します。

Qfrxファイルの役目

VB6の開発環境で、拡張子がfrxというVisual Basic Form Binary Fileが出来ますが、何に使われるのですか?
2台のPCで同じプロジェクトの開発をしている際、frmファイルだけをコピーすると、VBでファイルを開く時エラーになることがあります。
frxファイルも同時にコピーする必要があるのでしょうか?
2台のPCのOSは、Win2000とWinXP ProSP2で、XPから2000へコピーした際は問題なく、2000からXPへコピーした際のみ、上記の問題が発生します。
よろしくお願いします。

Aベストアンサー

「ほげ.frm」
「ほげ.frx」
があったとします。

「ほげ.frm」をテキストエディタで開いてみてください。
どこかに「ほげ.frx」の記述が存在していたら、その「ほげ.frm」は「ほげ.frx」を必要とします。

主に、拡張コントロールのプロパティ情報が記載されています。
W2K←→XPsp2
のコピーに関しては、本来どちらもいけると思うのですが、、、
VBのサービスパックや、何かの拡張コントロールのサービスパックが異なっていたりしませんか?

QVisual Basic 6.0 SP6 インストール手順

Visual Basic 6.0 SP6が、どうしてもインストールに失敗します。

まず、Vs6sp6B.exeをダウンロードして、それを実行したら
ファイルを保存する場所を指定されるので適当に指定しました。
そうしたら、そのフォルダ内にexeファイルが2個ありますが、
 ・acmsetup.exe
 ・setupsp6.exe
のどちらを実行したらいいのでしょうか?

まあ、どっちにしろ、「セットアップは正常に終了しませんでした」と表示して
終わるんですが・・・・

本当に急いでいるので、わかる人がいたら教えてください

Aベストアンサー

VB6.0がインストールされているんですよね
VB6.0本体が無ければサービスパックはインストール出来ないと思います
VB6.0本体がインストール済みの場合はSetupsp6.exeを実行すればいいはずですよ

acmsetup.exeは再インストールや修復時に使用されるものだったような気がします

QCloseとDisposeの違い

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、タイマーコントロールのイベントに記述していますと、それは実行され続けます。

これを防ぐために、Me.Dispose() を使います。すると、きれいにプロセスは終了し、イベントは発生しない模様です。

そこで、「フォームを閉じる」意味のMe.Close() をすべてMe.Dispose() に変えてしまいました。確実にプロセスを破棄出来ると思ったからです。Webで調べると、違いは「再利用できる、できないの違い」という答えがありましたが、それはきっと、ファイルやオブジェクトのことで、フォームの場合は、再びShowまたはShowDialogで表示させることは可能でしたので、特に問題は感じていませんでした。

ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。Me.Close() に変えるとうまくいきました。

わけわからなくなってきました。。。

ちなみに、その残ったフォームは、スタートアップフォームであり、別のフォームからShowまたはShowDialogメソッドで呼び出したものではありません。

ここで4つの仮説を立ててみました。

1. ShowDialogで呼び出したフォームは、Me.Dispose()、Showで呼び出した、あるいは、スタートアップフォームは、Me.Close() すれば破棄できる

2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

3. 呼び出し方ではなく、別の要因が存在する

4. 併記する必要がある場合がある

Me.Close()
Me.Dispose()

または、

Me.Dispose()
Me.Close()



どれが正しいのでしょうか?どなたがご存じの方がいらっしゃいましたら、ご教授いただけませんでしょうか? どうぞよろしくお願い申し上げます。ありがとうございました。

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、...続きを読む

Aベストアンサー

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。
Me.Close() に変えるとうまくいきました。

通常はどちらでもうまくいきます。

>2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

ShowDialogの場合は、メソッド内部で、ハンドルが破棄されているため、Close()メソッドの際にDispose()メソッドが呼び出されます。

>3. 呼び出し方ではなく、別の要因が存在する

そう思います。

>4. 併記する必要がある場合がある

インスタンスを明示的に破棄したほうがよい場合は多く存在します。
Disposeが使えるメンバはIDisposableをインターフェースとして持っているメンバです。
これらのメンバは、外部とのやり取りを行うものが多くあります。
たとえばSQLClientに含まれるようなメンバです。

外部とのコネクションを確実に破棄を保障してほしいなどという場合がありますよね、このようなときに使用します。

Using構文を使用するのとまったく同じ理由になります。
正確にはUsing構文を使用できるメンバには条件があります、IDisposableをインターフェースとして持っているメンバに限るというものです。

ほかにもガーベージコレクタによるファイナライズを伴うかどうかという違いがあります。
Disposeの場合はファイナライズが同時に行われるため、使用していたメモリ空間を開放することができます。

上記のような理由により、
Me.Close()
Me.Dispose()
は両方書いたほうがよいと思います。

蛇足ですが、
Me.Dispose()
Me.Close()
はエラーになります。
Me.Dispose()により、Me本体(インスタンス)は削除されてしまいます。
存在しないMeに対してCloseメソッドを要求することはできないためです。

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリ...続きを読む

QWindows7にvb6をインストールしようとすると、「このプログラム

Windows7にvb6をインストールしようとすると、「このプログラムには既知の互換性の問題があります」と表示されます。
【オンラインで解決策の有無を確認する】ボタンがあるので、それを押すと「Visual Studioの解決策が見つかりません」のメッセージが表示されます。
このプログラム互換性アシスタント画面には、【プログラムを実行する】ボタンもあるので、メッセージ表示を無視してインストールを実行してしまっていいものなのでしょうか?

Aベストアンサー

インストールして大丈夫です。

私がインストールした時は最初失敗しましたが、かまわず再インストールしたらインストールできました。

ほぼ正常に働いています。

日本語入力の時にちょっと挙動不審な時がありますが、その時は別なテキストエディタでそちらに日本語入力し、コピペしています。

VB6はSP6がありますから、SP6もインストールしてください。

また、Windows Update で、「設定の変更」で「推奨される更新プログラム」と「Windows Update」にチェックを入れ、「更新プログラムの確認」を実行してみてください。

表示された一覧の中にVB6関係があったら(あったかどうか覚えていませんが)インストールしておいた方がいいでしょう。

なお、Windows7 はVB6のランタイムライブラリーは標準でインストールされています。

Q突然オラクルへ接続できなくなりました

ローカルにオラクルをインストールして開発をしていました。
しばらく時間があいた後、開発を再開しようとするとDBへの
接続ができなくなっていました。

sqlplusではDB操作可能なので、DBそのものは落ちていないと
思うのですが…
リスナーのステータスを確認すると(lsnrctl status SID)下記のエラーが出ます。

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MY-PC)(PORT=1521))(CONNECT_DATA=(
SERVER=DEDICATED)(SERVICE_NAME=SID)))に接続中
TNS-12535: TNS: 操作はタイム・アウトしました。
TNS-12560: TNS: プロトコル・アダプタ・エラー
TNS-00505: 操作タイムアウトです。
32-bit Windows Error: 60: Unknown error

何が問題でどうすればよいのかわからないのですが、何か対応策があれば教えてください。
DBを再構築することも考えたのですが、原因がわからなければ同じ事が起こる(起こす?)
ような気がするので。

よろしくお願いします。

ローカルにオラクルをインストールして開発をしていました。
しばらく時間があいた後、開発を再開しようとするとDBへの
接続ができなくなっていました。

sqlplusではDB操作可能なので、DBそのものは落ちていないと
思うのですが…
リスナーのステータスを確認すると(lsnrctl status SID)下記のエラーが出ます。

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MY-PC)(PORT=1521))(CONNECT_DATA=(
SERVER=DEDICATED)(SERVICE_NAME=SID)))に接続中
TNS-12535: TNS: 操作はタイム・アウトしました。
TNS-12560: TNS:...続きを読む

Aベストアンサー

DBの起動/停止とサービスの起動/停止は別物です。
サービスの「OracleServiceSID」と「OracleOraDb11g_home1TNSListener」は、それぞれDBとリスナーのためのもので、DBやリスナーそのものではありません。
サービスの「OracleServiceSID」と「OracleOraDb11g_home1TNSListener」を起動状態にした後で
DBやリスナを起動します。

以下を参考にしてください。
http://www.shift-the-oracle.com/config/startup-oracle.html
http://otndnld.oracle.co.jp/beginner/oracle10g/1st/windows/index.html#configuration

QVB6のプロジェクトロードエラーについて

よろしくお願いします

現在、VB6で開発しているシステムのメンテナンスを行なっているのですが、
先週まで正常にロードされていたプロジェクトでエラーが起こるようになりました。

プロジェクト起動後、オブジェクトライブラリは登録されていません。のメッセージBOXが出て、引続きフォームのロードを続けると、読込中にエラーが発生しました。詳細はlogを確認。というメッセージBOXが出ます。

logの内容が「行 17: クラス MSComctlLib.StatusBar(コントロール StatusBar1) はロードされていません。」という内容です。

最後にロードした時から触ってないのですがエラーになり始めました。

ただ、PCにaccess2010をインストールしましたのでその影響が出ているのでしょうか?

すみませんが、よろしくお願いします。

Aベストアンサー

VB6の新しいプロジェクト
MSCOMCTLをツールボックスに追加
フォームにStatusBarを貼り付け
プロジェクトを保存
vbpファイルをメモ帳で開いて、元のvbpファイルと比べてみる

QMSCOMCTL.OCXのアップデートの方法

Excel VBAを使っていて
ListviewなどのMSCOMCTL.OCXに依存した
コントロールを使っている場合
MSCOMCTL.OCXに上位互換性がないため、
VBAを含むxlsmファイルを作成したPCとは異なるPCで
そのプログラムを使用するためには
使うPCごとにMSCOMCTL.OCXをアップデートする必要があります。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1198163781

詳細はこのページに書かれてあります。

疑問は、いま、自分が使っているMSCOMCTL.OCXのバージョンが2012年のものなのですが
Windows10にアップグレードするなどした場合に
MSCOMCTL.OCXをアップグレードする必要がありますが
VBAは正常に動作するのでしょうか?

MSCOMCTL.OCXには下位互換性があるのでしょうか?

もし動作しないとして、
一つずつListviewを削除して新規作成するという作業を行う必要があるのでしょうか?
自動更新できる方法があれば教えてください。

Excel VBAを使っていて
ListviewなどのMSCOMCTL.OCXに依存した
コントロールを使っている場合
MSCOMCTL.OCXに上位互換性がないため、
VBAを含むxlsmファイルを作成したPCとは異なるPCで
そのプログラムを使用するためには
使うPCごとにMSCOMCTL.OCXをアップデートする必要があります。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1198163781

詳細はこのページに書かれてあります。

疑問は、いま、自分が使っているMSCOMCTL.OCXのバージョンが2012年のものなのですが
Windows10に...続きを読む

Aベストアンサー

>Win10 PCで作成したVBAをWin7 PCにコピーして使用するためには、
>「~7.0(SP6)(仮称)」にチェックを入れる必要があるはずです。
その場合にはWin7PCではMicrosoft ListView Control 6.0(SP4)にチェックを入れなおせば
まず問題ないはずです。
ちなみに当方のWin7 Office2010 のMicrosoft ListView Controlの実体ファイルの
製品バージョンは6.01.9839
Win10 Office2016(プレビュー版)のmscomctl.ocxのバージョンも同一でした。
単純なテストですが、2016 → 2010 では問題なかったです
VBAはよく言えば枯れた状態ですので大々的なアップデートは無いでしょう。
あったとしたらMicrosoft ActiveX Data Object x.x Libraryと同様
Microsoft ListView Control 6.0・・・
Microsoft ListView Control 7.0・・・
のように複数バージョンが並行して登録されるとおもいます。

>オフィスを常にアップデートして最新の状態にしておく必要があるということでしょうか?
大多数の人は更新プログラムを自動的にインストールする設定にしたままだと思います。
最新にというかリビジョンを合わせた方がつまらないトラブルにならないと思います。
ただ、近年のアップデートは地雷が多すぎて何とも言えなくなりました。。。

>Win10 PCで作成したVBAをWin7 PCにコピーして使用するためには、
>「~7.0(SP6)(仮称)」にチェックを入れる必要があるはずです。
その場合にはWin7PCではMicrosoft ListView Control 6.0(SP4)にチェックを入れなおせば
まず問題ないはずです。
ちなみに当方のWin7 Office2010 のMicrosoft ListView Controlの実体ファイルの
製品バージョンは6.01.9839
Win10 Office2016(プレビュー版)のmscomctl.ocxのバージョンも同一でした。
単純なテストですが、2016 → 2010 では問題なかったです
VBAはよく言えば枯れた状...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング