ACCESS2007にて、フロンドエンドデータベースとバックエンドデータベースに分割したプログラムを作成しています。今回、フロントデータベースのリンク先を一括変更する機能をつけたしたいと思い(バックエンドデータベースの場所を変更したときのための対処として)、プログラム作成しました。ネットを参考に、下記のようなプログラムを組んだのですが、これでは、普通のテーブルへのリンクはいいのですが、テキストリンクテーブルにまで変更をかけてしまい、そこでエラーが起こります。そこで、リンク変更する際に、テキストリンクテーブルなどは除外し、通常のリンクテーブルのみに変更プログラムを適用できるようにする記述方法はないでしょうか?テーブルtbの種類を表示できるようにすれば、if文で条件分けできると思うのですが、その表示方法がわかりません。もしくは、他のやり方をご存じの方ありましたら、ご教授よろしくお願いします。 Private Sub コマンド15_Click() On Error GoTo Err_MSG Dim strfile As String Dim intResult As Integer Dim tb As DAO.TableDef Const ENABLE_WIZHOOK = 51488399 Const DISABLE_WIZHOOK = 0 WizHook.Key = ENABLE_WIZHOOK intResult = WizHook.GetFileName(0, "", "データベースを指定してください。", "" _ , strfile, "", "accdbファイル(*.accdb)|*.accdb", 0, 0, 0, True) WizHook.Key = DISABLE_WIZHOOK If strfile = "" Then Exit Sub For Each tb In CurrentDb.TableDefs 'リンクテーブルのみ更新する。 If tb.Connect <> "" And tb.Connect <> ";DATABASE=" & strfile Then tb.Connect = ";DATABASE=" & strfile tb.RefreshLink End If Next tb MsgBox ("リンク更新が正常に終了しました。") Exit Sub Err_MSG: MsgBox Err.Description, 16 End Sub
↧