2011/05/31

Office365 チームサイトの復旧

チームサイトの復旧の方法(P1)



Office365のデモをいまさらながら初めてみたのだけど、
おふぃすさんろくご ではなくて Office スリー シックスティ ファイブ だったと。

2011/05/30

access2010 Webデータベース その61 日付時間型フィールドに時間だけを

時間投入用のUIを考えたとき、
まぁこうするわけです。だけど、いろいろと難点があって、
クライアントの地域の設定によっても変わるだろうけどこんな感じだったり、
Webフォームには定型入力がないので、必要以上の情報を投入できてしまうのである。
The time data that you enter in an Access 2010 form control displays the date 1/1/1900 on an Access 2010 client
というのもあってどうしようかなと。

2011/05/29

access2010 Webデータベース その60 マクロエラーのクリア

** Office365beta(プランP1) 環境 **  
実行環境(ブラウザ/クライアント)によってちょっと違いがあることが確認できた。

ClearMacroError/マクロエラーのクリアマクロアクション実行後、MacroErrorオブジェクトを参照してみる。

access2010 Webデータベース その59 日付/時間型フィールドに日付だけを

** Office365beta(プランP1) 環境 **  
日付/時間型フィールドに日付だけ入力できるようにしてみる。

フィールドの入力規則を使ってみた。だけど、他のデータ型のフィールドと違って強調表示されない。日付/時間と判断できない入力については強調表示になる。
 正確に言うと、時分秒の情報がある場合レコードの保存ができないようにする。

2011/05/28

access2010 Webデータベース その58 コントロールの入力検査結果

** Office365beta(プランP1) 環境 ** 
フィールドの入力規則やフィールドに適さない入力がされたWebフォーム上のコントロールは自動で強調表示される。

こんな感じで。コントロールの境界線が強調される。
コントロールの境界線スタイル/BorderStyleプロパティをTransparent/透明にすると背景色で強調される。TopPadding/上スペース、BottomPadding/下スペース、LeftPadding/左スペース、RightPadding/右スペースプロパティを0に調整する。コントロールの境界線の代替には枠線を使用する。

access2010 KB2516494

Description of the Access 2010 hotfix package (access-x-none.msp): May 4, 2011

ADPのフォーム上でソートを繰り返しているとメモリ不足の旨エラーが出る件

SP1リリース予定になってるから静観しておこう。

2011/05/26

access2010 Webデータベース その57 条件付き書式

** Office365beta(プランP1) 環境 ** 
条件付き書式を使用することができない。でも実装してみる。

Single FormのOnCurrentと対象コントロールのOnAfterUpdateで背景色などを変更していけばよいのだから、実装自体が難しいということではない。ちょっと面倒だなと思うこととブラウザでの実行時に制限というか仕様による手数が多少増えるかも程度。

2011/05/25

access2010 Webデータベース その56 フォームイベントの発生順

フォーム/サブフォームのイベント発生順と同じ。

 このようなWebフォームの構成であった場合。

access2010 Webデータベース その55 コントロールの色を指定する

** Office365beta(プランP1) 環境 **
Webフォーム上に配置されたコントロールの背景色を実行時に変更するとき。


カラーコードで指定することができた。

access2010 Webデータベース その54 レコードの移動 -2-

** Office365beta(プランP1) 環境 **
確認ダイアログフォームを作ったので、レコードナビゲーション用のコントロールに実装してみる。

カレントレコードが新規レコードである場合でかつレコードの保存時にエラーが発生した場合のDirtyプロパティのことも考慮しなければならない。

2011/05/24

access2010 Webデータベース その53 確認用ダイアログフォーム -2-

** Office365beta(プランP1) 環境 **
ちょっと機能を追加して考え直した。

 メッセージ表示用のラベルコントロールを複数行表示できるようなサイズに変更
 そして、背景色を赤系に変更できるようにしてみた。

access2010 Webデータベース その52 確認用ダイアログフォーム -1-

** Office365beta(プランP1) 環境 **  
MsgBox関数の体でダイアログフォームを表示させてみる。
Web環境でメッセージボックスマクロアクションを使用するとこうなる。
IEだとこんな感じ
メッセージのみ指定可能
Webフォーム上ではMsgBox関数は使用できないから、一時変数/TempVarを用いてユーザ選択を取得するダイアログフォームを準備してみる。

2011/05/23

access2010 Webデータベース その51 レコードの移動 -1-

** Office365beta(プランP1) 環境 ** 
レコードのナビゲーション機能を実装してみる。

さしてややこしそうなところはない。
これで要件を満たすのであれば。

2011/05/22

access2010 Webデータベース その50 レコードの保存 -7-

ここから始まった、レコードの保存/SaveRecordのまとめ。


フォームのUIマクロで独自にValidationをしてもよいのだけど、フィールドの検証/レコードの検証/データマクロイベントなどで程よくできるのからどんな感じになるのかなと確認してみた。フィールドの検証/必須については、Validationの結果でコントロールがハイライトになるから結構良いかもしれない。

2011/05/21

access2010 KB2460015 Runtime SP1

Description of Access 2010 Runtime Service Pack 1と、いうのが公開されてはいるけど内容はまだなんだと思う。

Office 2010 SP1 on track for late Juneにもあるのだけど、
The Export to Excel spreadsheet command can now export the data from the current view.
というのはどんなことを指しているのだろう。

2011/05/20

access2010 Webデータベース その49 MSysASO

MSysASOとはなんぞやと覗いてみたら、Webデータベースの構造というか仕組み的なものが見えてきたような気がした。

Access Servicesサイトのすべてのサイトコンテンツをみると、
Access Services System Objectとなっている。触るな危険って感じ。

でも、いじってしまうんだけど。

2011/05/19

access2010 access2007 条件付き書式でフィールド検索っぽく

access2010 access2007 Docmd.FindRecord/FindNextでフィールドの検索を検討してみた。
フィールド検索をしていく途中、フォーカスをもつコントロールの条件付き書式を
という感じにすれば検索途中の状況が判る。
でも、該当するフィールドがどれだけ?っていう視覚的訴求がを満たさないことがあるから条件付き書式にちょいと工夫して使ってみることにする。マクロだけで。

2011/05/18

Office2010 SP1 on track for late June

Office 2010 SP1 on track for late June

Access2010を含むOffice2010 SP1の情報が発信された。
修正箇所はいろいろあるのだけど、Chrisの記事の後半にはKB2533794の事が記されている。KB2533794の内容は、VBE7.DLLが更新されるのだけど、Access2010SP1/64bitでコンパイルしたものはAccess2010/64bitで開くことはできませんよということ。Access2010/64bitでリコンパイルしないとならない。
Access2010/32bitとAccess2010SP1/32bitの間ではこの問題は発生しないらしい。
Win7SP1+ADOの件も相まってこの後どうなっていくのでしょう。
今までに公開されたOffice2010 CUの内容からAccess2010についてのみ拾ってみる。

access2010 access2007 添付フィールド/複数値フィールド付レコードコピー


Sub CopyRecord_Attachment_MultiValues()
    Dim rs1 As DAO.Recordset, rs1a As DAO.Recordset, rs1m As DAO.Recordset
    Dim rs2 As DAO.Recordset, rs2a As DAO.Recordset, rs2m As DAO.Recordset
    Dim dbs As DAO.Database
    
    Set dbs = CurrentDb
    
    Set rs1 = dbs.OpenRecordset( _
        "SELECT F01, F_attachment, F_multivalue FROM table01 WHERE ID = 1;")
    Set rs1a = rs1("F_attachment").Value
    Set rs1m = rs1("F_multivalue").Value
    
    Set rs2 = dbs.OpenRecordset( _
        "SELECT F01, F_attachment, F_multivalue FROM table02;")

    rs2.AddNew
        rs2.Fields("F01") = rs1.Fields("F01")
        
        Set rs2a = rs2("F_attachment").Value
        
        Do Until rs1a.EOF
            rs2a.AddNew
                rs2a.Fields("FileData") = rs1a.Fields("FileData")
                rs2a.Fields("FileName") = rs1a.Fields("FileName")
            rs2a.Update
            rs1a.MoveNext
        Loop
        
        Set rs2m = rs2("F_multivalue").Value
        
        Do Until rs1m.EOF
            rs2m.AddNew
                rs2m.Fields("Value") = rs1m.Fields("Value")
            rs2m.Update
            rs1m.MoveNext
        Loop
    rs2.Update

End Sub

access2010 Webデータベース その48 InStr関数/Trim関数

** Office365beta(プランP1) 環境 **
InStr関数/TRIM関数について気を付けることの確認。

基本的にはCompare引数はテキストモードに固定になるのだけど、バイナリモードを指定することが可能な場合はクライアント実行での戻り値/ブラウザ実行での戻り値は異なる。

バイナリモードを指定してみる。

2011/05/17

access2010 Webデータベース その47 全角空白を半角に

** Office365beta(プランP1) 環境 **
全角スペースを半角スペースに変換したかったのだけど、WebデータベースではReplace関数を使用できない。

Replace関数がない
こればかりは仕様だから仕方がない。

2011/05/15

access2010 Webデータベース その46 レコードの保存 -6-

** Office365beta(プランP1) 環境 **
前回なんとか状況がつかめたので、その対策。

  1. 必須フィールド
  2. Form.Dirtyが更新されてしまうこと
1についてはサンプルが適当ではなかったので別のフォームで確認してみる。

access2010 Webデータベース その45 レコードの保存 -5-

** Office365beta(プランP1) 環境 **
前回準備ができたので検証してみる。結論はちょっと問題あり。

フィールドの制約は以下の通り
  1. 一意
  2. フィールドの入力規則 Len([Category])<=25
  3. レコードの入力規則 [Category]<>"test99"
  4. 必須

access2010 Webデータベース その44 セッションタイムアウト

** Office365beta(プランP1) 環境 **
いつもスクリーンショットを撮り忘れていたがやっと取れたので。


access2010 Webデータベース その43 レコードの保存 -4-

** Office365beta(プランP1) 環境 **
前回から続いて、新規レコードの登録について。

レコード編集で使用するフォームを使って新規レコードの登録をできるようにしてみる。
マクロアクションの設定まで。

access2010 access2007 Docmd.FindRecord/FindNext

hatenaさんとこのフォームのすべてのフィールドを対象とする検索機能を読んで、これをやっておかないとそのうち忘れてしまいそうだからやってみた。

詳細セクションにはテキストボックスのみという仕様で、フォームヘッダに検索用テキストボックスとコマンドボタンを配置。検索テキストボックス更新したら先頭から検索。

2011/05/14

access2010 Webデータベース その42 オフライン時どうしようか

SharePoint Serverに接続できない時どうしようか。SharePointリストのリンクテーブルの良いところなんだけど、オフラインであっても編集追加削除などレコード(SharePointアイテム)の操作は可能になる。
追加だとPK(オートナンバー)はマイナスとなり、すべて再接続されるまで保留状態で記録される。

access2010 access2007 リンクテーブルの作成

リンクテーブル作成をコーディングするって話はどこにでも転がってる情報なのだが、リンク元が信頼できる場所にない場合にセキュリティに関する通知が出てしまうということについて。
信頼する場所にリンク先ファイルがあれば当然でないけど、必要以上に信頼する場所の追加とかセキュリティレベルをいじってしまうのはどうなんだろうと。

access2010 Webデータベース その41 複合ユニークキーを実装

** Office365beta(プランP1) 環境 **
Webテーブルでは複合キーを設定することができないから、データマクロ(Before Changeイベント)でキー値を作成し、キー列を一意とすることで複合ユニークキーとしてみる。

会議室名フィールドはルックアップ フィールド

access2010 ちょっと気づいていなかったこと

あるぇ~。こんなことになっていたとは。いまさらながら気づいた。
単純にこのようなフォームがあって、
Option Compare Database
Option Explicit

Private Sub コマンド0_Click()
    Me.コマンド0.Enabled = False
End Sub

Private Sub テキスト1_DblClick(Cancel As Integer)
    Me.テキスト1.Enabled = False
End Sub
このコードは実行時エラーがでると思っていたのだけど、

access2010 Webデータベース その40 ローカルデータベースとして保存

SharePoint Serverに発行したWebデータベースをローカルデータベースとして保存することができる。
このときWebテーブルのレコード(SharePointアイテム)は当然ローカルに保存されて、SharePointリスト独自のフィールドは削除される。だがすべての設定が保存されることではないようだ。
バックステージ→保存して発行→データベースに名前を付けて保存

2011/05/11

access2010 Webデータベース その39 レコードの保存 -3-

** Office365beta(プランP1) 環境 **
引き続き
フィールドの設定には、インデックスだけ。データマクロ変更前/Before Changeマクロイベントを使ってみる。

2011/05/10

access2010 Webデータベース その38 レコードの保存 -2-

** Office365beta(プランP1) 環境 **  
前回気になったところを再確認してみた。
レコードの保存マクロアクション実行時のエラー情報の件。同じWebフォームであっても、ブラウザとクライアント実行時に取得できる情報は異なる。

詳細フォームを開いてレコードの保存した場合どうなるのかということ。

2011/05/06

access2010 Webデータベース その37 Office365 サインオン

** Office365beta(プランP1) 環境 ** 
Webデータベースをクライアントで開いた時のMicrosoft Online Serviceのサインオンダイアログ
まだOffice365はBetaだから日本語になっていない。まぁそれはは良いとして、
Remember meチェックでIDをひとつ記憶してくれる。
Remember my passwordチェックで以降のサインオンは自動で行ってくれる。
となるので便利なわけです。

access2010 access2007 フォームがフォーカスを失っちゃう

MS Answersに投稿したのだけど、ADODB.RecordSetをフォームのレコードセットとした場合、フォームがアクティブにならない件。

access2010でSetFocusが使えない

こんな感じになる。フォームをクリックするなど操作しないとならなくなる。

2011/05/04

access2010 access2007 IRibbonUIオブジェクトの永続化って感じ

RibbonUIのことなら、ここを見るって。
Gunter Aveniusさんのとこか、きぬあささんのところ。

久しぶりにRibbonXmlを書いていたからいろいろ情報をあさっていたのだけど、なるほどなぁという記事があった。

IRibbonUIオブジェクトがNothingになったときの対処法

記事ではExcelについてなのだけど、当然Accessでもつかえるはず。
IRibbonUIオブジェクトをObjPtrを使って補ってやろうということは変わりはないのだが、オブジェクトのポインタをレジストリに書き込むということはAccessではしなくてもよいだろうな。TempVarsコレクションに格納しておけば、Removeメソッドなど実行しない限り消えないのだから。

access2010 ラベル自動作成

んー、知らなかったTips

ビデオ自体はアプリケーションパーツのことなのだけど、WebフォームやWebレポートのとき、コントロールの既定のプロパティが設定できなかったからちょっと面倒だなと思っていた。

2011/05/02

Win7 SP1のADO関係のこと

なんだろう、Win7 SP1 ADO のキーワードでやたらPVが多い。のーんびり構えていた私にとってはちょっとびっくり。いろいろ情報を手繰っていると思いのほか影響が大きいようだ。
難しいことはわかる人に頼って読んだリンクとかをメモ。
An ADO application does not run on down-level operating systems after you recompile it on a computer that is running Windows 7 SP 1 or Windows Server 2008 R2 SP 1 or that has KB983246 installed (MSKB)

KB2517589では何故下位互換がなくなると説明しているか(新日々此何有哉)

KB2517589:ADOを使用しているアプリケーションの再コンパイルで互換性に問題が発生する(C#.NETでいく?)

KB2517589の検証(おもにAccess方面)(Creative Aid Blog)

Windows7 SP1とVB6で不具合(Microsoft Answers) 

IE9とAccess2003(Access Club) IE9は関係なかったのだろう

今のところ、VBAの対応としては、実行時バインディングもしくは、Win7SP1以外の環境でコンパイルか。
"Type Mismatch" error message when you run a VBA macro in a 64-bit version of an Office 2010 application
このHotFixを当てていくのもなんだしな。と思ってたら、HotFixダウンロードページが5/2付で更新されている。XPとかのHotFixもダウンロードできてたのにな。 注意深く様子見だなぁ。

access2010 HotFix 2011/04

4月で1件。
Description of the Access 2010 hotfix package (Ace-x-none.msp): April 26, 2011

Access2010(64bit)でのALTER COLUMNとか失敗する件

2011/05/01

access2010 Webデータベース その36 RowSourceの絞り込み的なこと

リストボックスやコンボボックスの絞り込み的な話
Webフォーム上に配置したコントロールのControlSourceやRowSourceで式ビルダを見てみるとわかりやすいのだけど、フォームを参照できないということ。式ビルダで選択できないものはWebデータベースではサポートされないし、実行時にエラーもでる。非連結のコントロールだと値を渡せなかったりする。そんな時は、TempVars/LocalVarsを使用する。