• ベストアンサー

Access2000でテーブルをデザインモードで開いた時の情報を印刷したい

アクセス2000を使用しております。 テーブルで、デザインモードで記述している内容 (フィールド名、データ型と、説明の3項目)を 印刷したいのですが、方法がわかりません。 テーブルの解析を使えば、フィールド名とデータ型は 印刷できますが、説明が入りません。 自分の力だとスクリーンショットをとって印刷することしか思いつかないので、 どうぞご教授くださいますようお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

VBA使えますか? 以下のようなスクリプトを書けば、テーブルとフィールドの一覧をファイルに書き出せます。 Public Sub FieldsFileout()  Dim nFileNo As Integer  Dim i    As Long  Dim j    As Long  Dim sDesc  As String  Dim sOutput As String      nFileNo = FreeFile()  Open "c:\Fields.CSV" For Output As #nFileNo  For i = 0 To CurrentDb.TableDefs.Count - 1   'システムテーブルか否かを判別する   If (CurrentDb.TableDefs(i).Attributes And &H80000002) = 0 Then    'システムテーブルじゃ無ければフィールドの一覧を取得して書き出す    For j = 0 To CurrentDb.TableDefs(i).Fields.Count - 1     '備考は必須じゃないプロパティなので備考無しの場合でもエラーとならないようにする     sDesc = ""     On Error Resume Next     sDesc = CurrentDb.TableDefs(i).Fields(j).Properties("Description")     On Error GoTo 0          'ファイルに書き出す     sOutput = ""     sOutput = sOutput & CurrentDb.TableDefs(i).Name     sOutput = sOutput & "," & CurrentDb.TableDefs(i).Fields(j).Name     sOutput = sOutput & "," & CurrentDb.TableDefs(i).Fields(j).Type     sOutput = sOutput & "," & sDesc     Print #nFileNo, sOutput    Next j   End If  Next i  Close #nFileNo End Sub ちなみにテーブル名, フィールド名, データ型, 備考の順です。 データ型の内容は以下の通り。 01, dbBoolean, ブール型 (Boolean) (True/False) 02, dbByte, バイト型 (Byte) (8 ビット) 03, dbInteger, 整数型 (Integer) 04, dbLong, 長整数型 (Long) 05, dbCurrency, 通貨型 (Currency) 06, dbSingle, 単精度浮動小数点数型 (Single) 07, dbDouble, 倍精度浮動小数点数型 (Double) 08, dbDate, 日付/時刻型 (Date/Time) 09, dbBinary, バイナリ型 (Binary) 10, dbText, テキスト型 (Text) (可変長) 11, dbLongBinary, ロング バイナリ型 (LongBinary) - OLE オブジェクト型 (OLE Object) (ビットマップ) 12, dbMemo, メモ型 (Memo) (拡張テキスト) 15, dbGUID, GUID 型 (GUID) 16, dbBigInt, Big Integer 型 (Big Integer) (ODBCDirect ワークスペースでのみ使用可) 17, dbVarBinary, 可変長バイナリ型 (VarBinary) (ODBCDirect ワークスペースでのみ使用可) 18, dbChar, CHAR 型 (Char) (ODBCDirect ワークスペースでのみ使用可) 19, dbNumeric, Numeric 型 (Numeric) (ODBCDirect ワークスペースでのみ使用可) 20, dbDecimal, 10 進型 (Decimal) (ODBCDirect ワークスペースでのみ使用可) 21, dbFloat, 浮動小数点数型 (Float) (ODBCDirect ワークスペースでのみ使用可) 22, dbTime, 時刻型 (Time) (ODBCDirect ワークスペースでのみ使用可) 23, dbTimeStamp, タイムスタンプ型 (TimeStamp) (ODBCDirect ワークスペースでのみ使用可) Excelで開いて、VLookup関数とかを使ってデータ型の番号と名称を対応付けてやるといいかも。

hanywa
質問者

お礼

とっても詳しい解説ありがとうございます。 やっぱりVBAを使わないと無理なんですね。 でも、一度組んでおけば、この先何かと 汎用性がありそうなので、一度組んでみようかと思います。 ありがとうございました。

hanywa
質問者

補足

組むどころか、コピーペーストでできるように していただいて本当にありがとうございます! これを機に、VBAについてもう少し勉強してみようと思います。 本当に感謝の気持ちでいっぱいです。 重ねて御礼申し上げます。ありがとうございました。

その他の回答 (1)

noname#5357
noname#5357
回答No.1

テーブルのデザインビューを開いて、 Ctrl + PrintScreen ペイントなどの適当なところに貼り付けて印刷 ではダメなんですかね?

hanywa
質問者

お礼

早速の回答ありがとうございます。 スクリーンショットだと、1枚、2枚程度かつ、 自身や内部で参照するにはいいのですが、 膨大な枚数を処理する、社外資料作成には向かないので。。 せっかくご回答くださったのに申し訳ないです。

関連するQ&A