クライアントフォームとは違ってForm.Errorイベントがないから、レコード(SharePointアイテム)の操作はダイアログフォームで実行したほうがよいのだろうな。
2011/04/30
access2010 Webデータベース その35 レコードの保存 -1-
Webフォーム(ダイアログ)でRunMenuCommand/メニューコマンドの実行 レコードの保存をするとき、他ユーザによりレコードの編集や削除がされているかもしれない。システムのアラートでもよいのだけどエラー制御とかちょっと検討。
2011/04/29
access2010 Webデータベース その34 SharePointグループ -2-
** Office365beta(プランP1) 環境 **
前回に引き続き、SharePointグループでアクセス権限を調整してみる。AccessServicesサイトの権限を親サイトの権限を継承せず独自に設定した内容であったが、もう少し細かくできるのでその感じを整理しておく。
前回に引き続き、SharePointグループでアクセス権限を調整してみる。AccessServicesサイトの権限を親サイトの権限を継承せず独自に設定した内容であったが、もう少し細かくできるのでその感じを整理しておく。
Webテーブル(SharePointリスト)の権限をAccessServicesサイトから継承しないで個別に設定してみる。AccessServicesサイト固有の機能ではなくSharePointリストの機能だ。但し、access2010を用いて設定できるものではないから、推奨されない使用方法なのかもしれない。
始まりはいつもここから。サイトの権限をに移動。
2011/04/28
access2010 Webデータベース その33 SharePointグループ -1-
** Office365beta(プランP1) 環境 **
その28の続き、Access Servicesサイトにサイト独自のSharePointグループを設定しアクセス許可レベルによって大まかに投稿、閲覧でユーザ権限を制御してみる。SharePointの設定の内容が殆ど。
その28の続き、Access Servicesサイトにサイト独自のSharePointグループを設定しアクセス許可レベルによって大まかに投稿、閲覧でユーザ権限を制御してみる。SharePointの設定の内容が殆ど。
始まりはここから。サイトの権限に移動。
2011/04/27
access2010 Webデータベース その32 RefreshRecord/レコードの更新
** Office365beta(プランP1) 環境 **
RefreshRecord/レコードの更新とRequery/再クエリマクロアクションの使いどころみたいな話
ブラウザ上のWebフォームが保持しているレコードセットは自動的に同期されることはないから必要に応じてRefreshRecordかRequeryしてやらないとならないということだろう。
RefreshRecordは、form.Refreshメソッドとほぼ同じなのだろうけど。
RefreshRecord/レコードの更新とRequery/再クエリマクロアクションの使いどころみたいな話
ブラウザ上のWebフォームが保持しているレコードセットは自動的に同期されることはないから必要に応じてRefreshRecordかRequeryしてやらないとならないということだろう。
RefreshRecordは、form.Refreshメソッドとほぼ同じなのだろうけど。
2011/04/23
Office2010 コンパイラ定数 ついつい確かめてしまうからメモ
Option Compare Database Option Explicit #If VBA7 Then Const V = "VBA7" #Else Const V = "VBA6" #End If #If Win64 Then Const W = "Win64" #ElseIf Win32 Then Const W = "Win32" #End If Sub test() Debug.Print V, W End Sub
Win7(32)+Office2010(32) VBA7 Win32
Win7(64)+Office2010(64) VBA7 Win64
Win7(64)+Office2010(32) VBA7 Win32
ラベル:
Office 2010,
VBA
2011/04/22
access2010 Webデータベース その31 Office365 Access Servicesサイトのタイムゾーン
Office365でAccess Servicesサイトのタイムゾーンがおかしい
自動的に作成される重要なテーブル |
いろいろ試してみたものの、常にUTC-7になる。多分その影響だと思っているんだけど、データマクロなのでNowを取得するとサイトのタイムゾーンはUTC+9であるのだがUTC-7が取得できる。時間日付は正確に取れないというのはだめだと思う。フォーラムに投げてはいるけどまだ明確な回答はない。
まぁベータですからよいのだけれども、早いとこ解決してほしいな。
access2010 Webデータベース その30 リボンを制御
** Office365beta(プランP1) 環境 **
Webデータベースとして運用はaccdbの形式だから、リボンのコントロールをしておきたい。ユーザは原則的にSharePointユーザで限定や特定できるから、きっちりかっちり固める必要がないのかもしれないが、不用意なことが起きないようにということぐらいの意味合いで用意しておこうと思う。
基本的には通常のリボン制御と何ら変わりはない。USysRibbonsテーブルもしくはRibbonXMLが格納されているテーブルがWebテーブルになるということだけ。
強いて言えば、SharePointグループ/ユーザ情報を参照してグループもしくはユーザごとに使用するリボンを切り替えることができるから、この特徴的な機能は使用していくことを検討しておく。
Webデータベースとして運用はaccdbの形式だから、リボンのコントロールをしておきたい。ユーザは原則的にSharePointユーザで限定や特定できるから、きっちりかっちり固める必要がないのかもしれないが、不用意なことが起きないようにということぐらいの意味合いで用意しておこうと思う。
基本的には通常のリボン制御と何ら変わりはない。USysRibbonsテーブルもしくはRibbonXMLが格納されているテーブルがWebテーブルになるということだけ。
強いて言えば、SharePointグループ/ユーザ情報を参照してグループもしくはユーザごとに使用するリボンを切り替えることができるから、この特徴的な機能は使用していくことを検討しておく。
【サンプル】
アクセス許可レベルがデザインのグループとそれ以外のグループでリボンを制御する。
単純な制御として、前者は既定のリボンを表示し使用できるようにする。後者はリボンを非表示にする。
access2010 Webデータベース その29 ヘッダというかツールバーというか
** Office365beta(プランP1) 環境 **
The Access Show - Making Beautiful Access Web Applications を見てて、
思っただけ。
The Access Show - Making Beautiful Access Web Applications を見てて、
アプリケーション名とかオプションのあるトップバー |
こうならないだろうかと |
2011/04/20
access2010 SharePointグループ/ユーザ名をチラ見
** Office365beta(プランP1) 環境 **
SharePointグループ/ユーザのIDとか名前をちら見する
SharePointリスト:UserInfoをリンクテーブルにするなりインポートすればよいのだけど。
SharePointグループ/ユーザのIDとか名前をちら見する
SharePointリスト:UserInfoをリンクテーブルにするなりインポートすればよいのだけど。
Sub LookUpSharePointGroupsUsers() Dim cn As Object, rs As Object, cnStr As String Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") cnStr = "Provider=Microsoft.ACE.OLEDB.12.0;WSS;" & _ "IMEX=1;" & _ "DATABASE=http://SharePointSiteURL;" & _ "LIST=UserInfo;" cn.Open cnStr rs.Open "Select ID,名前 From UserInfo " & _ "where [コンテンツ タイプ]='SharePointGroup' " & _ "and 削除済み=0;", cn ' rs.Open "Select ID,名前 From UserInfo " & _ ' "where [コンテンツ タイプ]='Person' " & _ ' "and 削除済み=0;", cn Debug.Print rs.GetString rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub
access2010 Webデータベース その28 Office365 Access Services使用環境作成メモ
** Office365beta(プランP1) 環境 **
Office365beta SharePoint Online上のAccess Servicesを試す環境準備メモ
Office365サインアップ済みでSharePoint Onlineが利用できる状態にあること。
開始直後だと、地域の設定→タイムゾーンがUTC+9になってないかも。
Office365beta SharePoint Online上のAccess Servicesを試す環境準備メモ
Office365サインアップ済みでSharePoint Onlineが利用できる状態にあること。
開始直後だと、地域の設定→タイムゾーンがUTC+9になってないかも。
ちょっと変えているけど、ほぼ既定の状態 |
既定で http://hogehoge.sharepoint.com/teamsite が作成されているが、いろいろお試しすることと訳が分からなくなったときワイプしてしまってもいいように、既定のチームサイトを使用せずWebデータベース用のサイト http://hogehoge.sharepoint.com/webdbsite を作成する。
実運用では、TeamSiteのサブサイトとしてAccess Servicesサイトを発行のこと。なぜなら匿名でアクセスできるはずだから。
access2010 Recent Sharepoint Sites
SharePointサイトURL履歴の格納先
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Recent Sharepoint Sites
Backstage |
ウィザード |
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Recent Sharepoint Sites
ラベル:
access 2010,
SharePoint 2010
2011/04/19
access2010 Webデータベース その27 Access Servicesサイト/Webテーブルの削除
** Office365beta(プランP1) 環境 **
サイトの削除ができないことについて。
5000レコード以上のWebテーブルがある場合、テーブル単体の削除含め、Access Servicesサイトの削除ができない。
リストビューの仕様によるものでしょうね。詳しくは、
大容量リストの設計とリスト パフォーマンスの最大化に書いてあったと思う。
サイトの削除ができないことについて。
5000レコード以上のWebテーブルがある場合、テーブル単体の削除含め、Access Servicesサイトの削除ができない。
リストビューの仕様によるものでしょうね。詳しくは、
大容量リストの設計とリスト パフォーマンスの最大化に書いてあったと思う。
ラベル:
access 2010,
Office 365,
Office365,
Webデータベース
2011/04/18
access2010 Webデータベース その26 もうひとつのフィールド数制限
** Office365beta(プランP1) 環境 **
Webテーブルには、もうひとつのフィールド数制限がある。
Webテーブルには、もうひとつのフィールド数制限がある。
メッセージ内容だとよくわからない |
accessテーブルに使用できるフィールドの最大値は255。これに加え、Webテーブルには別の制限がある。これはSharePoint Serverの仕様によるもの。レコードが多くなった場合、パフォーマンスに影響することらしいから、認識したうえで設計をしておいたほうがよいのだろう。
2011/04/17
access2010 SharePointリスト ADO接続
Sub ADOTest() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim cnStr As String cnStr = "Provider=Microsoft.ACE.OLEDB.12.0;WSS;" & _ "IMEX=2;" & _ "DATABASE=http://SharePointServerURL;" & _ "LIST=ListName or ListGUID;" & _ "VIEW=ViewGUID;" 'IMEX=1 ReadOnly cn.Open cnStr rs.Open "Select * From XXX where ID=1;", cn, adOpenKeyset, adLockOptimistic rs.Update rs(1).Name, 1 rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub
ラベル:
access 2010,
ADO,
SharePoint 2010,
VBA
access2010 SharePointリストをリンクする
Option Compare Database Option Explicit Sub SharePointList_Link() Dim tdf As TableDef Set tdf = CurrentDb.CreateTableDef("ListXX") tdf.Connect = "ACEWSS;HDR=NO;IMEX=2;" & _ "ACCDB=YES;" & _ "DATABASE=http://SharePointSiteURL;" & _ "LIST=ListName or ListGUID;" & _ "VIEW=ViewGUID;" & _ "RetrieveIds=Yes" 'IMEX=1 ReadOnly tdf.SourceTableName = "ListName" CurrentDb.TableDefs.Append tdf Application.RefreshDatabaseWindow End Sub
ラベル:
access 2010,
SharePoint 2010,
VBA
access2010 DoCmd.TransferSharePointList
SharePoint Server からリストをインポートもしくはリンクしてみる。
ついでに判らなかったことも整理。
** Office365beta(プランP1) 環境 **
GUIDってどこ見りゃいいのよって感じだったわけだが、、、
ついでに判らなかったことも整理。
** Office365beta(プランP1) 環境 **
GUIDってどこ見りゃいいのよって感じだったわけだが、、、
2011/04/16
access2010 Webデータベース その23 Office365 Access Services Settings -1-
思いのほかOffice365 SharePoint Onlineの使い勝手がよい。ベータ期間中なのだけどしばらくはこの環境であんなことこんなことやってみる。
取り急ぎ、クエリ 1 つあたりの最大列数とクエリ 1 つあたりの最大行数
** Office365beta(プランP1) 環境 **
基本的には、Access Services を設定および構成する (SharePoint Server 2010)と同様なのだろう。ただMSDNの情報とは値が違っている点もあるので警告が出ない場合もある。 取り急ぎ、クエリ 1 つあたりの最大列数とクエリ 1 つあたりの最大行数
access2010 Webデータベース その22 Webテーブルのコピー
Webテーブルをコピーして作成することは、クライアントテーブル同様可能なのだけど、
こんなことになる。
SharePoint独自のフィールドが4個ずつ増えていく寸法。無駄なフィールドが増えていくことになるのでやめておこう。未発行のWebデータベース上でコピーしてインポートしたほうがよさげ。
こんなことになる。
SharePoint独自のフィールドが4個ずつ増えていく寸法。無駄なフィールドが増えていくことになるのでやめておこう。未発行のWebデータベース上でコピーしてインポートしたほうがよさげ。
ラベル:
access 2010,
SharePoint 2010,
Webデータベース
2011/04/15
access2010 SP1だってさ KB2533794
Acc2010: You receive error "The database cannot be opened because the VBA project contained in it cannot be read" when running a compiled Microsoft Access MDE, ACCDE or ADE file in Office Access 2010 (64-bit only)
SP1ってことらしいが、、、
Microsoft Office Access 2010 SP1 uses a newer version of VBE7.DLL (7.00.1619)
だと。
access2010/64bit/SP1で発行したaccde/mde/ade、要はソースコードがないファイルは、現行のaccess2010/64bitでは開くことができないという。access2010/32bitではこの現象は発生しない。
そして、これといった対策はない。
展開先に合わせたバージョンで発行しなさいということ。
つらっと斜め読み。ん、リンク先消えた?
SP1ってことらしいが、、、
Microsoft Office Access 2010 SP1 uses a newer version of VBE7.DLL (7.00.1619)
だと。
access2010/64bit/SP1で発行したaccde/mde/ade、要はソースコードがないファイルは、現行のaccess2010/64bitでは開くことができないという。access2010/32bitではこの現象は発生しない。
そして、これといった対策はない。
展開先に合わせたバージョンで発行しなさいということ。
つらっと斜め読み。ん、リンク先消えた?
ラベル:
access 2010,
メモ
2011/04/14
2011/04/13
2011/04/12
access2010 Webデータベース その18 クエリの仕様
Access Services - Queries which are updateable on the client cannot be updated on the server.
Access Services上のクエリ仕様について。
この状態にあるとき、クライアント/ブラウザ上での挙動が違い、更新できるテーブルは異なる。
これは仕様であるという内容。
Access Services上のクエリ仕様について。
1対多のリレーションが2段以上になるとき |
これは仕様であるという内容。
ラベル:
access 2010,
SharePoint 2010,
Webデータベース
2011/04/11
access2010 Webデータベース その17 Webブラウザコントロール
主な操作は、Sharepoint2010 および SharePoint Designerなのだけど、Access servicesサイトフォーム上のWebブラウザコントロールで、サイト上の共有ドキュメントもしくはサイトページを表示させたかった。
こんな感じにしたかった |
ラベル:
access 2010,
SharePoint 2010,
Webデータベース
2011/04/09
access2010 Webデータベース その16 URL Query Parameter
URLのクエリパラメータについて
http://ServerURL/AppName/default.aspx#Name=FormName&Type=Form&Where==ID=1
という感じ。 Name/Type/Where/Path/Page/DataModeがあるところまで確認したのだけど、要は参照先/BrowseToの引数だということ。
http://ServerURL/AppName/default.aspx#Name=FormName&Type=Form&Where==ID=1
という感じ。 Name/Type/Where/Path/Page/DataModeがあるところまで確認したのだけど、要は参照先/BrowseToの引数だということ。
ラベル:
access 2010,
SharePoint 2010,
Webデータベース,
メモ
2011/04/08
access2010 Webデータベース その15 セルフレポーティング
access servicesサイトといえどもSharePoint2010サイトの一部なので、PowerPivot for Excelを使ってユーザ各自がデータ整理を行うことができる。Atom形式フィードとか小難しいことは専門の人にお任せして、サイトに発行されたWebテーブルのデータを参照しピボットテーブルを作成するまでの流れ。当然だが、ユーザがデータにアクセスする権限を持っていることは必要なはず。
サービスのURLは、
http://ServerName/SiteName/_vti_bin/listdata.svc
サービスのURLは、
http://ServerName/SiteName/_vti_bin/listdata.svc
2011/04/07
access2010 アプリケーションパーツ その9 パーツを作る、再び
アプリケーションパーツを自分用のツールとして作る手順、再び。
自分用といっても、生成されたaccdtを配布することは別にかまわないけど。コピーするだけでよいし。
自分用といっても、生成されたaccdtを配布することは別にかまわないけど。コピーするだけでよいし。
ラベル:
access 2010
2011/04/06
access2010 Webデータベース その14 ユーザ/グループ管理
SharePoint上のAccess Services Siteのユーザ/グループの管理を設定してみる。
サイトの権限とユーザ管理はSharePointに任せて、ApplicationメソッドのCurrentWebUserGroupsとCurrentWebUserを用いてユーザ情報を確認し、フォームなどの詳細な制御に使えばいい。
ユーザ情報を都度確認する必要はないだろうから、起動時に取得してTempVarsコレクションに格納してしまえばよいだろう。
サイトの権限とユーザ管理はSharePointに任せて、ApplicationメソッドのCurrentWebUserGroupsとCurrentWebUserを用いてユーザ情報を確認し、フォームなどの詳細な制御に使えばいい。
ユーザ情報を都度確認する必要はないだろうから、起動時に取得してTempVarsコレクションに格納してしまえばよいだろう。
Access Services サイトの権限 |
ラベル:
access 2010,
SharePoint 2010,
Webデータベース
2011/04/05
access2010 TempVars/LocalVars/ReturnVarsコレクション
TempVarsコレクションは、access2007でも使える。Access共有のコレクションだからマクロとVBAの間でデータ交換に使用することができる。TempVarオブジェクトはVariantなのだけどObjectは格納できない。要は数値か文字列であるということ。また、TempVarsオブジェクトを一旦作成すると、データベースを閉じるかTempVarオブジェクトを削除するまでデータは保持される。Publicな変数みたいなのだけど、実行時エラーが発生しても失われることがない変数という感じ。使いどころとしては、ユーザログイン情報など持ちまわりたい情報を格納するのに向いていると思う。以前のバージョンだとデータの一時保存用にフォーム上のテキストボックスを使っていたものの代わりになるでしょ。
TempVars!var_name
TempVars(index)
TempVars("var_name")
TempVars!var_name
TempVars(index)
TempVars("var_name")
2011/04/03
access2010 パッケージソリューションウィザード その14 レジストリ設定番外
accecc2010/64+Win7/64でパッケージソリューションウィザードを使って配布ファイルを作った時のメモ
としても、インストールを実行するとレジストリは、
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Access\Security\Trusted Locationsに書き込まれる。だが、access2010/64は、信頼できる場所の情報としてそれを参照しない。access2010/64が参照するのは、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access\Security\Trusted Locationsなので配布したaccessファイルは信頼できる場所にないということになる。
システムドライブを選択しすべてのユーザで使いたい |
HKLMを選択したい |
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Access\Security\Trusted Locationsに書き込まれる。だが、access2010/64は、信頼できる場所の情報としてそれを参照しない。access2010/64が参照するのは、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access\Security\Trusted Locationsなので配布したaccessファイルは信頼できる場所にないということになる。
ラベル:
access 2010,
パッケージソリューション,
メモ
2011/04/02
access2010 Webデータベース その13 クライアントで動作させないためには
特に制限をしない限り、以下のオプションを実行することでローカル上にダウンロードされクライアント上で実行されることになる。
既定のアクセス許可によって、各オブジェクトの更新や追加はできないようにすることはできる。しかし、ローカル上での実行/更新/追加はできるから望ましくないとすることはありうる。accdeでの運用はできないからソース丸出しだしになるし。
オンプレミスSharePoint Serverなら中をごにょごにょして、access servicesのサイトでオプションを非表示にするなどダウンロードできないようにしてしまうのも技術的に可能なのだろうかと。とはいえ、Office365とか流行のクラウドでの運用のほうが多いのかもしれない。となれば、ごにょごにょする手段は取らないだろうし、SharePointのアクセス許可管理で制御するのが本来なのだろう。
既定のアクセス許可によって、各オブジェクトの更新や追加はできないようにすることはできる。しかし、ローカル上での実行/更新/追加はできるから望ましくないとすることはありうる。accdeでの運用はできないからソース丸出しだしになるし。
オンプレミスSharePoint Serverなら中をごにょごにょして、access servicesのサイトでオプションを非表示にするなどダウンロードできないようにしてしまうのも技術的に可能なのだろうかと。とはいえ、Office365とか流行のクラウドでの運用のほうが多いのかもしれない。となれば、ごにょごにょする手段は取らないだろうし、SharePointのアクセス許可管理で制御するのが本来なのだろう。
ラベル:
access 2010,
SharePoint 2010,
Webデータベース
2011/04/01
登録:
投稿 (Atom)