配布用でEXEと同じ場所にあるデータを効率良く呼出すには?

解決


manabu  2004-02-22 01:13:46  No: 111987  IP: [192.*.*.*]

配布用で実行ファイルと同じディレクトリにあるサンプルのデータ(database)の呼出さないといけないのですが、配布先でどのディレクトリに格納するかわかりません。例を使って教えてください。  
[例]EXEファイルが  C:\マイドキュメント¥test.exe  にある場合、今  Set db = OpenDatabase("C:\マイドキュメント\サンプル.mdb")  で呼び出ししています。よろしくお願いします。

編集    削除
punto  2004-02-22 03:16:33  No: 111988  IP: [192.*.*.*]

Dim sDb As String

sDb = App.Path
If Right(App.Path, 1) <> "\" Then sDb = sDb & "\"
sDb = sDb & "サンプル.mdb"
Set db = OpenDatabase(sDb)

編集    削除
punto  2004-02-22 06:42:55  No: 111989  IP: [192.*.*.*]

なんか変・・・
If Right(App.Path, 1) ...

If Right(sDb, 1) ... 
かな.

編集    削除
manabu  2004-02-25 06:20:42  No: 111990  IP: [192.*.*.*]

一つ一つの言葉の意味はわかりませんが、うまくいきました。助言ありがとうございました。

編集    削除
manabu  2004-02-25 07:27:37  No: 111991  IP: [192.*.*.*]

それと余分な事ですが、一見 [ If構文 ] に見えるのですが [ End  If]がなくても、エラーなく動くみたいですが、こうゆう場合は別にいらないんですか?

編集    削除
punto  2004-02-25 08:30:40  No: 111992  IP: [192.*.*.*]

If 文を一行で書いてしまう場合の書き方だよ.

逆にEnd If を付けると error になる.Else は書けるよ.
但し,Else 側に書く文も行内に書かなくちゃだめだ.勿論
End If をつけると error になるよ.

VB は基本的に一行一箇の satatement って rule 
があってそうでないのはそうでない言い訳が必要
と考えてるらしい.つまり,If 文を行を分けて
書きたかったら Then の後には何も書くな.そうすれば
End If がくるまで If 文は終らせないどいてあげる,
と言ってる訳だ.

そんなわけで,Else の 直後に If 文が書きたいって
いう理由だけで ElseIf なんていう妙な statement を
登場させなければならなくなる.ご苦労なこっちゃ….

編集    削除
manabu  2004-02-27 22:36:28  No: 111993  IP: [192.*.*.*]

理解しようとしてもそれだけの知識がなく、感じ的にはわかりました。本当にありがとうございました。

編集    削除
VB研修中@新人  2005-04-14 02:14:57  No: 111994  IP: [192.*.*.*]

追記失礼します、トピックと同じ質問なのですが
データベースへの接続を「OleDbDataAdapter」を使用してmdbにアクセスしています。

ソース上ではコネクションに接続パスが表示されています。

'
'OleDbConnection1
'
Me.OleDbConnection1.ConnectionString = 
"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=
;Jet OLEDB:Database L" & _"ocking Mode=0;Data Source=
""C:\Documents and Settings\デスクトップ\テスト.mdb"";Je" & _....

このような場合にmdbを読む場合はどのようにすればいいのでしょうか?
よろしければご教授願います。

編集    削除