- PR -

パスの自動取得について

投稿者投稿内容
はる
会議室デビュー日: 2008/06/21
投稿数: 13
投稿日時: 2008-09-15 17:17
じゃんぬねっとさん、返信遅れてしまって申し訳ありませんでした。
前回、質問した時学校の課題の締め切りが迫っていたことから、nyugeさんの方法を使用させていただきました。
しかし、さらに制作を続けていて、やはりプログラミングでの解決をしたいと思っております。

はる
会議室デビュー日: 2008/06/21
投稿数: 13
投稿日時: 2008-09-15 17:33
続けて書き込みすいません。
お世話になります!


現在、制作物として、フォームに配置したボタンを押すと、それに対応した画像を表示させるものを制作しています。
(例:”あ”のボタンを押すと、”あ”の画像をpictureboxに表示)

画像はaccessにテーブル内にファイル名を入れておき、それを呼び出して表示させています。

{現在の接続文字列}
Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\\ゼミ\\ゆび.mdb")

{Accessで管理している画像のファイル名}
F:\\ゼミ\\指文字\\あ.JPG

としています。

しかし、これでは、他のUSBやパソコンでは使用できないことからパスの受動取得をしたいと考えています。

ルートディレクトリを取得してみうようと思い、
Dim RootName As New System.IO.DirectoryInfo("F:\\ゼミ")
Dim RootInfo As System.IO.DirectoryInfo = RootName.Root
を加え、接続文字列を
Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RootInfo.FullName & ".mdb")
と書き換えてみました。

しかし、Adapter.Fill(table)の部分でエラーが発生し、
OleDbExceptionはハンドルされませんでした。
ファイル'F:\\,mdb'が見つかりませんでした。
という内容のメッセージが表示されます。

うまく取得ができていないと思うのですが、具体的にどこに不具合があるのかがわかりません。
分かる方いらっしゃいましたらよろしくお願いします。

また、ルートディレクトリの取得以外にも方法がありましたら、そちらもお願いいたします。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-09-15 20:18
いわゆる新しい質問をするためのフィードバックというやつですね。 新しい質問は新しいスレッドで行いましょう。

引用:

はるさんの書き込み (2008-09-15 17:33) より:

うまく取得ができていないと思うのですが、具体的にどこに不具合があるのかがわかりません。
分かる方いらっしゃいましたらよろしくお願いします。
また、ルートディレクトリの取得以外にも方法がありましたら、そちらもお願いいたします。


不具合というよりそういう作りにしてしまっているだけとしか答えようがないです。 逆に説明がとっても難しいです。

引用:

OleDbExceptionはハンドルされませんでした。
ファイル'F:\,mdb'が見つかりませんでした。
という内容のメッセージが表示されます。


ファイル名の指定がないということがここからわかりますよね。 ファイル名の指定がないのは Root を取得してファイル名を指定していないからです。

引用:

Dim RootInfo As System.IO.DirectoryInfo = RootName.Root
Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RootInfo.FullName & ".mdb")


そのように組んでいるということがわからないのであれば、RootName.Root の中身を参照してください。

ルートが何たるかご存知ない状態で (あるいは勘違いをして) 使っているようにしか見えないです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2008-09-16 00:46
引用:
ファイル'F:\\,mdb'が見つかりませんでした。

ドライブは取れているのですよね。なら自分で[ゼミ]とか補えばいいのでは?

「VBでのプログラム」とmdbや画像は必ず同じドライブにあるという前提でいいんですかね。
その場合、プログラムの階層より下にmdbや画像があるならこっちのほうが使いやすいかもしれません。
http://msdn.microsoft.com/ja-jp/library/system.environment.currentdirectory(VS.80).aspx

スキルアップ/キャリアアップ(JOB@IT)