<第8回>

データの追加や削除ができないようにする

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

ymatsumoto@hyogo-c.ed.jp

 
<<前のページへ
 

繰り返しテーブルでのデータの追加と削除

   
 

次のプレビュー画面の左下にある小さな空色の逆三角形のボタンを見て欲しい。このように繰り返しテーブルにはテーブルの最後尾に「項目の挿入」という小さなボタンがある。データを追加したいときには、この「項目の挿入」ボタンをクリックすると、最下行の下に新しい空白の行ができて、項目を記入することができる。

   
 
   
 

繰り返しテーブルのデータを削除したいときには、削除したい行にマウスを重ねる。すると行の左端に灰色で逆三角形のボタンが現れる。これをクリックすると、下のプレビュー画面のように、その行の上や下にデータを挿入したり、削除、切り取り、コピー、貼り付けといったメニューが表示される。

   
 
   
 

このように繰り返しテーブルにはデータの挿入や削除の仕掛けがあるのだが、場合によってはユーザーにデータの挿入や削除をさせたくない場合がある。

このフォームでは、一年間の日付がデータベースにあって、その日が授業日であるかないか、のフィールドだけを変更させたい。一年間の日程はもともとデータベースに生成しているので、データの追加や削除は必要ないし、ユーザーが間違って追加や削除をしては困る。そこでデータの挿入や削除のボタンが表示されないようにしてみよう。

   

繰り返しテーブルのプロパティを表示する

   
 

繰り返しテーブルにマウスを重ねて右クリックすると、下の画面のようなメニューが表示される。ここで「繰り返しテーブルのプロパティ」をクリックすると、プロパティの編集ウィンドウが表示される。

あるいは繰り返しテーブルの右下にある「繰り返しテーブル」と表示されたタブをダブルクリックしてもいい。

   
 
   

「ユーザーによる行の挿入と削除を許可する」チェックボックス

   
 

「繰り返しテーブルのプロパティ」の「データ」タブには「既定の設定」という項目がある。

「動作規則」では、このテーブルに行が挿入されたとき、それを引き金としていろいろな動作を自動的に行う設定ができるものだ。「動作規則」は、この繰り返しテーブルだけでなく、他のコントロールにも実装されている。この「動作規則」を有効に活用することが、InfoPathのフォーム上でユーザー支援の仕組みを組み込むために大切なことだ。

「既定値の編集」では、繰り返しテーブルに新しい行ができたときに、デフォルトで設定したい既定値を記述できる。この既定値には、単に値を記述するだけではなく、データソースから値を取得したり、関数を使うこともできる。工夫すれば面白い処理ができるだろう。

「コマンドのユーザー設定」は、ユーザーによる行の挿入と削除を許可したときに、フォーム上のどのメニューから実行できるかを設定する。フォームのいろいろなメニューで項目を表示させることができる。カスタマイズしたいときはここを設定する。

データ入力支援として上記の項目を利用すると使いやすくミスを少なくするフォームができるが、ここではあまり複雑なことを考えないことにして、「ユーザーによる行の挿入と削除を許可する」のチェックボックスだけを外そう。

   
 
 
   
 

チェックを外すと「既定の設定」全体がグレーアウトして変更できないようになる。「OK」ボタンをクリックして「繰り返しテーブルのプロパティ」を閉じよう。

フォームの編集画面に戻っても、テーブルの最後尾にある逆三角形の小さなボタンが消えていないが、これは編集画面上だけであるので気にしなくてよい。

   
 
   

フォームをプレビューする

   
 

設定ができたらフォームをプレビューして確認しよう。

   
 
   
 

上のプレビュー画面のように、繰り返しテーブルの左下にあった「項目の挿入」という逆三角形のアイコンが表示されていない。

では「クエリの実行」ボタンをクリックしてデータを呼び出してみよう。

   
 
 
   
 

データを呼び出し、最下行へスクロールしても、「項目の挿入」アイコンが表示されていないことがわかる。

また次のプレビュー画面のように、行にマウスを重ねて右クリックすると、「切り取り」、「コピー」、「貼り付け」メニューはあるが、「行の挿入」や「行の削除」メニューはないこともわかる。

   
 
   
このページのまとめ
   
 

このページでは、InfoPathの繰り返しテーブルには行の挿入や削除のボタンがデフォルトで生成すること、行の削除や挿入をさせたくないときには、繰り返しテーブルのプロパティで設定を変更できることを説明した。次回は変更させたくないフィールドを「読み取り専用」にする設定を説明する。

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

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