Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトルRuntimeでの実行時の DB再接続時の警告を表示させない方法
記事No16720
投稿日: 2011/05/20(Fri) 17:35
投稿者KAMESAN
解決済: ON
OS:WindowsXP
Access Version:
2010

以前、PG.accdbからserverにあるDATA.accdbへの接続で、テーブルに接続するたびに、警告が表示されるので、その都度確認をしなければならないのが大変なので、何か方法がないでしょか? という質問でした。
それで、信頼する場所の設定で、レジストリーの設定方法を教えていただきました。
その時は、他のパソコンで実行するとうまくいったのです。が、そのパソコンには、Access2010がインストールされていました。この時もruntimeで実行しました。たまたま今回、他のパソコンで実行すると、同じように警告が表示されました。その違いを調べると、今回のパソコンでは、Access2010がインストールされていなくて、Accessruntimeだけで実行したのです。
ということは信頼する場所の設定はruntimeでは無効なのでしょうか。いづれにしても、runtimeで実行して、DATA.accdbと接続がスムーズにいく方法はないでしょうか?ご教示お願いします。

タイトルRe: Runtimeでの実行時の DB再接続時の警告を表示させない方法
記事No16721
投稿日: 2011/05/22(Sun) 01:21
投稿者MukkuMuku
解決済: ON
こんばんは。
Runtimeであっても必要な設定は同じですよ。

今回うまくいかなかったことについて
Runtimeはaccess2010Runtime?
OSはXP?

結局、インストール先はどこで、どのようなレジストリ設定をされたのでしょうね。
DATA.accdb接続のコードはどんな感じなのでしょう。

タイトルRe^2: Runtimeでの実行時の DB再接続時の警告を表示させない方法
記事No16722
投稿日: 2011/05/23(Mon) 13:56
投稿者KAMESAN
解決済: ON
同じinstallerで作業しました。
前回成功した環境と今回の違いは、前回はACCESS2010の本体がinstallされていた点です。pgのinstallは、c:\test\ です。dataは、\\server\共有\testdata\ です。(\共有 は共有化しています。)

OSは、XP、7
runtime2010

前回、今回共にレジストリには作成されていました。


接続時、一旦linkテーブルは削除して、再度linkの貼り直しをします。

LinkPath1は、data.accdbのpathです。

For Each Tdf In OpenDatabase(LinkPath1, False, False, "MS Access;PWD=" & LinkPass).TableDefs 'リンクテーブルを再接続する

If Left(Tdf.Name, 4) <> "MSys" Then 'MSys以外のテーブルをリンクする
DoCmd.TransferDatabase acLink, "Microsoft Access", LinkPath1, acTable, Tdf.Name, Tdf.Name
End If
Next

レジストリの設定は2つ。
1はpgの場所の設定
2はdataの場所の設定
network上の許可

これで、前回は成功しました。(本体がinstallされている。)

たしかに、他のpcでも、access2010の本体をinstallすると、okになります。
本体がinstallされていない場合は、警告がでます。

タイトルRe^3: Runtimeでの実行時の DB再接続時の警告を表示させない方法
記事No16723
投稿日: 2011/05/23(Mon) 22:23
投稿者MukkuMuku
解決済: ON
こんばんは、MukkuMukuです。
前回のスレッドへのコメントしてから、
リンクテーブルを作成しようとする時どのような条件でセキュリテュに関する通知があるのか確認中でした。
今のところこんな感じではないかと思っている。

リンク先Accessファイルの配置場所が信頼できる場所にあればセキュリティ警告は出ない。

ですが、信頼できる場所にない場合、リンクテーブル作成の方法によっては状況が変わるようです。

1.データのインポート/エクスポートマクロアクション(a2010)/データベース変換マクロアクション(a2007)
 製品上で実行した場合、セキュリティ警告はでない。
 RuntimeモードおよびRuntime環境上で実行した場合、セキュリティ警告はでる。

2.DoCmd.TransferDatabase
 セキュリティ警告はでる。

3.CreateTableDef
 セキュリティ警告はでない。
 TableDef.Connectプロパティの更新もでない。

>たしかに、他のpcでも、access2010の本体をinstallすると、okになります。
>本体がinstallされていない場合は、警告がでます。
とのことですが、
試してみたところ製品版/Runtimeいずれでもリンク先が信頼できる場所になければ警告は出ました。

なので、これら踏まえて。

Sub ReConnectTable()
  Dim tdf As DAO.TableDef, Linkpass As String, Linkpath1 As String
  Dim Newtdf As DAO.TableDef, dbs As DAO.Database

  Linkpath1 = "\\server\共有\testdata\data.accdb"
  Linkpass = "P@ssw0rd"

  Set dbs = DBEngine.OpenDatabase(Linkpath1, False, False, ";PWD=" & Linkpass)

  For Each tdf In dbs.TableDefs
    If Left(tdf.Name, 4) <> "MSys" Then
      Set Newtdf = CurrentDb.CreateTableDef(tdf.Name)
      Newtdf.Connect = ";PWD=" & Linkpass & ";DATABASE=" & Linkpath1
      Newtdf.SourceTableName = tdf.Name
      CurrentDb.TableDefs.Append Newtdf
    End If
  Next
  dbs.Close: Set dbs = Nothing
  Application.RefreshDatabaseWindow
End Sub


c:\test\ということだから
インストール先をシステムドライブ(すべてのユーザ)にして、レジストリの設定は1件だけ、
---------------------------------------
ルート:すべてのユーザー
キー:SOFTWARE\Microsoft\Office\14.0\Access\Security\Trusted Locations\[ProductCode]_1
名前:Path
値:[DATABASEDIR]
---------------------------------------

※※ Win764bit+Access2010(64bit)の場合は別途対応が必要。 ※※
※※ XP環境の場合、読み取り専用になることがある。 ※※

これでうまくいけばいいなと。
検証に付き合ってもらうようなことになるのだけど、試してもらって結果をぜひ聞かせてください。

タイトルRe^4: Runtimeでの実行時の DB再接続時の警告を表示させない方法
記事No16725
投稿日: 2011/05/24(Tue) 10:49
投稿者KAMESAN
解決済: ON
MukkuMukuさん
いつも有難うございます。
さっそく、testします。
結果は、ご報告させていただきます。

ただレジトリには、信頼する場所として、設定されているのことは確認しているのですが。

タイトルRe^5: Runtimeでの実行時の DB再接続時の警告を表示させない方法
記事No16726
投稿日: 2011/05/24(Tue) 13:14
投稿者KAMESAN
解決済: ON
MukkuMukuさん
いつも有難うございます。
さっそく、testしました。
結果は、警告はでませんでした。成功です。

ありがとうございます。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る