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でマージ。これは便利だ。

2021年11月24日水曜日

スマホでnttのdポイントクラブ(d point club)をニックネームで登録したら、IDがほぼ凍結され干されてしまった。解決策を電話で聞いたら、docomoケータイじゃなくても良いので、「docomoショップへ出掛けてください」と。果して、どうなった?

 スマホでnttのdポイントクラブ(d point club)をニックネームで登録したら、IDが半凍結された。解決策を電話で聞く。結論だけ言えば、それは、docomoショップで本名で変更するしてもらうこと。そして、IDは凍結解除された。めでたし、めでたし。

 解決までの道程をもっと、詳しく語ると、こんな感じだ。ワタシはdocomoのケータイまたはスマホのユーザではない。実はocnモバイルワンのユーザだ。にもかかわらず、dポイントクラブのことはdocomoショップで対応してくれるというので、混んでいないと思われる、平日の昼間を狙って、近所のdocomoショップへ出掛けた訳だ。

 docomoショップに到着すると、今時、そこは予約をしてからいく場所だったことがわかる。やむを得ず、入り口の機械で「受付」をして、空きを待つ。コロナ以後は、どこでも、銀行でも予約は必須のようだ。やれやれ。待つしかない。

 しばらくして、フロア係のお姉さん達が2人ががかりで、ワタシの抱えている問題を解決すべく、色々と尋ねてくれた。まさに、解決に向けて立ち向かってくれた。

 「ここの機械は、docomoのケータイまたはスマホユーザのdポイントは、名前変更ができますが、それ以外の方の分が変更できるかどうか、わかりません。が、やってみましょう」と言ってくれたのだった。

 果たして、ワタシのdポイントクラブのIDとパスワードを入れて、ログインし、本名へ変更できた。すんなりと。そして、本人確認の免許証をアップロードしてくれた。そして、IDの半凍結が解除できた。良かった。docomoユーザじゃなくても、親切、丁寧に、対応して戴いた。「本当に、お世話になりました。」とお姉さん達へ感謝の挨拶をして、帰途につく。良かったなぁ