|
▼マリア さん:
こんばんは。
>> データを一括更新する際
> これがどの様なやり方で行っているかによって
この辺がポイントになってきますね。
AccessVBAにおいての変数は、
・Accessを開いている最中ずっと値を保持する変数
・あるフォームを開いている最中は値を保持する変数
・1つの命令を実行している間のみ値を保持する変数
などを指定できます。
MSサポートオンラインより
Visual Basic for Applications の変数の適用範囲
h tp://support.microsoft.com/kb/141693/ja
(こちらの掲示板は直リンクが禁止ですので、補完して下さい)
データの削除から、データの投入/変更までの間に
いったんAccessを閉じるような操作が入る場合には
変数に値を保持する様な事はできません。
また、プログラム上において
変数を長く保持する様な書き方というのは
余り推奨されておりません。
MSサポートオンラインより
[VBA] Public 宣言された変数の有効期間
h tp://support.microsoft.com/kb/408871/ja
削除 → データの一括投入 → 注文番号の一括変更
の流れが1つのアクションで行われるのであれば
変数を使う方法で問題はないと思います。
特定のフォームを開いている最中に、例えば
・削除ボタン
・データインポートボタン
・注文番号の一括処理ボタン
などとなっている場合は
フォームレベルで変数を宣言して値を保持する事もできますが、
フォーム上に不可視のテキストボックスを配置して
そこに値を入れておいた方がより無難かもしれません。
データの削除と新データの投入までに
Accessを閉じる可能性がある場合は
面倒でもどこかに記憶させる必要が出てきます。
外部ファイル等でも良いのですが、
Accessというツールを使っている場合には
テーブルに保存するのが一般的ではないかと思われます。
それぞれの場合によってコードも異なってくるので
もう少し詳細をご提示して頂けますでしょうか。
> クエリー上でまとめて付加させたいと思い
注文のデータには Unique(絶対に重複しない)な値がありますでしょうか?
部品コード 数量 発注先コード
A001 1 H001
A001 2 H003
B001 2 H006
のようなデータでしたら特に問題はないのですが、
部品コード 数量 発注先コード
B001 1 H001
B001 1 H001
B001 1 H001
(合計金額がxxxx円を超える場合は
複数注文書を切らなければいけない…等)
の様なデータがありうる場合には
クエリ一括で注文番号を付加させるのは難しいかと思われます。
(VBAを使って番号を付加する事は可能です。)
また、複数項目の組み合わせで一意になる場合
(部品コード、発注先コードの組み合わせで重複しない、等)
一意になる組み合わせの項目が多いと
処理が遅くなる場合がありますね。
> 色々な書籍を購入してもその辺は掲載せれておりませんでした。
データベースという観点から見た場合。
不要なデータであっても完全に削除する事は
あまりお勧めできない行為であるかもしれません。
いらないデータであっても「削除フラグ」などという項目を作り、
True/False を切り替えることによって
ユーザにはデータを見せないような作りにする事が多々あります。
今回の様な操作はあまり一般的でないため
書籍などにもヒントになるようなものがないのかもしれませんね。
|
|