- ベストアンサー
Access2000でテーブルをデザインモードで開いた時の情報を印刷したい
アクセス2000を使用しております。 テーブルで、デザインモードで記述している内容 (フィールド名、データ型と、説明の3項目)を 印刷したいのですが、方法がわかりません。 テーブルの解析を使えば、フィールド名とデータ型は 印刷できますが、説明が入りません。 自分の力だとスクリーンショットをとって印刷することしか思いつかないので、 どうぞご教授くださいますようお願いいたします。
- みんなの回答 (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関数とかを使ってデータ型の番号と名称を対応付けてやるといいかも。
その他の回答 (1)
テーブルのデザインビューを開いて、 Ctrl + PrintScreen ペイントなどの適当なところに貼り付けて印刷 ではダメなんですかね?
お礼
早速の回答ありがとうございます。 スクリーンショットだと、1枚、2枚程度かつ、 自身や内部で参照するにはいいのですが、 膨大な枚数を処理する、社外資料作成には向かないので。。 せっかくご回答くださったのに申し訳ないです。
お礼
とっても詳しい解説ありがとうございます。 やっぱりVBAを使わないと無理なんですね。 でも、一度組んでおけば、この先何かと 汎用性がありそうなので、一度組んでみようかと思います。 ありがとうございました。
補足
組むどころか、コピーペーストでできるように していただいて本当にありがとうございます! これを機に、VBAについてもう少し勉強してみようと思います。 本当に感謝の気持ちでいっぱいです。 重ねて御礼申し上げます。ありがとうございました。