<第9回>

コントロールを読み取り専用にする

兵庫県立西宮香風高等学校 松本吉生

ymatsumoto@hyogo-c.ed.jp

 
<<前のページへ
 

データを変更させたくない場合

   
 

繰り返しテーブルの初期状態は、どのフィールドも変更可能になっている。「年月日」は日付の選択コントロールになっており、カレンダーアイコンをクリックすると日を選択できるし、「曜日」はテキストボックスのコントロールなのでキーボードからの文字入力で変更できる。

   
 
 
   
 

しかしこのテーブルは、学校の一年間の日程で、授業のある日とない日を区別するものであるから、日付を変更したり曜日を変える必要はない。というよりも日付や曜日は変更してはいけないデータである。

このように特定のフィールドのデータをユーザーに変更させたくない場合、コントロールのプロパティで「読み取り専用」を使うことができる。

   

テキストボックスコントロールを読み取り専用にする

   
 

曜日フィールドの「テキストボックス」コントロールを右クリックし「テキストボックスのプロパティ」をクリックすると、プロパティウィンドウが表示される。

   
 
   
 

曜日フィールドの「テキストボックス」コントロールを右クリックし「テキストボックスのプロパティ」をクリックすると、プロパティウィンドウが表示される。

「表示」タブにある「読み取り専用」チェックボックスにチェックし「OK」ボタンをクリックする。

   
 
 
   
 

フォームをプレビューし、データを呼び出して「曜日」フィールドを変更しようとしても変更できないことを確かめよう。

フィールドを右クリックしても、「切り取り」や「コピー」などの編集メニューがグレーアウトして使えないことがわかる。

   
 
   

日付の選択コントロールを読み取り専用にする

   
 

では次に「日付の選択」コントロールを読み取り専用にしてみよう。テキストボックスコントロールの場合と同様に、プロパティを開いてみる。

プレビューしたフォームを閉じ、フォームの編集画面で「年月日」フィールドの「日付の選択」コントロールを右クリックし、「日付の選択のプロパティ」をクリックする。

   
 
   
 

日付の選択のプロパティで「表示」タブを開いても「読み取り専用」チェックボックスは見当たらない。このようにコントロールによっては設定できるプロパティが異なるものがある。「条件付き書式」ボタンをクリックしよう。

   
 
   
 

「条件付き書式」には何も設定されていない。「追加」ボタンをクリックして新しく「書式設定の条件」を作成しよう。

   
 
   
 

条件付き書式では、まず条件を判定する対象になるフィールドを決める。ここでは「年月日」のフィールドがデフォルトで設定されており、ここはこのままでよい。

次に対象フィールドの値がどうであれば書式を変えるのかという条件を決める。これは次のようにドロップダウンリストから選択する。

この場合は、値によって条件を変える必要はなく、どんな場合でも読み取り専用になればよいので「が存在する」を選択する。

   
 
   
 

条件の設定ができたら、「読み取り専用」のチェックボックスにチェックを入れ、「OK」ボタンをクリックして設定を終了する。

   
 
   
 

「条件付き書式」のウィンドウでは、次のように書式設定の条件ができていることが確認できる。「OK」ボタンで設定を終了し、次の「日付の選択のプロパティ」ウィンドウも「OK」ボタンで閉じる。

   
 
   
 

フォームをプレビューし、データを呼び出して「年月日」フィールドのカレンダーアイコンをクリックしてみよう。日付の選択カレンダーコントロールが開かないはずだ。

またフィールドを右クリックしても、「切り取り」や「コピー」などの編集メニューがグレーアウトして使えないことがわかる。

   
 
   
このページのまとめ
   
 

このページでは、InfoPathの繰り返しテーブルでデータの変更をさせたくないコントロールを「読み取り専用」にすることを説明した。コントロールによってはプロパティに「読み取り専用チェックボックス」がないものもあるが、その場合は「条件付き書式」を利用して読み取り専用にすることができる。次回は条件付き書式を活用し、データを視覚的に把握しやすいように工夫する。

なお、このページでは、特に断りのない限り、Access2003とInfoPath2003を使って説明している。クライアントコンピュータのOSはWindowsXPで、サーバは特に使っていない。

       
  mailto:ymatsumoto@hyogo-c.ed.jp :←ここをクリックして筆者にメールを送る
       
 
matsumotoyoshio.com 2008/2/29