VB2008 CD データベース への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 ももも  (学生) 投稿日時 2009/8/6 21:22:50
すみません
なんとか、パスを取得して使うことができました。
投稿者 neptune  (社会人) 投稿日時 2009/8/6 21:02:49
>VBを起動しているパスを取得して、
に関しては先にサンプル書いてますよね。

>どうすれば、変数が使えるようになるんでしょうか? 
もももさんの代わりにコードを書くならともかく、・・書く気はないです。
今、何がどう悪いのかは、どうやって書いていて、どんなエラーが出るのかわからないのに
考えようもないです。

文字列変数の扱い方を勉強して下さい。知らないと文字列処理は「何にも」できませんよ。

↓手掛かり。
"文字列" & 変数 & "文字列2"
投稿者 ももも  (学生) 投稿日時 2009/8/6 19:08:53
データベースを使うためのコードで

        Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Database\data.mdb")
        Dim SQLCm As OleDbCommand = Cn.CreateCommand
        Dim y As String
        Dim x As String

        x = ComboBox1.Text
        y = ComboBox2.Text

        SQLCm.CommandText = "SELECT 名前 FROM 名簿 WHERE クラス = '" & x & "' and 番号 = " & y & ""

        Cn.Open()
        TextBox1.Text = SQLCm.ExecuteScalar
        Cn.Close()

と、なっているんですが
VBを起動しているパスを取得して、そのパスを
・・・\Database\data.mdb" この「・・・」の場所に使いたいのですが
変数を使ってやろうと思ってもエラーがでてしまうのですが
どうすれば、変数が使えるようになるんでしょうか?
投稿者 neptune  (社会人) 投稿日時 2009/8/6 07:19:35
>GetExecutingAssemblyは
>現在のコードを実行しているアセンブリを取得
>と、ありますが
>これを使えばパスがわかるということでしょうか? 
これは るしぇ さんのおっしゃる通りで、そちらを参考に願います。

自アプリのパス取得はもっと簡単なのがあるようです。

    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
        Console.WriteLine(Application.ProductName())

        Dim sPath As String = Application.ExecutablePath()
        Console.WriteLine(sPath)

        Dim sDir As String = System.IO.Path.GetDirectoryName(sPath)
        Console.WriteLine(sDir)

    End Sub


>ldbファイルが作られています
>これで、CD上で運用できるかはまだわかりませんが・・・
ですが、作られるならCD上での運用は無理と思います。CD上に一時ファイルは作成できませんから。

但し読み取り専用で使うならならいけるかも?・・・検証してみて下さい。

参考
Access 2000 の .ldb ファイルについて
http://support.microsoft.com/kb/208778/ja
古い文献ですが、mdbファイルなら恐らく変わってないと思います。
投稿者 るしぇ  (社会人) 投稿日時 2009/8/6 03:42:18
> これを使えばパスがわかるということでしょうか?
「GetExecutingAssembly パス」でぐぐっただけで
使えそうな情報がごろごろ引っ掛かるみたいだけど?
投稿者 ももも  (学生) 投稿日時 2009/8/6 03:01:46
mdbではneptuneさんがいわれたとおり
ldbファイルが作られています
これで、CD上で運用できるかはまだわかりませんが・・・

GetExecutingAssemblyは
現在のコードを実行しているアセンブリを取得
と、ありますが
これを使えばパスがわかるということでしょうか?
投稿者 neptune  (社会人) 投稿日時 2009/8/6 02:32:43
こんにちは

vb2008で確認したことはないのですが、
mdbファイルを使用すると、拡張子ldbの一時ファイルが作られませんか?
ちょっと昔の話ではありますが、ADO(netなしの奴)やDAOでmdbファイルに接続すると
作られます。

なので、もしado.netでも作られるとすると、CD上での運用はできるんですかね?
という疑問がわいてきます。

>そのデータベースのファイル先のパスを取得しないといけないのですが
の話ですが、アプリケーションを配置している同じディレクトリにでも置いておけば
そんなコマンドがあったと思います。
GetExecutingAssemblyで調べてみて下さい。
投稿者 ももも  (学生) 投稿日時 2009/8/6 02:10:17
こんにちは
VB初心者のものです

今、自分たちで作ったVBを
CDに焼いて使いたいのですが、データベースを使っていて
そのデータベースのファイル先のパスを取得しないといけないのですが
どんなコードを使えばいいのか調べたりしましたがわかりません

うまく説明できませんがお願いします

データベースはAccessを使っています