電子書籍の厳選無料作品が豊富!

大変お世話になります。

Access 2007 ADPファイルにて SQL Server 2005 との接続でのシステムを運用しています。
テーブル情報のフィールド説明欄(Description) の値の一覧を取得したいと思い下記のプログラムを作ってみたのですが、Descriptionの値以外はおおむね取得できるのですが、説明欄のところがすべてエラーになってしまい説明欄の Description の取得ができません。
格納場所か、プロパティの参照の仕方が原因だと思うのですが、解決できません。

テーブルの説明欄(Description)値の参照の仕方をご存じの方がいらっしゃいましたら何卒ご教授いただければと存じます。
よろしくお願いいたします。

    Dim Cn As ADODB.Connection
    Dim Rs As New ADODB.Recordset
    Dim SQL As String
    Dim i As Integer
    
    Set Cn = CurrentProject.Connection
    
    SQL = " SELECT dbo.テーブルA.* "
    SQL = SQL & " FROM dbo.テーブルA"

    Dim MyDB As New ADOX.Catalog
    Dim MyTable As ADOX.Table
    Dim MyField As ADOX.Column

    MyDB.ActiveConnection = CurrentProject.Connection
    Set MyTable = MyDB.Tables("テーブルA")
    
    Rs.Open SQL, Cn, adOpenForwardOnly, adLockReadOnly

        For i = 0 To Rs.Fields.Count - 1
            MsgBox Rs.Fields(i).Name
                       
            'MsgBox MyTable.Columns(Rs.Fields(j).Name).Properties("Description").Value
            MsgBox Rs.Fields(i).Properties("Description").Value

            MsgBox Rs.Fields(i).ActualSize
            MsgBox Rs.Fields(i).Attributes
            'MsgBox Rs.Fields(i).DataFormat
            MsgBox Rs.Fields(i).DefinedSize
            MsgBox Rs.Fields(i).NumericScale
            'MsgBox Rs.Fields(i).OriginalValue
            MsgBox Rs.Fields(i).Precision
            
            'MsgBox Rs.Fields(i).Properties("Description")
                        
            MsgBox Rs.Fields(i).Status
            MsgBox Rs.Fields(i).Type
            'MsgBox Rs.Fields(i).UnderlyingValue
            MsgBox Rs.Fields(i).Value
        
        Next

    Set MyDB = Nothing

    Rs.Close
    Set Rs = Nothing
    Cn.Close
    Set Cn = Nothing
    Exit Sub

A 回答 (2件)

WHERE句の条件を設定?JOINの・・?かな?と思いますが、


ごめんなさい。私にゃ無理です。
こちらを閉じて、カテゴリを技術者向け→データベース→SQLServer にて
ご相談されるか、

餅は餅屋に
http://social.msdn.microsoft.com/Forums/ja-JP/ho …
でお尋ねされては?
全否定するつもりはありませんが、マルチポストはご遠慮くださいね。
    • good
    • 0
この回答へのお礼

nicotinism さん お世話になります。

すみません。
この場合はほぼ、SQL Server のカテゴリになりますね。
カテゴリを移して改めて質問しようと思っております。
質問にお付き合いいただきありがとうございました。

お礼日時:2013/08/09 19:07

検証できる環境にないので検証した訳ではありません。


参考になる(ならない)は不明です。
http://allenbrowne.com/func-adox.html#ShowPropsA …

この回答への補足

nicotinism さん お世話になります。

情報ありがとうございます。
試してみたのですが、指定したコレクションが見つかりませんと表示されてしまいます。

これは表示されるのではと思ったのですが、残念です;;

補足日時:2013/08/08 20:21
    • good
    • 0
この回答へのお礼

SQL = " select t.name as TABLE_NAME ,c.name as COLUMN_NAME ,ep.value as COMMENT from sys.tables t ,sys.columns c ,sys.extended_properties ep "
SQL = SQL & " where t.name = '該当テーブル名' "
SQL = SQL & " and t.object_id = c.object_id "
SQL = SQL & " and c.object_id = ep.major_id "
SQL = SQL & " and c.column_id = ep.minor_id;"

上記のSQL文を実行して、COMMENT列が コメントとして取得できるような記述があったのですが、実行するとコメント(説明)以外のプロパティも参照されるようで、いろいろと不必要な物も表示されてしまいます。あくまでもテーブル内のフィールドの説明だけを取り出すにはどうしたらよいでしょうか?

もしおわかりになられるようでしたら、ぜひご教授いただければと存じます。

お礼日時:2013/08/08 21:57

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