MSDE FunClub
Microsoft Data Engine FunClub
MSDE技術者向けメーリングリスト過去ログ[1347]番
 
[TOP]>[MSDE技術者向けメーリングリスト過去ログ(1347番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
[解決] Re:  ODBC 切り替え後のテーブルデータリフレッシュの方法

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 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。