データベースソフト、Access−その2 |
さて、Accessを使う場合、 Excelとの連携を考えましょう。使い分けを考えるわけです。 データーをExcelで作成して来たのなら、データー入力はExcelのままで続ける方が楽です。 AccessはExcelで作成したデーターの色々な加工用に使うようにします。 先ずEXCELのデーターをAccessで処理できるように、リンクしておきます。 「テーブルのリンク」を使うと、ExcelのテーブルがそのままAccessで処理できます。 この場合の処理と云うのは、クエリー処理のことで、データー自体の内容を変えるのではありません。 データーの構造や、表示方法、或いはファイルの変換などを自由に行う事が出来ます。 或いは、Excelの複数ファイルを1つにまとめたり、1つのファイルの中にあるデーターから、特定の条件に合うデーターを抽出し、 別ファイルとして保存する等の加工も簡単に出来ます。 「テーブルのリンク」をしておくとExcelのデーター内容を変更しても、自動的にAccessで処理するデーターも変更されます。 以前質問があったのですが、 ExcelでHTMLの標準出力を行うと、フォントなどがそのまま記述されてしまい、ファイルサイズが大きくなる。これはどうにかならないのか」 と云うものでした。 Excelだけの場合、CSV出力して、それをHTMLファイルで取り込むと云う方法になるわけですが、 Accessを使うと、ファイルのHTML出力の際、「ファイル」→「名前を付けて保存(エクスポート)」→(ファイル形式でHTMLを選択) と云う方法で、フォント属性のつかない形で出力できます。 (注) 「ファイル」→「HTML形式で保存」を選ぶと、フォント属性がつきます。 この操作はマクロ処理が簡単に出来ます。 マクロの記述で、「テキスト変換」のうちHTMLでエクスポートを選択すればよいわけです。 Accessのデーター処理機能は多種多様ですからここで紹介できるものではありませんが、 「それなら、データー入力を最初からAccessで行えば良いではないか」、と思われる方がいると思います。 個人的には、これはあまり薦めません。 と云うのは、表計算ソフトとデーターベース処理ソフトを長々と両方共使い続けてきましたが、 Accessで入力するより、Excelで入力する方が、単純で楽だと云うのがその理由です。 又、古書データーは販売処理が伴いますから、販売後の各種集計処理にはExcelを使って計算する方が簡単で高機能なのです。 ExcelとAccessの両方使いこなせれば、鬼に金棒です。 参考までに、緑風舎ではデーター入力はあくまで、Excelを使っていますが、 「日本の古本屋」用のデーター加工や、「the古書」用の検索ファイル作りにはAccessを使い出力しています。 |
Excelで作成した目録を、Accessで読み込むとき、表示がうまくいかないことがあります。 例えば、日付、「H10/1/1」と「1998/1/1」等が列に混在している場合などです。 EXCELでは、セル単位での入力を解析して、自動的に変換してしまいますが、 Accessではデーターの書式が列毎に定義されるため、Excelのような好き勝手は出来ません。 これが原因でエラーなってしまう訳です。 こういう場合に、CSVファイルが役立ちます。 EXCELのデーターをCSV出力し、この出力したCSVファイルを、Aceessで読み込みます。 この読み込みの時、列の定義を「文字」として読み込むようにしてやれば、EXCELでの表示と同じように表示されます。 定価や、売価の場合も同じです。 「日本の古本屋」用の出力を行う場合には、 EXCELでの数値は、初期設定で、倍精度、小数点以下2桁になっていますから、この指定を変更しておくことも必要でしょう。 (a)全体を設定するには、 EXCELの「ツール」→「オプション」で、数値の初期定義を、「小数点以下桁数0」に設定しておきます。 (b)ファイル単位で設定するには、 「書式」→「スタイル」、で変更しておきます。 お奨めは、(b)の方です。(a)の方法だと、他のファイルの計算処理に影響が出てくるからです。 私自身は、こういう細かな設定は面倒なので、最終出力ファイルをエディターで読み込んで、表示確認して、置換処理しています。 云ってることと、やってることが違うゾ!!!!。(^^ゞ |
Accessがデーター処理の際、高機能であると云っても、自ずから限界があります。 最近多いのは、Accessだけを使ってWeb上のデーター処理まで行ってしまおうという方向ですが、 それは例えば、「日本の古本屋」などはまさにこれです。 これには疑問が多々あります。 Aceessの大半の処理は、VisualBasicをベースにしており、WEBとの連携などはSQL記述で行っています。 そして、Activ-X等をかませて、ASP出力することで、WEBとの連携を強めています。 私が疑問に思うのは、こういう方法は、まあ簡単で良いのですが、間に余りに多くのプロセスをかませ過ぎるために、処理が重いと云うことです。 Activ-Xは勿論MS独自のもので、標準仕様ではありませんし、SQL記述によるプロセス管理は、本来もっと単純で軽快なものであるべきハズなのに、 その趣旨からかなり逸脱したものになっているような気がします。MSファッショとでも云うべきかも知れません。 そう、他の方法を考えた上で選択しているのかと云う疑問があるわけです。 データー処理はデーター点数によって、主体を変えていく必要があることは云うまでもありません。 緑風舎では未だ、データー点数が 3000前後でウロウロしていますから、Excel主体で構わないのですが、 5000点を超える頃には、Accessに主体を移す必要が出てくるでしょう。 10000点を超えたら、HTML出力もCGIでプログラム処理するようにしなければならないと思っています。 データー規模に合わせて柔軟に対応を変えていく必要がある訳です。 |