アクセスレポートの存在チェック

Delphiから、OLEでACCESSのレポートを印刷するときの話。

PCごとに、印刷出来るレポートを制御したく、
単純に、指定のレポート名があるか、ないかを調べたかった。

Ar.SysCmd(acSysCmdGetObjectState, acReport, ARTitle);

まず、acSysCmdGetObjectStateを使う方法。

この場合、
「ファイルが開いていない、存在しない場合に、0を返す」ので、
レポートがあるか、ないか、を調べる目的としては、使えない。

印刷せずに、レポートがあるか、ないかが、知りたい!!

 

ま、2時間ほど、探した結果、見つけた答え。

'AllReports コレクションから検索
For Each obj In dbs.AllReports
  Write #dsn, strPath, strFile, "レポート", obj.Name
Next obj

http://d.hatena.ne.jp/ogohnohito/20140116/p1 より

全レポート情報が引き出せるみたいなので、

これを基に、Delphiのコードを作成

var
? obj: AccessXP.AccessObject;

for i := 0 to AR.CurrentProject.AllReports.Count - 1 do begin
? obj := AR.CurrentProject.AllReports[i];
? if (obj.name = ARTitle) then?
? ? ;
end;

「とりあえず、印刷プレビューしてみて、エラーだったら・・・」
みたいなアホなコードを書かずに、良かった♪

-

Windows10にアップグレード +Bootcamp

せっかくなので、Macbook Pro 15″ Retina 2012にも、
Windows10を入れてみた。

ドライバーのこととか、何も考えず、アプグレしたところ、

キーボード・タッチパッドが認識せずOrz

 

で、
外部キーボボード・マウスを繋いだら、普通に使ええたので、
それを使って、ログイン > 各種設定。

この問題は、BootCampのアプグレでしか解決できなさそうで、

最新版は、BootCamp6だけど、iTunesからしかアプグレできないようで、
iTunesを最新版にするも、BootCampは表示されず・・・

 

ダウンロード版の最終版を探してみたところ、
5.1.5621が最終みたいで、
それをダウンロードし、インストールようとしたところ、

既に最新版だと弾かれるOrz

 

イミフ

とりあえず、キーボードとタッチパッドが使えたらいいので、
bootcampの圧縮ファイル内を見てみたら、それらしきファイルがあるので、
それぞれ、インストールしてみたところ、

無事、成功!!

 

CommandとControlを入れ替えアプリが動いておらず、
焦ったけど、それも問題なく、動いている様子。

 

-