2021年12月31日金曜日

accessからexcelへDoCmd.TransferSpreadsheetでexportできるのは新規ファイルのみだ。

 accessからexcelへDoCmd.TransferSpreadsheetでexportできるのは新規ファイルのみだ。既存ファイルへexportするとtoo many filedsみたいな訳がわからないメッセージでDoCmd.TransferSpreadsheetがエラーになる。(と思う)

 どうしても既存のEXCELに落としたい場合、adoとかdaoとかで1レコードずつ、EXCELの既存シートに上書きするという方法(荒技)もあるようだ。

 でも、どうしても既存ファイルと同じ名前のファイルにエクスポートしたければ、それを削除し、エクスポートするという荒技もある。

buf = "¥¥dir1¥dir2"
file1 = buf & "filename.xlsx")
if dir(file1) <> "" then kill file1
DoCmd.TransferSpreadsheetでfile1へexport  

2021年12月21日火曜日

accessなどのデータベースを使い、ある条件のデータ抽出をするシステムを構築する場合、データのクレンジングがとても大切だ。

 データクレンジング(data cleansing)、或いはデータクリーニング(data cleaning)、またデータスクラビング(data scrubbing) は、データベースを構築する時に、まず、最初に考えておかねばならない。

 その中でもユニークデータの唯一性を担保するのは、とても大切だ。人から与えられたデータがマスタ系でユニークデータであるべきデータであるとするならば、使う前に必ず、唯一性をチェックしておこう。それを怠ると、後で、必ず、大きな「しっぺ返し」を被る。転ばぬ先の杖だ。ユニークなデータの唯一性は必ず、担保しておくこと。肝に銘じよう。

 ここで、一息のコーナー。最近、村上 春樹さんの小説1Q84を再読。ドフトエフスキーの「罪と罰」の登場人物であるラスコーリニコフとサーシャの関係性を使った表現が出てきた。 初めて1Q84を読んだ時には、罪と罰を読んでいなかったので、その文章は染みて来なかった。ところが、先日、たまたま、罪と罰を読むことができていたので、なるほどと思った。より、共感できるような気がした。

2021年12月16日木曜日

accessのクエリでこれを覚えていると善きことがある。

 クエリでIIfを使う場合、複数条件になる時には、IIf(exp1,IIf(exp2,trupart2,falsepart2),falsepart1)とIIfの入れ子にするのが楽だ。IIf(eval(exp1 AND exp2),trupart,falsepart)でもいいようだが・・・

 DateDiff関数とDateAdd関数

 開始日から終了日までの日数を求めるには、DateDiff("d",[開始日],[終了日]) 

 DateDiffの"d"を”WW"にすれば、週数がわかる。

 現在から1ケ月後の日付を得るには、DateAdd("m",1,Dtae())

access vbaでexcelを扱う場合にはCreateObjectでExcel.applicationを立上げておくのがいいようだ。

そうしないと、作成したexcelブックが宙に浮いたままになるようだ。つまり、CreateObjectして、ファイルをオープンし、セーブ、クローズ、そして、EXCELアプリを.quitするといったケアをしないと、駄目なようだ。

 

2021年12月12日日曜日

日本郵便のはがきデザインキットの突然の梯子外しで、マイクロソフトのWord差し込み印刷に回帰するまでの物語

 ここ数年、macで日本郵政製のはがきデザインキットなるアプリを使用していた。このアプリは、adobeのairのテクノロジーをベースに作られていたので、adobeがこのテクノロジーをよその会社へ売り飛ばしたか、本当の理由は定かではないが、日本郵政はairベースのはがきデザインキットを提供しなくなってしまった。そして、突然の梯子外しにワタシは途方に暮れた訳だ。正確に言えば、はがきデザインキットはwebベースで出しているのだが、これまでのものとは全く違う、使えない代物。

 幸い、数年前にWindows10のPCを購入していたので、Wordの差し込みハガキ印刷に戻ることにした。

 住所録は、はがきデザインキットの住所録をコピーすれば良いのが、悪いときには悪いことが更に降りかかるのが人生の鉄則だ。その時、ワタシのmacはOSのバージョンアップを迫られ、新しいOSにしたばかりで、年賀はがき作成キットのアプリは起動できなくなっていたのだった。

 でも、人生は悪い事ばかりではないようだ。はがきデザインキット住所録保存場所でググると、はがきデザインキットの住所録は、youbin10.dbというdbに作成されており、そこからデータを抽出できるのだという。世の中には凄い人達がいる。ありがたい。そして、めでたく、住所録を復元し、Wordで差し込みはがき印刷ができるようになった。やれやれ。

2021年12月3日金曜日

access(sql)で特定のフィールド(列)で重複した値を排除し、ユニークな値だけの集まりを作りたい場合、GROUP化すればよい。

 access(sql)で特定のフィールドで重複した値を排除し、ユニークな値だけにしたい場合、GROUP化すればよい。こういうのが2つ、3つある時には、UNION ALLでマージすれば、いい。GROUP化、のちUNION ALLでマージ。これは便利だ。