2010で2007用ファイルを作るときに気が付いたこと。
CurrentDB.Versionの値が12.0から14.0に変化する契機を覚えておく。
新規作成後、CurrentDB.Versionは12.0。
12.0を維持できていれば2007で起動したときアラートは出ない。 だから、2007用ファイルを作るときは、新規ファイルにインポートする形をとる必要がある。当然にインポートするオブジェクトは、2010新機能を用いていないものでなければならない。
で、どのタイミングで12.0から14.0になるのか。
2010新機能がもつオブジェクトを保存したとき。たとえばフォームにWebブラウザコントロールを配置した場合、配置した時点ではまだ12.0。フォームを保存したとき14.0になる。テーブルでのデータマクロ集計フィールドも同様と思われる。実際そこまで確かめてないだけなんだが、おそらく。
一部の例外はマクロ。2010でマクロを作った場合は基本的に14.0になる。但し、マクロの新規保存では12.0のまま。マクロを修正した時点で14.0に遷移。上書き保存しなくても遷移。なので、インポートして2007用ファイルを作るとき、大丈夫だと思ってマクロを修正すると新規インポートからやり直しということ。また、ネストしたIFブロックとか2007が理解できないマクロは書かない。
まとめ
▼
2010/08/26
2010/08/25
access2010 パッケージソリューションウィザード その7
パッケージソリューションを用いたアプリケーション配布ファイルの作成メモ
製品版もしくはRuntime環境への配布する場合にパッケージソリューションを使用すると便利。
ただし、2010版についてはセキュリティ設定に難があるので少しだけ手を入れる必要がある。
製品版で設定可能な信頼できる場所とするレジストリ登録が間違っているので、本来のレジストリ情報をウィザードで渡してあげる。
Orcaでregistry tableを修正してもよい
Package Solution Wizard まとめはこちら
access2010 2007との互換性 どうなるか その3
2007/2010各バージョンからaccdeを作成したとき、各々での動作。
2007製造/2010(32)動作のパターンを除き、動作しません。
オブジェクトが全くないaccdeでも同様。
2010から追加されたコントロールや機能を搭載した場合にどうなるのか。
サンプルには、Webブラウザーコントロールを使用。
2010から追加されたものが配置や設定された時点で、CurrentDB.Versionが14.0に変わります。削除しても12.0には戻りません。
データマクロ/集計フィールドをテーブルに追加した場合、2007ではReadOnlyとか参照できなくなります。
2010/08/23
access2010 動画でテスト
memo
Camstudio 1280-720 ffdshow H.264 8000kbpsでキャプチャ後、MediaEncoderx64でmp4にコンテナ入れ替え
access2010 Who am I?
Public Function WhoamI() As String WhoamI = Application.CodeContextObject.Name End Function
2010/08/22
access2010 SQL Azure
ちょっと面白そうだ。考えておこう。
SQL Azure
Windows Azure Platform 従量課金プラン
Access 2010 and SQL Azure
Microsoft Azure and Cloud Computing...What it Means to Me and Information Workers
と、言ってる気がする。
SharePointのホスティングでaccess serviceを使ったWebデータベースでもっさり使うよりはましなような気がする。というか、access serviceのホスティングって日本でどっかやってくれないなのかな。
http://accesshosting.com/というのがあるけれども、1GB/5ユーザで$49なんよね。
SQL Azure
Windows Azure Platform 従量課金プラン
Access 2010 and SQL Azure
Microsoft Azure and Cloud Computing...What it Means to Me and Information Workers
- Compute Instance Pricing is High
- SQL Azure is Very Reasonable
と、言ってる気がする。
SharePointのホスティングでaccess serviceを使ったWebデータベースでもっさり使うよりはましなような気がする。というか、access serviceのホスティングって日本でどっかやってくれないなのかな。
http://accesshosting.com/というのがあるけれども、1GB/5ユーザで$49なんよね。
2010/08/20
access2010 パッケージソリューションウィザード その6
- インストール先のサブフォルダ指定の件、
- レジストリの件
でもね、でもね、どう見ても2007のものをそのまま搭載しちゃったっていうのが原因じゃ、ゲフンゲフン
なんかのついでに 12.0 を 14.0 に直しておいてくれればいいのになと。
Package Solution Wizard まとめはこちら
access2010 マクロによるショートカット作成に関する不具合 その2
じゃぁどうするかっていうと、こうする。
コメントを挿入するとうまくいく。また。エラー対処しているとよい感じ。要はコマンド単一だと発生している感じ。 なぜだか、サブマクロの順番を変えるのも有効。
出会ったこのパターンが特異だったんだろうかな。コメント入れたら動くっつーのも早々に見つかったんだけれども、偶然がそんなに重ならないでしょと思えば、他にも発生するパターンってあるような気がする。
本現象については、開発向けに案件が移動したということなので、修正の有無についてはいずれ判明するんではないかと。思い起こせば、不具合と認識しているけど直さないままっていうのはあるかもね。
コメントを挿入するとうまくいく。また。エラー対処しているとよい感じ。要はコマンド単一だと発生している感じ。 なぜだか、サブマクロの順番を変えるのも有効。
出会ったこのパターンが特異だったんだろうかな。コメント入れたら動くっつーのも早々に見つかったんだけれども、偶然がそんなに重ならないでしょと思えば、他にも発生するパターンってあるような気がする。
本現象については、開発向けに案件が移動したということなので、修正の有無についてはいずれ判明するんではないかと。思い起こせば、不具合と認識しているけど直さないままっていうのはあるかもね。
access2010 マクロによるショートカット作成に関する不具合 その1
Microsoft Answers に投稿していたのだけれど、MSのサポートを受けることができ、ひとまずの結果が出たのでメモ。現象の要約としては、マクロで作成したショートカットに割り当てたコマンドが意図しないコマンドとして実行されるということ。
このショートカットの構成は偶然な組み合わせなのだが、すこぶる調子悪い。
サブマクロ名:SortRemoveAllを押下すると、該当フォームがデザインビューになる
サブマクロ名:Filteringを押下すると、ClassModuleが新規作成される
サブマクロ名:DesendingOrderを押下後降順並び替えは実行されるが、チェックマークがつかない。
まぁ3番目はよしとしても、残り二つはRuntime環境でも発生しているので、もしかしてクリティカル?
Runtimeだとデザインビューにはならないが、壊れかけのレイアウトビューになり、ClassModuleが作成されたことがアプリケーション終了時に確認できる。
このショートカットの構成は偶然な組み合わせなのだが、すこぶる調子悪い。
サブマクロ名:SortRemoveAllを押下すると、該当フォームがデザインビューになる
サブマクロ名:Filteringを押下すると、ClassModuleが新規作成される
サブマクロ名:DesendingOrderを押下後降順並び替えは実行されるが、チェックマークがつかない。
まぁ3番目はよしとしても、残り二つはRuntime環境でも発生しているので、もしかしてクリティカル?
Runtimeだとデザインビューにはならないが、壊れかけのレイアウトビューになり、ClassModuleが作成されたことがアプリケーション終了時に確認できる。
2010/08/05
access2010 データマクロの存在確認
コードで存在を確認するすべがないかな?と思ったらあった。
Sub FuncDataMacro() Dim cn As ADODB.Connection, rs As New ADODB.Recordset Set cn = CurrentProject.Connection rs.CursorLocation = adUseClient rs.Open "select LvExtra from MSysObjects where Name='テーブル1'", cn Debug.Print rs(0) rs.Close: Set rs = Nothing Set cn = Nothing End Subここでデータマクロ編集するつもりはないけど。