アプリ版:「スタンプのみでお礼する」機能のリリースについて

access2007を使用しています。
テーブルをリンクで参照しているのですが、全てのテーブル名に「dbo_」と付いています。

accessにてSQLを実行する際、
「作成タブ」>「クエリデザイン」>「SQL表示」>SLQ記入>「!ボタン(実行)」
にて実行しています。

SQL記入の際にテーブル名に「dbo_」を入力しなければなりません。
これを無しで実行する方法は無いのでしょうか?

A 回答 (2件)

> Set rs = db.Execute("select Name from MsysObjects where Name Like ""dbo_*"" and type = 6")


この行でエラーにならなかったら無限ループですね。
エラーになってラッキーです。

システムオブジェクトを開いてトラブルがあると怖いものがあるので
「MsysObjects」 を参照しない方法で。

Sub Proc_LinkTable_Rename()
  Dim dbs As DAO.Database
  Dim tdf As DAO.TableDef

  Set dbs = CurrentDb
  For Each tdf In dbs.TableDefs
    If tdf.Connect <> "" Then
      If tdf.Name Like "dbo_*" Then
        tdf.Name = Mid(tdf.Name, 5)
      End If
     End If
   Next
  dbs.Close
  Set dbs = Nothing
End Sub

ナビゲーションウィンドウには遅れて表示されるかもしれません。
    • good
    • 0

3つぐらい方法はあるかと思います。



(1)テーブルのリンクテーブルを一個一個、「名前の変更」で「dbo_」をはずす。
(2)以下のようなサブプロシージャーを作成して実行
Sub proc_linktable_rename()
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.Execute("select Name from MsysObjects where Name Like ""dbo_*"" and type = 6")
Do Until rs.EOF
Set tdf = db.TableDefs(rs.Fields(0))
tdf.Name = replace( rs.Fields(0), "dbo_", "")
Loop
Set tdf = Nothing
Set db = Nothing
End Sub
(3)クエリデザイン画面でテーブルを右クリックして、プロパティの別名を変更。
    • good
    • 0
この回答へのお礼

nora1962さん、ご回答ありがとうございます。

テーブルが数百あるので1つ1つ変えるのはかなり厳しいと考え、(2)を選択しました。

モジュールを作成し実行してみた所、
Executeの所で「functionまたは変数が必要です」と表示されてしまいエラーとなってしまします。
原因を調べてみましたが分かりませんでした。

申し訳ありませんが、どのように修正すればよろしいのでしょうか?

お礼日時:2011/11/17 13:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す