- PR -

Access2000 ネットワークでのリンクテーブル更新

1
投稿者投稿内容
みっくすどろっぷ
会議室デビュー日: 2006/02/14
投稿数: 4
投稿日時: 2006-03-27 21:29
はじめまして。
ActiveDirectory関係なら少しは分かるのですが、
Access関係が絡んできてしまい、少々悩んでおります。

経緯→ファイルサーバ移行
移行元:NT4.0Server -BDC (PDC他BDCは他にも多数あり)
移行先:ActiveDirectory DC(2台目)
NTドメインとActiveDirecotryドメインは双方向の信頼関係構築済み。
クライアントはサーバのファイルに直接アクセスするorソフトを使って
mdbファイルを更新します。
クライアントはAccess2000
サーバー内にはAccess2000と97で作成されているファイルが存在するが、
使っているファイルはすべて2000へコンバート済み。
サーバにはAccess2000を導入済み。

行ったこと:
・移行先サーバにてActiveDirecotryに昇格(すでにuserは手動にて移行済み)
・FSMT(ファイルサーバ移行ツール)にて移行元から移行先へコピー。
・ユーザーのアクセス権限も
・常に更新されているファイルサーバなので、完全移行が終わるまでは
新旧ファイルサーバを稼働中(主に旧サーバを使用中)
・最終移行時に増分コピーをして、新サーバに移行。(の予定)

問題点:
ファイル移行そのものはスムーズだったのですが、
Accessファイルにリンクテーブルが張られており、その情報が、
\\旧サーバ\共有フォルダ\hogehoge.mdb
となっているため、旧サーバを切り離した状態ではアクセスできないことが判明。
同じリンクテーブルでも、
\共有フォルダ\hogehoge2.mdb
となっているものではアクセス可能。(上記絶対パスと混在)
手動でリンクテーブルを更新すればよいのだが、
データベースファイルが大量にあり、1500ファイル程度ある(リストアップ済み)
\\旧サーバ名\共有フォルダ\hogehoge.mdb→\\新サーバ\共有フォルダ\hogehoge.mdb
等手動でリンクテーブルを書き換えた場合、アクセスできることは確認済み。

作業できる時間があまりない(重要情報を触るため、立ち会いがいつも必要)ので、
できれば半自動的に行えれば、と思っております。
vbスクリプトもサンプルなどを覗いて見ては見ましたが、
mdbファイル経由で行うようなので、accessがその都度立ち上がってしまい、
リソース不足で落ちてしまう始末です。(私がvb&accessをよく知らないかつ、
設計したところではないので、逐一調べていくしかないのですが)

そこで、2つ質問なのですが、
1.
・ファイル名がtxtファイルにてフルパスリストアップしてある状態で(file.txt)
・file.txtに存在する.mdbファイルの中にあるリンクテーブルから\\旧サーバを取り出し
・\\新サーバに更新する、という虫のいいことってできるでしょうか。

2.
・同じく、ファイル名がリストアップされている状態で、
・.mdbファイルから、リンクテーブルが存在するか否かを抽出
する方法があるのでしょうか。

良きアイデアがございましたら、よろしくお願いします。

---------------------------
みっくすどろっぷ
tommy@mist.office.ne.jp

---------------------------
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-03-28 19:41
こんにちは。
引用:

vbスクリプトもサンプルなどを覗いて見ては見ましたが、
mdbファイル経由で行うようなので、accessがその都度立ち上がってしまい、
リソース不足で落ちてしまう始末です。


ファイルがトータルで1500以上あるとはいえ、例えば一つずつ確実に処理していけばリソース不足にはならないはずです。
組んだスクリプトがメモリリークしていないかどうかチェックしてみてはいかがでしょう。

引用:

1.
・ファイル名がtxtファイルにてフルパスリストアップしてある状態で(file.txt)
・file.txtに存在する.mdbファイルの中にあるリンクテーブルから\\旧サーバを取り出し
・\\新サーバに更新する、という虫のいいことってできるでしょうか。


file.txt から mdb のフルパスを読み込む度に TableDef オブジェクト の Connect プロパティを書き換えるコードを書くことで実現できると思います。

引用:

・同じく、ファイル名がリストアップされている状態で、
・.mdbファイルから、リンクテーブルが存在するか否かを抽出
する方法があるのでしょうか。


TableDef.Connect プロパティに文字列が入ったテーブルが有るか無しかで判断できると思います。

[ メッセージ編集済み 編集者: ue 編集日時 2006-03-28 19:42 ]
みっくすどろっぷ
会議室デビュー日: 2006/02/14
投稿数: 4
投稿日時: 2006-03-29 10:57
みっくすどろっぷです。
アドバイスありがとうございました。

引用:

ファイルがトータルで1500以上あるとはいえ、例えば一つずつ確実に処理していけばリソース不足にはならないはずです。
組んだスクリプトがメモリリークしていないかどうかチェックしてみてはいかがでしょう。



きちんと終了処理をしていなかったため、
当然次々と上がってきてしまい、メモリを食い尽くして
落ちてしまう始末でした。
直すと終了することは確認できたのですが、
協議の結果、使わないことにしました。

引用:

file.txt から mdb のフルパスを読み込む度に TableDef オブジェクト の Connect プロパティを書き換えるコードを書くことで実現できると思います。


引用:

TableDef.Connect プロパティに文字列が入ったテーブルが有るか無しかで判断できると思います。



これは、MSの有償サポートからも言われました。

一からコードを書くスキルがないため、
一気に書き換える方法はあきらめることにしました。
今後は余裕を持ってサーバ移行しようと思います。

時間がないので、本日の夜、人手を出して
手動で地道にやる方針にしました。

本当にありがとうございました。

--------------------
みっくすどろっぷ
tommy@mist.office.ne.jp
1

スキルアップ/キャリアアップ(JOB@IT)