すみません、また教えて下さい。
VB4でプログラミングをしています。
VB4の入っているPCでは、期待通りに動くのですが、
セットアップウイザードで標準で配布されるファイルを付けて、
(次へ次へとクリックして)配布用ディスクを作り、
別のVB4の入っていないPCにセットアップして、
実行しようとすると、
「実行時エラー’76’パスが見つかりません」と出て動きません、
これは、何のパスが見つからないのでしょうか?

PCは共にWin98seです。
単純な画面とやり取りして、ファイルを作るプログラムです。

このQ&Aに関連する最新のQ&A

PV 作成」に関するQ&A: PV作成のソフト

A 回答 (4件)

#2の補足ですが、参考になるかどうか自信はありません f(^_^)


APIからのフォルダ参照によるフルパス取得です。
下記コードを御参考下さい。VB精通者から見ると ”なんじゃこりゃ” ってなお粗末なコードですがご勘弁下さい m(_ _)m
また、毎回指定を回避するには指定内容をレジストリに記録するか設定ファイル(iniファイル)に記録して参照する方法があります、いずれもやはりAPI使用により可能です。
お勧めは後者(設定ファイル作成方法)です・・・理由>>不必要になった場合レジストリにゴミを残さない為です。(レジストリ内容も削除はできますが)
レスが長くなりましたが参考になれば幸いです。


'API宣言
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
Private Const MaxP = 260
Private Type yochi
Own As Long
Roo As Long
Nam As String
Tit As String
End Type
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal PointerToIdList As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBROWSEINFO As yochi) As Long
Private Declare Function CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long) As Long
Dim Z As Integer
'------------------------------------------------------------------------------------------------
Sub Folder()
'フォルダの選択
Dim Path As String
Dim Hw As Long
Dim Ro As Long
Dim Dr As String
Z = 0
Dr = "フォルダを指定して下さい."
Ro = GetFo(Hw, Dr, Path)
If Ro = 0 Then
If Z = 1 Then
MsgBox "このフォルダは指定出来ません。"

Exit Sub
End If
MsgBox Path

ElseIf Ro = 1 Then
End 'Exit Sub
End If
End Sub
'------------------------------------------------------------------------------------------
Private Function GetFo(ByVal Hw As Long, ByVal Msg As String, ByRef Path As String) As Long
Dim bi As yochi
Dim pidl As Long
Dim iRo As Long

On Error GoTo ErrorHandler
bi.Tit = Msg
pidl = SHBrowseForFolder(bi)
If pidl = 0 Then
Exit Function
End If
Path = String$(MaxP + 1, Chr$(0))
If SHGetPathFromIDList(ByVal pidl, ByVal Path) = 0 Then
iRo = CoTaskMemFree(pidl)
Z = 1
Exit Function
End If
Path = Left(Path, InStr(Path, Chr$(0)) - 1)
iRo = CoTaskMemFree(pidl)
If iRo <> 0 Then
End If
Exit Function
ErrorHandler:
If pidl <> 0 Then CoTaskMemFree pidl
End Function
    • good
    • 0
この回答へのお礼

長い長いコードをありがとうございます。
訳のわからない質問に、こんなに時間を掛けて・・・
敬意を表します。
一行一行勉強します。
自分が情けない(・_・、)

お礼日時:2001/05/30 18:35

こんにちは。


プログラマで6年程勤務した者です。
ご参考程度でありますが、情報を提供します。

質問内容として、以下でよろしいのでしょうか?
・インストールFDを作成し、VB4が入っていない
PCにインストールを行う。

だとすると、DAO等のVBで使用するファイルを
新規のPCにレジストリ登録しなければ、
このようなエラーが出たような気がします。

あと、参考になるかわかりませんが、URLを添付します。

参考URL:http://www1.harenet.ne.jp/~unaap/
    • good
    • 0
この回答へのお礼

ありがとうございました。
DAO? ううぅぅ~~恥かしい限りです。
勉強し直します。

お礼日時:2001/05/30 18:30

おそらく先答者の言われる通り 実行ファイルまでのパスが合っていないのではないでしょうか?


このプログラムがどう言った趣旨のものかわかりませんが、任意でパスを通すのであればダイアログから取得するAPIを使ってみてはいかがですかこれだとまず間違いなく当エラーは回避出来るはずですが・・・。

この回答への補足

ありがとうございます。
>ダイアログから取得するAPIを使ってみてはいかがですか
すみません、意味がわかりません。(・_・、)
もう少し具体的に、教えて下さい。

補足日時:2001/05/28 08:43
    • good
    • 0
この回答へのお礼

ありがとうございました。
勉強不足で申し訳ございませんでした。
それと、上の詳細なコード記述を感謝します。

お礼日時:2001/05/30 18:28

プログラムの中で、


作ったパソコンにあって、実行するパソコンにはない
ドライブやフォルダを指定していませんか?

それをチェックして、直してみてはどうですか。
    • good
    • 0
この回答へのお礼

ありがとうございました。
拡大鏡を使うみたいに、チェックしたのですが・・・
もう一度、チェックして見ます。

お礼日時:2001/05/30 18:25

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

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

QVBで作成したパッケージを実行すると実行時エラー'429'が発生してしまいます。

VBにてcsvファイルのデータをOracleデータベースにinsert、updateするプログラムを作成し、開発パソコンにて正常に動作することを確認しました。

開発パソコン
・Windows2000 Server(SP3)
・Visual Basic 6.0 Enterprise Edition
・Oracle 9i

本番パソコン
・Windows2000 Server(SP3)
・Oracle 9i

テストパソコン
・Windows2000 Professional(SP1)

今、上記のように3台のパソコンがあります。
開発パソコンで開発したVBのプログラムをコンパイルしてexeを作成し、開発パソコン上から開発パソコン上のオラクルに対してプログラムを実行すると正常に動作します。
本番パソコンには、Visual Basicをインストールしていないため、プログラムを実行できるようにするには開発パソコンにてディストリビューションウィザードを使ってセットアッププログラムを作成し、本番パソコンにインストールする必要があると思います(質問1.ここまでは正しいですよね??)。

そこでウィザードに沿ってセットアッププログラムを作成し、まずはテストパソコンにてインストール後に実行してみたのですが、エラーが出てしまいました。
「実行時エラー'429' ActiveX コンポーネントはオブジェクトを作成できません。」

質問2.どうすればエラーが発生することなくプログラムを実行できるようになるでしょうか?
テストパソコンにオラクルクライアントが必要?それとも何かDLLの更新などが必要?

もしおわかりの方いらっしゃいましたら教えて下さい。
よろしくお願いします。

VBにてcsvファイルのデータをOracleデータベースにinsert、updateするプログラムを作成し、開発パソコンにて正常に動作することを確認しました。

開発パソコン
・Windows2000 Server(SP3)
・Visual Basic 6.0 Enterprise Edition
・Oracle 9i

本番パソコン
・Windows2000 Server(SP3)
・Oracle 9i

テストパソコン
・Windows2000 Professional(SP1)

今、上記のように3台のパソコンがあります。
開発パソコンで開発したVBのプログラムをコンパイルしてexeを作成し、開発パソコン上から開発パソ...続きを読む

Aベストアンサー

>テストパソコンにオラクルクライアントが必要?
ん?クライアントにオラクルが入っていないのですか?

各クライアントのオラクルドライバはどうしているのか、ふと疑問を感じたんですが^^;

バージョンを問わない対応をするには、参照設定からはずし、AS OBJECTでコネクションを張ってあげたら消える場合もあるけど、何となくそれ以前の問題のような気がするのは、わたしだけでしょうか?

QVB6.0exeから.NETのDLLを呼び出した場合の実行時エラー’429’について

お世話になります。

環境はWindowsXPです。

現在、VB6.0のexeから.NETのDLLを使用する・・・というのをしています。

以下の手順を踏み、実行してみたのですがどうも上手く行きません。。。
(1).NETのDLLを作成
(2)COMとして利用するために、.NET 2003コマンドプロンプトから「regasm」コマンドにてレジストリに登録
(3)tlbexpコマンドで、タイプライブラリを作成
(4)VB6のプロジェクトから(3)を参照設定する
(5)VB6から.NETクラスを生成し、呼び出す
(6)プロジェクトをコンパイルし、exeを生成

この手順にて実行すると「実行時エラー'429'ACtiveXコンポーネントはオブジェクトを作成できません」という
エラーメッセージが出てしまいます。

windows updateをしてみたり、VB6.0のランタイムをインストールしてみたりしたのですが、
どうもダメみたいで困っています。

解決方法などご存知の方がいらっしゃいましたら、
ご教授いただけると大変助かります。

よろしくお願いいたします。

お世話になります。

環境はWindowsXPです。

現在、VB6.0のexeから.NETのDLLを使用する・・・というのをしています。

以下の手順を踏み、実行してみたのですがどうも上手く行きません。。。
(1).NETのDLLを作成
(2)COMとして利用するために、.NET 2003コマンドプロンプトから「regasm」コマンドにてレジストリに登録
(3)tlbexpコマンドで、タイプライブラリを作成
(4)VB6のプロジェクトから(3)を参照設定する
(5)VB6から.NETクラスを生成し、呼び出す
(6)プロジェクトをコンパイルし、exeを生成

...続きを読む

Aベストアンサー

Exeで使用しているiniファイルやtlbファイルを最新のに置き換えて、もう一度regasmコマンドで登録してみてはいかがでしょう。

Qvb6.0の実行時エラー'3075'について

システム:
Microsoft Windows XP
Professional
Version 2002
Service Pack 3

データベース:
Microsoft(R) Access 2000

言語:
Microsoft Visual Basic 6.0
For 32-bit Windows Development

で、以下のSQLを実行すると、実行時エラー'3075'が発生します。
xSQL1 = xSQL1 & " WHERE ((条件2 = '1' OR 条件3 = '1') "
xSQL1 = xSQL1 & " AND (((int(使用現場数) >= 2) "
xSQL1 = xSQL1 & " OR ((使用現場数 = '1' AND 調査年数 >= '1' "
xSQL1 = xSQL1 & "AND ((最新の場所 in ('自社倉庫','自社空地','貸倉庫','借地','その他')))"
xSQL1 = xSQL1 & "OR ((処分日 is not null) or 処分日 <> """")) ))"
xSQL1 = xSQL1 & " AND (機械コード番号2 = '4401' OR 機械コード番号2 = '4402'"
xSQL1 = xSQL1 & " OR 機械コード番号2 = '4702' OR 機械コード番号2 = '4703'"
xSQL1 = xSQL1 & " OR 機械コード番号2 = '4704' OR 機械コード番号2 = '4705'"
xSQL1 = xSQL1 & " OR 機械コード番号2 = '4706' OR 機械コード番号2 = '4707'"
xSQL1 = xSQL1 & " OR 機械コード番号2 = '4708' OR 機械コード番号2 = '4709'"
xSQL1 = xSQL1 & " OR 機械コード番号2 = '4710' OR 機械コード番号2 = '4713'"
xSQL1 = xSQL1 & " OR 機械コード番号2 = '4309' OR 機械コード番号2 = '4701'))"
xSQL1 = xSQL1 & " OR (((int(使用現場数) >= 3)"
xSQL1 = xSQL1 & " OR ((使用現場数 = '2' AND 調査年数 >= '1'"
xSQL1 = xSQL1 & " AND ((最新の場所 in ('自社倉庫','自社空地','貸倉庫','借地','その他')))"
xSQL1 = xSQL1 & " OR ((処分日 is not null) or 処分日 <> """")) ))"
xSQL1 = xSQL1 & " AND (機械コード番号2 <> '4401' AND 機械コード番号2 <> '4402'"
xSQL1 = xSQL1 & " AND 機械コード番号2 <> '4702' AND 機械コード番号2 <> '4703'"
xSQL1 = xSQL1 & " AND 機械コード番号2 <> '4704' AND 機械コード番号2 <> '4705'"
xSQL1 = xSQL1 & " AND 機械コード番号2 <> '4706' AND 機械コード番号2 <> '4707'"
xSQL1 = xSQL1 & " AND 機械コード番号2 <> '4708' AND 機械コード番号2 <> '4709'"
xSQL1 = xSQL1 & " AND 機械コード番号2 <> '4710' AND 機械コード番号2 <> '4713'"
xSQL1 = xSQL1 & " AND 機械コード番号2 <> '4309' AND 機械コード番号2 <> '4701'))))"

何がおかしいのでしょうか?
ご教授願います。

システム:
Microsoft Windows XP
Professional
Version 2002
Service Pack 3

データベース:
Microsoft(R) Access 2000

言語:
Microsoft Visual Basic 6.0
For 32-bit Windows Development

で、以下のSQLを実行すると、実行時エラー'3075'が発生します。
xSQL1 = xSQL1 & " WHERE ((条件2 = '1' OR 条件3 = '1') "
xSQL1 = xSQL1 & " AND (((int(使用現場数) >= 2) "
xSQL1 = xSQL1 & " OR ((使用現場数 = '1' AND 調査年数 >= '1' "
xSQL1 = xSQL1 & "AND ((最新の場...続きを読む

Aベストアンサー

SQLステートメントの末尾の閉じ括弧”)”が1つ多くないですか?

QVB6+SQL サーバー 2000 で 実行時エラー '3704' がでます:

VB6 + SQL サーバー 2000 でDB接続を行っていますが
リストのように SELECT 文の後にInsert 文を実行しようとし
Re.Closeを実行すると
-------------------------------------------------------------
実行時エラー '3704':
オブジェクトが閉じている場合は、操作は許可されません
-------------------------------------------------------------
 とエラーになり、連続するSQL文を実行する場合のopen ,Close は
どのように書けばよろしいのでしょうか。

 ネット上で見つけた資料によるとメソッド RE.CancelUpdate を使うと
ありましたがこれもエラーとなります。

どなたか 教えていただけないでしょうか。

--- sample ----------------------------------------
Dim Cn As New ADODB.Connection
Dim Re As New ADODB.Recordset

Connect = ""
Connect = "Provider = SQLOLEDB;" _
& "Data Source = サーバー;" _
& "User ID = sa;" _
& "Password = パスワード;" _
& "initial Catalog = database;"
'
Cn.Open Connect
'
strSQL = "SELECT * from DBTBL WHERE CODE = '000001'"
Re.Open strSQL, Cn, adOpenKeyset 'SQL文を実行
Re.Close
'
strSQL = "Insert Into MAS1PF (CODE,NAME,TEL,FAX) Values('11111','名前','TEL,'FAX)"
Re.Open strSQL, Cn, adOpenKeyset 'SQL文を実行
'
Re.Close
Cn.Close

VB6 + SQL サーバー 2000 でDB接続を行っていますが
リストのように SELECT 文の後にInsert 文を実行しようとし
Re.Closeを実行すると
-------------------------------------------------------------
実行時エラー '3704':
オブジェクトが閉じている場合は、操作は許可されません
-------------------------------------------------------------
 とエラーになり、連続するSQL文を実行する場合のopen ,Close は
どのように書けばよろしいのでしょうか。

 ネット上で見つけた資料によるとメソッド ...続きを読む

Aベストアンサー

1:strSQL = "SELECT * from DBTBL WHERE CODE = '000001'"
2:Re.Open strSQL, Cn, adOpenKeyset 'SQL文を実行
3:Re.Close
4:strSQL = "Insert Into MAS1PF (CODE,NAME,TEL,FAX) Values('11111','名前','TEL,'FAX)"
5:Re.Open strSQL, Cn, adOpenKeyset 'SQL文を実行

の 3: で Re.Close したまま、5: で Re.Open しているからだと思います。
5: の前に
Set Re = New ADODB.Recordset
を入れると正常に動作するようになると思います。
ちなみに、なぜ 2: ではエラーが発生しないかというと、
Dim Re As ADODB.Recordset
ではなく、
Dim Re As New ADODB.Recordset
として宣言しているからです。

QVB2013で作成したプログラムの配布先で実行時エラーが発生する。

VB2013とSQLServer2012で作成したプログラムをインストーラーで
配布したのですが実行直後にエラーが発生しプログラムが起動しません。

開発環境はWindows7 Pro 32Bit SP1で配布先はWIndows8 Pro 64Bitと
Windows7 Pro 64Bit SP1です。

問題の署名:
問題イベント名: CLR20r3
問題の署名 01: SEIKYU.exe
問題の署名 02: 1.0.0.0
問題の署名 03: 56cd2d3c
問題の署名 04: System.Data
問題の署名 05: 4.0.30319.34209
問題の署名 06: 53489aad
問題の署名 07: 1df1
問題の署名 08: 52
問題の署名 09: System.InvalidOperationException

インストーラープロジェクトの作成でインストールウィザードから
作成しました。

Framework 4.5.1も一緒にインストールするようにインストーラーで
設定しています。

客先の配布ができないので困っています。
何かご存知の方はお助けください。

VB2013とSQLServer2012で作成したプログラムをインストーラーで
配布したのですが実行直後にエラーが発生しプログラムが起動しません。

開発環境はWindows7 Pro 32Bit SP1で配布先はWIndows8 Pro 64Bitと
Windows7 Pro 64Bit SP1です。

問題の署名:
問題イベント名: CLR20r3
問題の署名 01: SEIKYU.exe
問題の署名 02: 1.0.0.0
問題の署名 03: 56cd2d3c
問題の署名 04: System.Data
問題の署名 05: 4.0.30319.34209
問題の署名 06: 53489aad
問題の署名 07: 1df1
問題の署名 0...続きを読む

Aベストアンサー

https://oshiete.goo.ne.jp/qa/8372965.html

スタックトレースをログに吐くか、
それが難しいのであれば、
客先のPCに、無償版の Visual Studio Express 2013 をインストールしてもらった方が良いかと


人気Q&Aランキング

おすすめ情報