みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

リンクテーブルについて・・・

Access97で仕事関連のシステムを開発しています。
実データはテーブルだけのMDBファイルに格納して、
リンクテーブルとしています。

自宅ではアプリケーションMDBファイル、実データMDB
ファイル共、ローカルディスクに入れていますが、
仕事場では実データMDBファイルはネットワーク上の
サーバに有ります。

その為、アプリ変更の都度「リンクテーブルマネー
ジャー」を行わないといけないのですが、これが結構
やっかいです。

自宅の環境では、数十テーブルのリンクに関して、
1回だけリンク先のMDBファイルを指定してやれば、
全てのテーブルリンクが完了しますが、仕事場では
各テーブル毎に1件づつリンク先を指定しないと
いけません・・・なんで?

あと、2つのリンク環境を一発で更新するとか、
出来ませんかネェ?

投稿日時 - 2004-05-19 16:56:58

QNo.863869

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

会社のリンクテーブル先、全部同一のmdbにはいっていますか?
 全部同一のmdbに入っているのなら、全部のテーブルを選択して、1回だけリンク先のMDBファイルを指定してやれば全てのテーブルリンクが完了しますが、
 リンク先が複数のmdbに分かれている場合、全部のテーブルがひとつのmdbに入っているわけではないので、全部選択してしまうと、1回づつ聞いてきます。
 同一のmdbに入っているテーブルだけ選択して(複数可能)リンクを張りなおして、また別のmdbに入っているテーブルだけ選択してリンクを張りなおす、という方法があります。

リンク先を指定して実行ボタンをクリックすると、リンク先を更新するVBAです。
(ACCESS97実際に使っています。)
Private Sub 実行_Click()

If IsNull(Me![リンク先]) Then
Exit Sub
End If

RefreshLinks (Trim(Me![リンク先]))

DoCmd.Close
DoCmd.OpenForm "メインメニュー"

End Sub


'********************************************************************
'指定されたデータベースへのリンクを更新します。成功した場合は、True を返す。
'********************************************************************
'
Public Function RefreshLinks(strFileName As String) As Boolean

Dim dbs As Database
Dim intCount As Integer
Dim tdf As TableDef

DoCmd.Hourglass True

Set dbs = CurrentDb
For intCount = 0 To dbs.TableDefs.Count - 1
Set tdf = dbs.TableDefs(intCount)

If Len(tdf.Connect) > 0 Then
tdf.Connect = ";DATABASE=" & strFileName
Err = 0
On Error Resume Next
tdf.RefreshLink
If Err <> 0 Then
DoCmd.Hourglass False
RefreshLinks = False
Exit Function
End If
End If
Next intCount

DoCmd.Hourglass False

RefreshLinks = True

Set tdf = Nothing
Set dbs = Nothing

End Function

投稿日時 - 2004-05-19 17:27:02

ANo.1

こんにちは。maruru01です。

この辺かな。

http://hp.vector.co.jp/authors/VA002273/access/

http://www2.moug.net/cgi-bin/technic.cgi?acvba+TI07010027

両方ともVBAなので、VBAが分からないとちょっと厳しいかも知れません。

参考URL:http://hp.vector.co.jp/authors/VA002273/access/,http://www2.moug.net/cgi-bin/technic.cgi?acvba+TI07010027

投稿日時 - 2004-05-19 17:13:50

あなたにオススメの質問