5.1.1 データの更新方法
データを更新する操作と注意について説明します。
(1) 操作
データを更新する操作を図5-2に示します。
-
Excelを起動します(又はDBPARTNER2を起動します)。
-
手順ファイルを利用してデータを抽出する場合は,[DBPARTNER2(B)]−[手順ファイル利用(C)]メニュー(又は[手順(B)]−[実行(E)]メニュー)を選びます。
[DBPARTNER2手順ファイル実行]ダイアログボックスが表示されます。
手順ファイルを利用しない場合は[抽出(R)]を選択します。[DBPARTNER2]ウィンドウが表示されるので抽出条件を設定してください。
オートフィット機能で抽出するデータの列幅を自動調整する場合は,[DBPARTNER2(B)]−[オートフィット(A)]メニューを選んでおきます。また,[DBPARTNER2]−[罫線]メニューを選んでおくと,データを貼り付けた後で有効範囲が自動的に罫線で囲まれます。
- 補足
-
抽出するデータの転送先は「Excel連携」としてください。
-
利用する手順ファイルを選んでから,[OK]ボタンをクリックします。
指定された手順ファイルが実行されます。転送が完了すると,更新に必要な情報(以降,更新情報と表記します)を作成するかを確認するメッセージが出力されます。
- 補足
-
更新情報とは,DBPARTNER2が更新するデータをマッピングするために内部的に持つデータです。
-
[はい(Y)]ボタンをクリックします。
抽出データのシートの次にシート保護されてデータが退避されます。このシートはDBPARTNER連携で使うため,変更したり削除したりしないでください。
[いいえ(N)]ボタンをクリックすると,更新情報が作成されないため更新できなくなります。
- 補足
-
抽出処理だけの場合は[いいえ(N)]ボタンをクリックしてください。
-
データを編集します。
データを変更する:抽出したデータを変更してください。
データを追加する:新規行を作成してください。
データを削除する:抽出したデータから削除する行を削除してください。
- 補足
-
抽出したデータのある行をコピーして新しく行を作成した場合は,シート上で上にある方のデータが変更対象となって,そのデータ以外は追加対象となります。
-
[DBPARTNER2(B)]−[更新(U)]メニューを選びます。
データベース上のデータが更新されます。
データベース上のデータが5.で編集したデータに変わります(変更したデータは,変更した値に変わります。追加したデータはデータベース上に追加されます。削除したデータはデータベース上から削除されます)。
- 補足
-
DBPARTNER2では,抽出したデータの行と列にそれぞれを識別するためのIDを付けています。このIDを基に更新情報と編集したデータとを比較してデータベースを更新します。IDは抽出したデータのA列のメモ情報に格納されます。このためメモ情報を変更するとデータベースが正しく更新できなくなるので注意してください。
再び更新する場合には,抽出から実行してください。Excelのシートに残っているデータを編集して,再び更新できません。
Excelを終了するとDBPARTNER2も同時に終了します。
- 更新処理を中断した場合
-
次の場合,更新処理が中断されます。
-
データベースを更新中に[キャンセル]ボタンをクリックする。
-
更新処理中にエラーが発生する。
更新処理が中断された場合,それまでの処理が有効か無効かを決定する方法を,接続先定義ファイルのパラメタによって指定できます。
接続先定義ファイルのUPDFINパラメタを指定すると,その指定によって,更新処理を有効にするかを確認するメッセージが出力され,処理の有効,無効を決定できます。ただし,UPDFINパラメタの指定を省略すると,確認のメッセージが出力されないで更新処理が無効になります。
CommuniNet接続の場合,UPDFINパラメタを指定するときにはTRNHANDLEパラメタをDBPARTNERと指定してください。
-
- 更新処理時間を短縮するために更新するデータだけを絞り込んで抽出してください
-
DBPARTNER2は,更新処理時にExcelのシート上の全データをチェックしています。このため,更新対象でないデータを抽出すると不要な時間が掛かります。更新用のデータは更新するデータだけに絞り込んで抽出してください。
- データ追加だけを目的とした抽出の場合
-
データベースへデータ追加の目的で抽出する場合は,[DBPARTNER2]ウィンドウの[抽出]−[データ追加]メニューを選択することもできます。この場合,表中の列名だけが抽出されるため,ずべてのデータを抽出する場合と比べて抽出時間が短くなります。詳細は,「5.3 データベースへのデータ追加」を参照してください。
(2) データを更新するときの制限
DBPARTNER2の制限で,データを更新できない場合があります。
次に示す表を抽出した場合,Excelのウィンドウでデータベースを更新するコマンドが淡色で表示されて,選択できないので注意してください。
-
列数が256以上ある
-
倍精度数値又は単精度数値属性の列がある
更新条件の解除,又は接続先定義ファイルの設定で,UPDUNITパラメタをROWIDに設定することで対応できます。
-
列の定義長が256バイト以上の列がある
-
16進文字の列で列の定義長が128バイト以上の列を含む表
-
グループ分け,又は集合関数が設定されている
-
[列設定]ダイアログボックスで列を追加,削除した,又は列の順序を並べ替えた場合,抽出できません。ただし,情報ファイルで設定すれば,選択できます。詳細は,「2.5.2(8) 列選択をした状態での更新に関する設定−UpdateOptionセクション」を参照してください。
-
複数表が選択されている
-
更新条件となる列がない([列選択]ダイアログボックスの[列一覧]ですべての列に*がついている)場合は更新できません。
-
貼付オプションを指定して抽出した場合は更新できません。
-
DABrokerドライバ(DBPARTNER/Serverドライバ)を経由してデータベースにアクセスする場合,次の計算式をどちらも満たす表でないと抽出できません。
92+Σ列数(20+↑ 列名長 ↑※)≦65536
52+Σ列数(20+↑列の定義長↑※)≦65536
注※ 4の倍数に切り上げ
-
ODBC接続の場合,属性がVARBINARY,LONG VARBINARYの列がある
-
ODBC接続のVOS1 PDM II E2で,接続先定義ファイルのUPDINITパラメタにROWIDを指定している場合,データの削除と変更を一度に実行すると更新できません。
-
DABrokerドライバ(DBPARTNER/Serverドライバ)を経由してORACLEにアクセスする場合,属性がLONG VARCHARの列がある
DBPARTNER2の制限で,データを更新できない場合があります。
-
接続先定義ファイルのUPDUNITパラメタでBLOCKを指定している場合にはナル値を含むデータの変更及び削除はできないので注意してください。ただし,接続先定義ファイルの設定で対応できます。
参照:「2.4 接続先定義ファイルの作成」
-
Excelでデータを編集するときに,列を追加,削除,列の順序の並べ替え,空白行の挿入を実行すると更新できません。
-
繰り返し列を含む表は更新できません。
(3) データを更新するときの注意
DBPARTNER2以外の制限で,データの更新には次に示す注意があります。
-
権限(変更,追加,削除)のない表に対しては,データベースを更新できません。
CommuniNet接続の場合,データベースを更新するコマンドは淡色で表示されて,選択できません。ODBC 接続の場合,データベースを更新するコマンドが選べる状態ですが,コマンドがエラーになり更新できません。
DBPARTNER2以外の制限(データベースの制限)については,「8.1.4 更新処理の規則」を参照してください。
(4) Excelでの制限
(a) 更新できるデータの範囲
データの範囲:-1E307 〜 -9.99999999999999E307,及び1E307 〜 9.99999999999999E307
文字列最大長:255バイト
最大件数:16383件
最大けた数:15けた
制限を超えた場合,文字属性のデータでは後ろが切り捨てられたり,数値属性の場合には丸められたりします。これらのデータを更新すると不正に更新されることがあるので注意してください。更新データが16383件を超える場合は,エラーとなって更新できません。
(b) 作成されるシート数
作成されるシート数は一つの処理で1シートです。
(c) 抽出したデータの属性
抽出したデータの属性は変更しないでください。
シート上でデータの属性を変更できますが,変更した場合には不正に更新されることがあるので注意してください。
(d) メモ情報
メモ情報は変更しないでください。
1行目のメモ情報と一番左の列のメモ情報は,DBPARTNER2が更新するデータを管理するために使っています。このため,このメモ情報は変更しないでください。変更すると,不正に更新されることがあるので注意してください。
(e) データのけた数
編集した結果,データのけた数が15けたを超えると,後ろが丸められます。
(f) セル書式として定義されている記号(\や%など)入力時の注意
通常Excelのセルには「G/標準」という書式が設定されています。DBPARTNER2で抽出したデータもこの「G/標準」書式となります。更新データ作成時に通貨記号「\」や「%」などExcelでセル書式として定義されている記号を入力すると,そのセルの書式も自動的に通貨記号やパーセント記号の書式に変更されます。このため,データベースに更新されるデータが入力データと異なります。例えば,「10%」と入力したデータは「0.1」としてデータベースに更新されます。「10%」という入力データで更新したい場合は次のどちらかの方法でデータを入力してください。
-
セルの書式を文字属性に変更してからデータを入力する
-
データを入力する時に先頭に「'」を付けて入力する
(g) 日付・時刻データ入力時の注意
Excelの場合,日付はシリアルな数値,時刻は小数値として保存されます(例:入力データが「1998/10/10 11:15」の場合「19981010.1115」という値で保存されます)。このため,データベースに更新されるデータが入力データと異なります。入力データで更新したい場合は次のどちらかの方法でデータを入力してください。
-
セルの書式を文字属性に変更してからデータを入力する
-
データを入力する時に先頭に「'」を付けて入力する
1行目の項目名(列名)を変更してもデータベースには更新されません。
シートには,抽出データと一緒に項目名(列名)も抽出されます。この列名をシート上で更新してもデータベースの表の列名は更新されません。列名は「定義」メニューで変更してください。
(h) データが入力されていない行
データが入力されていない行は更新対象となりません。
データが入力されていない行や行挿入後,データが入力されていなかった行は,更新しても更新対象となりません。空白行をデータベースに追加したい場合などは「△(空白)」などを入力してください。
(i) Excelで更新する場合の注意
DBPARTNER2では扱える行数を16384行としています。
このため,16385行目以降にデータを入力して更新した場合は,エラーとなって更新できません。1〜16384行の範囲内にデータを入力して更新してください。
(j) Excel 2007を使用する場合の制限事項
-
データ抽出時の制限事項
Excel形式で[1048576行まで格納できるExcel2007形式で作成]を選択しExcel連携を行う場合,XLXB形式,XLSX形式でデータを保存する場合に抽出できる最大行数は1048576行です。最大列数は999列です。
-
データ更新時の制限事項
データを更新するときの制限は[65536行まで格納できるExcel形式]と同じです。
(k) Excel 2010を使用する場合の注意事項
-
Excel 4.0形式に関連する注意事項
Excel 2010では標準の設定ではExcel 4.0形式をブロックするようになっています。それにより次に示す機能が制限となります。
-
[抽出]−[データ追加]メニューでExcel連携機能を使用できません。
-
Excel形式の[16384行まで格納できるExcel形式で作成]を選択してExcel連携機能を使用できません。
-
16384行まで格納できるExcel形式(Excel 4.0形式)で保存したExcelファイルをExcel 2010で開いた場合,Excel 2010の設定に従い制限されます。
この制限は,Excel 4形式をブロック対象からはずすことで解除することができます。
-
[ファイル]タブをクリックします。
-
[ヘルプ]の[オプション]を選択します。
[Excelのオプション]ダイアログが表示されます。
-
左のペインで[セキュリティセンター]を選択します。
Microsoft Excel セキュリティセンターが表示されます。
-
Microsoft Excel セキュリティセンターの[セキュリティセンターの設定]ボタンをクリックします。
[セキュリティセンター]ダイアログが表示されます。
-
[ファイル制限機能の設定]で[Excel 4 ワークシート]の[開く]のチェックをはずしてください。
-
(l) Excel 2013,Excel 2016を使用する場合の注意事項
(j)の制限事項および(k)の注意事項に加えて次に示す制限があります。
-
Excelウィンドウからのヘルプ表示について
Excel 2013,Excel 2016用の連携マクロにはヘルプを表示する機能がありません。ヘルプを参照する場合はDBPARTNER2ウィンドウから表示してください。
-
[DBPARTNER2]タブが初期化されるタイミングについて
[DBPARTNER2]タブはExcelの起動直後に初期化されますが,Excelの仕様により若干の時間差があります。[DBPARTNER2]タブが初期化される前に,セルを編集中の状態にしておき[DBPARTNER2]タブを選択すると,すべてのボタンとコントロールが操作できなくなります。この現象はExcelを終了することで回復します。