DOBON.NET DOBON.NETプログラミング掲示板過去ログ

adpのデータリンクプロパティ

環境/言語:[WindowsXP Pro/VB.net/.NET Framework1.1]
分類:[.NET]

いつもお世話になってます。

皆様の知恵をお借りしたいのですが、adpファイルの「データリンクプロパティ」の
SQLServerへの接続設定をVB.netなどで編集したいのです。言語は特には問いません。MSDNやインターネットを探してみたのですが、それらしい情報が見つかりません。
そもそも、出来るのかどうかもわかりません。

ご教授のほど、お願いします。
> MSDNやインターネットを探してみたのですが、それらしい情報が見つかりません。

 「データリンクプロパティ adp」をキーワードにぐぐったら次のようなものが見つかりましたけど、こちらで紹介されている参考リンクの内容では用をなさなかったのでしょうか? 少し試した感じでは問題なさそうでした※が‥‥。
 であれば、どのような調査をなさったのか提示されたほうがよろしいかと。

DB接続値(ADP)の変更
http://www7.big.or.jp/~pinball/discus/vb/55888.html

※私は Access を普段触ってないので何か大きな勘違いしてるのかも知れません。
ご返信ありがとうございます。

>  「データリンクプロパティ adp」をキーワードにぐぐったら次のようなものが見つかりましたけど、こちらで紹介されている参考リンクの内容では用をなさなかったのでしょうか? 少し試した感じでは問題なさそうでした※が‥‥。
>  であれば、どのような調査をなさったのか提示されたほうがよろしいかと。

申し訳ありませんでした。もっと具体的に書くべきでしたm(_ _)m

> DB接続値(ADP)の変更
> http://www7.big.or.jp/~pinball/discus/vb/55888.html

リンク先は見ることができましたが、肝心の参考リンクが見れません。(リンク切れ?)
深山さんは見れましたでしょうか?
> リンク先は見ることができましたが、肝心の参考リンクが見れません。(リンク切れ?)
> 深山さんは見れましたでしょうか?

 え? ‥‥(再確認)‥‥サーバーが見つかりませんって(汗)
#11時半過ぎくらいだったかに見たときは大丈夫だったのに〜(>_<)

 えーっと‥‥(ごそごそ)


 参考リンク先も掲示板(Access会議室)でのやり取りで、質問者さんの要件は『 ADP を接続なしで開きたい』というものでした。
 最終的な回答は
・CurrentProject.CloseConnection で切断ができる
・BaseConnectionString を残したくないなら空文字を引数にして CurrentProject.OpenConnection すれば良い
となっており、これで解決しています。


 みかんさんの要件は『接続設定を変更したい』ということでしたので、接続文字列を変更してあげれば良いのではないかと考えました。
それで「問題なさそう」という発言をしたわけです。
 根本的なところで誤解してるようでしたら流してくださいませ(^_^;)


#役には立たないかも知れませんけど、実験したときのコードを下記しておきます。
#( Microsoft Access X.X Object Library の参照が必要です。)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim oAccess As Access.Application
        Dim oProject As Access.CurrentProject

        oAccess = New Access.ApplicationClass()
        oAccess.OpenAccessProject("ここにはadpファイルのパスを入れて下さい", True)

        oProject = oAccess.CurrentProject

        oProject.CloseConnection()
        oProject.OpenConnection("ここには適切な接続文字列を入れて下さい")

        System.Runtime.InteropServices.Marshal.ReleaseComObject(oProject)

        oAccess.CloseCurrentDatabase()

        System.Runtime.InteropServices.Marshal.ReleaseComObject(oAccess)
    End Sub
2004/12/20(Mon) 09:18:06 編集(投稿者)
2004/12/20(Mon) 09:18:01 編集(投稿者)

深山さんのおっしゃるとおりです。
ただ単に、接続の文字列を変更したいのです。
深山さんのコードで実験しようとしたのですが、「エラーを特定できません」という
エラーで止まってしまいます。
下記にコードを記載します。


Dim oAccess As Access.Application
Dim oProject As Access.CurrentProject

oAccess = New Access.ApplicationClass
oAccess.OpenAccessProject(Application.StartupPath & "\情報.adp", True)

oProject = oAccess.CurrentProject

oProject.CloseConnection()
oProject.OpenConnection("Provider=SQLOLEDB.1;DATA SOURCE=pc;" & _
"INITIAL CATALOG=情報;" & _
"USER ID=sa;" & _
"PASSWORD=****;PERSIST SECURITY INFO=false")

System.Runtime.InteropServices.Marshal.ReleaseComObject(oProject)

oAccess.CloseCurrentDatabase()

System.Runtime.InteropServices.Marshal.ReleaseComObject(oAccess)

MessageBox.Show("できたんじゃな〜い?")


できれば、深山さんの接続文字列を見させて頂けませんか?
自己レスです。

原因がわかりました。接続設定を変更するadpファイルが、別のアプリケーションで
開かれており、書き込みが出来ないということでエラーが起きてたみたいです(^^;)
深山さんにはご迷惑をおかけしましたm(_ _)m
おかげさまで解決しました。ありがとうございました!
解決済み!
2004/12/16(Thu) 17:52:36 編集(投稿者)
2004/12/16(Thu) 17:05:00 編集(投稿者)

#カキコしてる間に解決したようなので削除<途中暫く席を外してました(^_^;)
#無事解決されたようで何よりです♪



#追記
#先程確認したら件の参考リンクを見ることができました。
#サーバの調子が悪かったとか、そういう話だったのかも。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板