Date: Fri, 9 Jul 2004 16:45:49 +0900
From: "Ikeda, Satomi, VF-JP" <who@example.com>
こんにちは。池田です。
どうにか解決したみたいです。
メールをお送りした後に、ADOXのレファレンスをあさってみました。
http://www.microsoft.com/japan/msdn/columns/office/office10052000.asp
リンクテーブル作成、プロパティ値の変更などが可能とのことで、
ODBCに頼らないで、そのたびごとにリンクテーブルを作成する方針で作業することにしました。
もしなにかありましたら、またよろしくお願いいたします。
池田
------------------------------------------------------------------------
Sub RefreshLinks()
Dim catDB As ADOX.Catalog
Dim tblLink As ADOX.Table
Dim strProviderString
strProviderString = "DSN=Test;" _
& "Description=;" _
& "UID=xxx;PWD=zzz;" _
& "DATABASE=db1;" _
& "Network=DBMSSOCN"
Set catDB = New ADOX.Catalog
' リンクを更新するデータベース上のカタログを開きます。
' catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" _
' & "Data Source=" & strDBLinkFrom
catDB.ActiveConnection = CurrentProject.Connection
For Each tblLink In catDB.Tables
' テーブルがリンク テーブルであることを確認します。
If tblLink.Type = "PASS-THROUGH" Then
' Debug.Print tblLink.Name
' Debug.Print tblLink.Properties("Jet OLEDB:LInk Provider String").Value
tblLink.Properties("Jet OLEDB:LInk Provider String") = strProviderString
' Debug.Print tblLink.Properties("Jet OLEDB:LInk Provider String").Value
End If
Next
DoCmd.OpenQuery "q_text"
' catDB = Nothing
End Sub
> -----Original Message-----
> From: Ikeda, Satomi, VF-JP
> Sent: Friday, July 09, 2004 1:57 PM
> To: who@example.ne.jp
> Subject: [ml-msde:01346] ODBC 切り替え後のテーブルデータリフレッシュの
> 方法
>
>
> こんにちは。池田と申します。
>
> しばらく調べているのですが、いい情報にHITできず、
> 皆様のお知恵をお借りできたらと思い、メールいたします。
>
> 同じスキーマを持つ2つのSQLServerデータベース A,Bがありま
> す。
> SQLServer CのデータとA,Bのデータが同じであることを確認するために、
> Access2002でツールを作成しました。
> Aデータ確認用とBデータ確認用として、現在リンク先の違うMDBを2つ準
> 備しています。
>
> MDBを1つにしたいので、
> テーブルなどのリンク先をVBAで切り替えるプログラムを作成しました。
>
> しかし、切り替えプログラム実行前後のテーブルデータが切り替わりません。
>
> ODBC管理ツールやレジストリ内のODBC.ini設定は、
> AからB、BからAに切り替わっています。
>
> どうしたら、テーブルデータが切り替わってくれるのかがよくわかりません。
>
> 参考になるデータなど、ご存知の方がいらっしゃいましたら、ご教示お願いで
> きないでしょうか?
> ぜひよろしくお願いいたします。
>
> 当方、DAOとADOXなどの実践知識が不足しているせいか、
> RefreshLink、Refreshなど、調べればしらべるだけ混乱してきてしまい、
> 本件になやみだして、すでに1ヶ月半が経過しようとしています。
> #ソースでは、RegisterDatabaseですが、SQLConfigDatabase版も作成いたしま
> した。
> #もしその方がテーブルデータ切り替えに有効だなどという見識などありまし
> たら、
> #ぜひ伺わせてください。
>
> ----------------------------------------------------------
> 参考までにソースを掲載いたします。
> Sub test()
> ' テストプロシージャ
> ' リンク先をAにします。
> ' Call change_reg("A") <- テストの時は、A、B間でコメントアウトを切り
> 替えます。
> ' リンク先をBにします。
> Call change_reg("B")
> ' テーブルの内容を確認します。
> docmd.openquery "q_test"
> End Sub
>
> Sub change_reg(kind)
> ' 実際のプロシージャ
> Dim strAttrributes
> ' 接続先を選択します。
> Select Case kind
> Case "A"
> strAttrributes = "Database=db1"
> Case "B"
> strAttrributes = "Database=db2"
> End Select
>
> strAttributes = strAttribute &
> vbCr & "Description=" & kind & _
> vbCr & "Network=DBMSSOCN" & _
> vbCr & "QueryLog_On=No" & _
> vbCr & "StatsLog_On=No" & _
> vbCr & "Server=server1"
>
> DBEngine.RegisterDatabase "test", "SQL Server", True,
> strAttrributes End Sub
>
> End sub
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|