Access 2013 / 2010 の マクロエディタ / Logic designer 上で値を設定しようとするとき、文字数の制限を受けることがある。
MSアクセスマクロWhere条件式に256文字制限UI のバリデーションで先に進めないのですが、文字数制限を突破することが可能な場合はある。
MSアクセスマクロWhere条件式に256文字制限UI のバリデーションで先に進めないのですが、文字数制限を突破することが可能な場合はある。
EmptyCell オブジェクト (Access)
文字を入力するとラベルコントロールに変化するオブジェクトなのだけど、レイアウトを使用するコントロールの配置にはそれなりの役割を果たす。
| 空白セル同士、もしくは、空白セルとコントロールは結合できる。 |
| 特定のコントロールを伸長させる。 |
このようなコントロール配置が行われると、あまりよろしくないことが起きる。
| ウィンドウサイズが変わらなければよいけど |
サイズが変化することで、コントロールが重なってしまう。
レイアウトに関する機能に差があるので、Access 2007については割愛。
| デフォルトは"左上"です。 |
各々 3通りあるので組み合わせで 9通り。それだけ。
レイアウトに配置されてないコントロールで使う場合はシンプルな使い方。例えば、フォームサイズの変更に伴いコントロールの配置/サイズが自動で調整される。
TempVars オブジェクト (Access)
TempVar オブジェクト (Access)
256個じゃね?そこまで使うケースのほうがめずらしいと思うけど。
Only 256 TempVars can be created. Be sure to remove any TempVars that are not needed.
一時変数は 256 個までしか作成できません。不要な一時変数を削除してください
ま、いいか。
"OnError/エラー時" マクロ アクション
通常、先頭に書くことが多いのだろうけど途中に記述するのもかまわわない。マクロアクションが実行された後についてエラー時にどうなるかを宣言するということ。
使い方はいたって簡単。ちょっと置いといて的な値があるとき使う。
値は "式引数" で設定するから、文字列や日付時間である場合それなりの手続きで設定すればよい。
マクロ の作成/更新中にほかのマクロの参照ができる。
検索にも対応してるので、ささっと同じ処理や似た処理のマクロを記述できるという仕掛け。
サブマクロがUI上では保存されているのだけど、実行可能な状態になっていないことがある。おそらくパーサが原因でしょう。ただし、影響を受けることはわずかだ。
たとえば、この状態で保存されているマクロなのだが、サブマクロとして認識できないものがある。確認してみる。
マクロ名をそのマクロ自身が知るためにはどうしたらよいのでしょうか? そんなこと考えたことはないですか?私はありません。
でも、マクロ名ゲットだぜぇっ!
夢が広がるよね。そう思える想像力豊かな人もしくは多少のことは気にならない心穏やかな人以外は、この先読む資格がありません。ちなみに私は大雑把な性格です。
大してややこしいことではないのだけど。たとえば、
PARAMETERS Param01 Long; SELECT ID, Field1, Field2 FROM Table1 WHERE ID = [Param01];こんな クエリ があったとして、この クエリ を開く マクロアクション はこうなる。
パラメータ 句が解析されて入力できるようになる。VBA だと DoCmd.SetParameter ということ。ただ、少し注意しておくことがある。
マクロアクション:[値の代入]がない!なんて言わないの。
Unsafe Actionのひとつなので表示されていないだけ。
| "すべてのアクションを表示"を押下すると表示される。 |
実行したい内容によっては、マクロアクション:[プロパティの設定]を使ったほうがよいし、存在を知らないというのはよくない。
Access 2010 からマクロ ビルダーがガラッと変わっていて戸惑うことが多いのでしょう。まぁそれ以前に グリッドで表現されてた以前のバージョンよりは使いやすいのでいいんじゃないかなと。
ビデオ: マクロ ビルダーの概要
ビデオにない操作方法についてのメモ
集計フィールドをどうやって作ればよいのだろうと右往左往した結果。新規ファイルを作成して、テーブルといくつかのレコードを追加するメモ。
忘れてしまうほど使うことがない。
テーブルに収めるロジックなのだから、基本的に変更されることがないロジックであるべきなのだろう。たとえば、[数量] * [単価] で [金額] 的なことだけど、該当のレコードが頻繁に更新されるものでなければよいということ。といっても、レコード数とマシンスペック次第だから選択は "お好みで"。きっと、ほとんど参照のみのテーブルに使うと効果はでやすいはず。
MSのサンプルでも使われているけれども、名簿要素なテーブルに使うイメージがとても強い。[姓] & " " & [名] とか。MSのサンプルだといろんなフィールドを結合して検索用にしてあるよね。この場合、フィールドを演算する必要がないからその分クエリのパフォーマンスは高くなるという手筈。さて、もう少し具体的に。
クエリで計算すれば以前のバージョンであっても使えるのだから使わないというのも良いのだけど、どこで使うかに大きな誤りがなければそれなりの成果があるわけで。要は非正規化。
集計フィールドを作る手順は難しいことはない。選ぶだけ。
Description of the Access 2010 hotfix package (Access-x-none.msp): June 26, 2012
When you view a database in Print Preview in Access 2010, field names instead of total calculations are displayed in the Total row.
んー、なんでしょうね。現象が思いつかない。困ってることないし、いいかな。
access2007以降、SharePointリストを扱えるようになっていて、その機能のひとつとして複数選択可能なルックアップが存在しています。なんでこんな機能が追加されたのかっていうことにはそんな背景があるからなのでしょう。
複数値を持つフィールドの概要
クエリで扱う方法についても記されています。
では、フォーム上でのやりくりの件。
Description of the Access Connectivity Engine 2010 hotfix package (Ace-x-none.msp): April 24, 2012
・csvをaccdbにインポートする場合、同じものをmdbにインポートするより遅い。
どれだけ違うのでしょう、遅くて困るほどならhotfix試してみようか
・VBAからUPDATEステートメントを使ってテーブルを更新を試みたときAccessがクラッシュ
RunSQLとかですかね?まぁ出会ったことない。
・4GB超のtextファイルをPowerPivot for Excel 2010にインポートしたとき、成功したかに見せかけて成功していない。そしてWarningがでると。えっ、4GB?