[Reporting Services] レポート マネージャーに管理者としてアクセスする方法

Windows Vista や Windows Server 2008 など、UAC の構成がある環境に Reporting Services をインストールした場合、Administrators の権限のあるユーザーでレポート マネージャーにアクセスしても、権限がないとエラーが表示されることがあります。原因はもちろん UAC によるものです。

管理者権限でレポート マネージャーにアクセスするひとつの方法としては、Internet Explorer を管理者権限で実行することです。Internet Explorer の実行ファイルを右クリックして「管理者として実行」を選択すればレポート マネージャーに管理者としてアクセスできます。(管理者権限のままほかにサイトに移動するのは危険なので注意してください)

しかし、毎回管理者権限で実行するのが面倒であれば以下の設定をすることにより、管理者権限で Internet Explorer を実行しなくてもレポート マネージャーに管理者としてアクセスできます。

  1. Internet Explorer を管理者権限で実行する。
  2. レポート マネージャーのサイトにアクセスする。Reporting Services インストール環境で操作する場合、localhost ではなく、サーバー名、または IP アドレスを指定してください。
  3. 「ツール」「インターネットオプション」「セキュリティ」「信頼済みサイト」を選択して、レポート マネージャーのサイトを登録してください。(localhost だとすでにイントラネットに含まれているので追加できません)
  4. レポート マネージャーのホームから「フォルダーの設定」「セキュリティ」「新しいロールの割り当て」を選択し、アクセスするユーザー名を「<domain>/<user>」の形式で入力し、「コンテンツ マネージャー」のロールを与えて追加します。
  5. レポート マネージャーから画面右上の「サイトの設定」を選択し、「セキュリティ」「新しいロールの割り当て」を選択、ユーザーに「<domain>/<user>」を入力して「システム管理者」のロールを割り当てて追加します。
  6. Internet Explorer を閉じ、今度は管理者権限で起動せずにアクセスし、管理者としてレポート マネージャーにアクセスできるか確認してください。(場合によってはページにアクセスする際認証を求められることがあります)
]]>

エクスプローラーからの Office ファイル新規作成テンプレートを変更する

※ここでは Excel 中心の説明になっています。

Office をインストールするとエクスプローラーの右クリックメニューの新規作成に各 Office の新規ファイルが追加されます。

image

これを選択するとテキストファイルなどと同じように新規ファイルが作成されますが、Excel や PowerPoint などについては決められた形式で作成されます。例えば Excel ファイルであればシートは必ず3つ存在し、フォントがMS Pゴシックになっている、などがあります。これは、Excel のオプションにある新規作成の初期状態とは別々に管理されています。

新規作成の初期テンプレートは実は Excel の設定ではなく、テンプレートファイルをコピーして作成されるようになっています。テンプレートファイルは「C:WindowsShellNew」に存在しているので、これらのファイルを書きかえることによって新規作成の初期状態も変更することができます。

image

Windows Vista や Windows7, 8 の場合、UAC の権限によってこのフォルダは読み取り専用になっているので、ファイルを変更する場合は管理者権限で読み取り権限を解除するか、一度別なフォルダでテンプレートを作成してから管理者権限でファイルを上書きする必要があります。

ちなみに XXX12.xlsx と書いてあるファイルは Office 2007 の形式のファイルです(2007, 2010 用)。2003 以前のファイル (97-2003 形式) は XXX9.xls になります。

]]>

[XNA] 別々のスレッドで ContentManager を使用して同じコンテンツを同時に読み込もうとすると例外が発生する

ユーザーの操作レスポンスを改善するためにバックグラウンドでコンテンツを読み込む際、複数のスレッドから同時にコンテンツを読み込もうとすると例外が発生します。

例えば以下のようにプログラムを組むと現象を確認できます。

worker = new BackgroundWorker();
worker.DoWork += (sender, args) =>
  {
    texture = Content.Load("Bitmap");
  };
worker.RunWorkerAsync();
texture = Content.Load("Bitmap");

 

例外が発生するか所は実行タイミングによってメインスレッドであるかバックグラウンドであるかはまちまちです。場合によっては例外が発生しない場合もあります。そのため、原因がわかりにくいエラーになりやすいので注意しましょう。

ちなみに Windows Phone 環境では例外のメッセージが「ArgumentException(Value does not fall within the expected range.」となっており解釈しにくいメッセージになっていますが、Windows 環境では「同一のキーを含む項目が既に追加されています。」と表示されます。コンテンツが完全に読み込まれるまではディクショナリに追加されないので、同時に2つ追加しようとして発生するエラーのようですね。

]]>

SQL Server Management Studio の編集でテキストフィールドに改行をいれる方法

SQL Server Management Studio の行編集で使用されるグリッド入力ではテキストに改行を入れることはできません。そのため、下のように SQL でこつこつと更新をかける必要があります。

update [Table1]
set [テキスト] = N'テキストに
改行をいれ
ます'
where [キー] = 1;
]]>

SugarSync を利用してみたい方、募集しています

現在オンラインストレージである SugarSync を利用しているのですが、いくつかある無料オンラインストレージの中では比較的大容量なので私も利用しています。SugarSync では他のユーザーを招待するとお互いに無料ストレージ枠が増加するという他のオンラインストレージにはないサービスを行っています。(「お互いに増加」というのがポイント)

ちょっと私のところで少しストレージの容量を増やしたいというのがありまして、もしまだアカウントを取られていない方で使ってみたいという方がいれば、以下のリンクから登録してください。通常 5.0GB から始められますが、以下のリンクから登録していただければ 5.5GB から始められます。(もちろん無料です。もっと大きなストレージを使いたい方は有料版もあります。詳しくは本家サイトを参照してください。)

https://www.sugarsync.com/referral?rf=3cjgtt2tb3wf&utm_source=txemail&utm_medium=email&utm_campaign=referral

]]>

Word, Excel, PowerPoint の各ビューワー

2010 形式バージョンのファイルにも対応しているビューワーが公開されていました。

Excel と PowerPoint については 2010 っぽいインターフェースなのですが、Word Viewer だけはなぜか 2003 のビューワーがインストールされました。(Windows XP にインストールしたせい?)

ただ、Word/Excel/PowerPoint 用 Microsoft Office 互換機能パック をインストール知れば Word Viewer 2003 でも 2007 形式のファイルは見れるようです。

]]>

MS Project でガント チャートを作業者で絞り込んで表示する

メモ書きです。

【環境】

  • MS Project 2007

【手順】

  1. ガントチャートを作成
  2. 各タスクのリソース名から作業者を割り当てる
  3. ツールバーより、フィルタコンボボックスをクリックして展開する
  4. 「リソースを使用しているタスク…」を選択
  5. ダイアログ表示後作業者を選択
]]>

OLEDB を使用して Excel ファイル(2007 形式)を読み込む際の接続文字列

メモです。必要そうな項目のみ列挙しています。

接続文字列の例

Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:Test.xlsx; Extended Properties="Excel 12.0; HDR=YES; IMEX=1;”

接続文字列パラメータ

Provider 使用する OLEDB のバージョン。2007 形式の Excel ファイル(.xlsx)を読み込みたい場合は「Microsoft.ACE.OLEDB.12.0」を指定。2003 以前の形式のみ(.xls)で構わないのであれば「Microsoft.Jet.OLEDB.4.0」も可。
Data Source 読み込む Excel ファイル名。またはファイルパス。
Extended Properties 拡張パラメータ。(以下参照)

 

Extended Properties パラメータ

Excel {バージョン} ISAMバージョン。2003 以前の形式の場合は「8.0」。2007 形式の場合は「12.0」
HDR シートの1行目をヘッダ列として扱う場合は「YES」、1行目から行データとして扱う場合は「NO」
IMEX 0:エクスポート モード、1:インポート モード、2:リンク モード。通常指定する必要がないが、1 を指定すると、セルの値がすべて表示されているテキストのまま読み込める。例えば、セルに「2011/10/1」と入力し、書式設定によって「2011年10月1日」と表示されている場合、IMEX に 1 を指定すると取得するデータは「2011年10月1日(string型)」となる。IMEX を指定していない場合はエンジンの自動解釈によって「2011/10/1(Date型)」として読み込まれるが、前後行の入力内容によって型の解釈が変化する。詳しくは「[PRB] DAO の OpenRecordset を使用すると Excel の値として NULL が返される」参照のこと。
]]>

OLEDB を使用して Excel ファイル(2007形式)のデータを読み込むための前準備

メモ書きです。プログラム側については探すといくつか出てくるので、ここではその前準備について書いています。(2011/10時点)

 

OLEDB を使用して 2007 形式の Excel ファイルを読み込むにはコンポーネントをインストールする必要があります。Office や Visual Studio をインストールしてもコンポーネントはインストールされないので個別にインストールする必要があります。

コンポーネントは下記のいずれかをインストールします。

2007 バージョンと 2010 バージョンはどちらをインストールしても大丈夫です。バージョンの違いによってプログラムが変わることはありません。

ただし、32bit と 64bit では以下のような違いがあります。

OS が 32bit 版の場合

2007 (32bit)、2010 (32bit) のいずれかのみインストールできます。

OS が 64bit 版の場合

どのコンポーネントもインストール可能です。ただし、プログラムで使用する際は注意する事項があります。(後程記載)

2007 Office がインストールされている場合

すべてインストールできます。

Office 2010 32bit がインストールされている場合

2010 の 64bit 版のコンポーネントはインストールできません。

Office 2010 64bit がインストールされている場合

2010 の 32bit 版のコンポーネントはインストールできません。ただし、2007 32bit 版のコンポーネントはインストールできます。

データ接続コンポーネント 32bit 版がインストールされている場合

64bit 版のコンポーネントはインストールできません。

データ接続コンポーネント 64bit 版がインストールされている場合

32bit 版のコンポーネントはインストールできません。(実は 2007 のコンポーネントをインストールする際、2010 の存在チェックを行っていないため、2010 64bit ⇒ 2007 32bit の順番でインストールすることは可能です。ただし、正常な動作をしてくれる保証はありません。)

 

64bit OS 環境で OLEDB を使用する際の注意点

上記の理由により 32bit 版と 64bit 版のデータ接続コンポーネントを同時にインストールすることはできません。作成したアプリケーションを起動した際、そのアプリケーションが 32bit なのか 64bit なのかで使用されるデータ接続コンポーネントの bit(32 or 64) が決定されるので注意が必要です。

例えば Office 2010 64bit をインストール済みの場合、データ接続コンポーネントのバージョンは必然的に 2010 64bit 版になります(2007 は除く)。Visual Studio 2010 SP1 で作成するアプリケーションはデフォルトで x86 になっているので、そのまま OLEDB を使用するアプリケーションを作成しても実行時にコンポーネントが存在しないというエラーが発生します。

また、他のアプリケーションの拡張コンポーネントとしてプログラムを作成する際、その対象アプリケーションの bit に依存する点も注意する必要があります。例えば Visual Studio 2010 の拡張プログラムを作成する際、Visual Studio 2010 は 32bit 版しか提供されていないので、作成した拡張コンポーネントは必然的に 32bit モードで動作します。

]]>