2012年3月28日水曜日

更新クエリがシンプルにできるようなのですがわかりません。 - MS Office - 教えて!goo


下記質問の回答者です:

No.7の回答にも後から画像にて追記しましたが、残念ながら
「フォームでのレコード並び順による、前(または後)レコード
の連動更新」では、そちらの環境でのエラーをこちらのPCで
再現できなかったため(汗)、別のアプローチを回答します。

> 更新クエリがシンプルにできるようなのですがわかりません。


Google Analyticsヘルプセンター正規表現とは何です

確かに、ある条件を満たす場合は、更新クエリでシンプルに
対応できますが、そのためには「現在編集中のレコード」に
対して「直前(又は直後)のレコード」を特定できるフィールド
が必要です。
※通常は「開始日/終了日」で前後が特定できるはずと
  考えますが、今回はその「開始日/終了日」の修正、
  という事態を想定してのコードになるので、残念ながら
  このフィールドは使用できない、と判断します。
 (職歴の話なので、「2010/9/6」を「2010/9/7」とした
  程度なら前後関係は変わりませんが、「2001/9/6」と
  していた、といった場合は前後関係の逆転もありうる、と)

フィールド構成はこちらのご質問を参考としました:

ですので、更新クエリでシンプルな対応を可能にするには、
「前/後」を特定可能にするための、社員ごとに履歴順に
連番が割り当てられる「SubID」といったフィールドの新設が
必要になります。


どのようにWebサイトのディレクトリ内のファイルのリストを取得する

これがあれば、更新クエリに以下のような条件を指定すれば
すぐ前の職歴の終了日を更新できるようになります:

『社員コード』の『抽出条件:』欄:
 [Forms]![社員マスタFRM]![社員コード]

『SubID』の『抽出条件:』欄:
 DMax("[SubID]", "社員履歴TBL", "[社員コード]='" & [Forms]![社員マスタFRM]![社員コード] & "' And [SubID]<" [Forms]![社員マスタFRM]![SubID])
 ※社員コードが文字列型の場合(SubIDは確実に数値型として)。

『終了日』の『レコードの更新:』欄:
 DateAdd("d",1,[Forms]![社員マスタFRM]![開始日])

但し、データベースへのデータ入力がこれから始まるなら
問題ありませんが、既に多くのデータが蓄積されている
場合、既存のレコードにどうやってこの連番を振るか、
という問題が発生します(汗)
(開始日/終了日を信用して、それを元に割り当ててしまっても
 よいなら、マクロ/VBAで割り当てることは可能ですが・・・:
 ループ処理が発生するので、これも複雑と感じられてしまう
 可能性もあります(汗))


どのように私はMySpaceのブロックユーザーがハックしない

・・・開始日/終了日の修正頻度がそれほど高くはないはずの
ことを考慮すると、そこまで労力を掛けてつけるだけの価値が
ある機能か、という検討もしてみた方がいいかもしれません(汗)

※開始日/終了日の修正幅が数日しかないと考えてよいよう
  なら、上記で『SubID』としたところを、『開始日』か『終了日』
  に置き換えてやっても構わないことになります。

◆本ご質問の「退社日を最終日に反映」についても、
 「現在入力済みの開始日で最も遅いもの」を最終履歴として
 判断してよいなら、『開始日』の抽出条件欄に
 DMax("[開始日]", "社員マスタTBL", "[社員コード]='" & [Forms]![社員マスタFRM]![社員コード])
 としてやればOkです。
 (上と同様に『社員コード』への抽出条件も必要:
  入れないと全社員が更新対象になってしまうので要注意(汗))

※クエリでの更新結果は、そのままでは即座にはフォームに
  反映されませんので、コントロールの再クエリが必要です。
  (「Me!終了日.Requery」といった感じ)


通報する

この回答へのお礼

ありがとうございます!
SubIDフィールドを作成しました。
更新クエリに抽出条件を入力するとSubIDのところで
指定した式の構文が不正です。
となります・・・

既に多くのデータが保存されていますが、全てにSubIDをふる覚悟です(^0^)

開始日/終了日を入力する時に開始日と前勤務先の終了日のずれは必ず一日なので、自動入力されれば・・・という考えからなので、修正幅は小さいと思います。

SubIDを開始日に置き換えて進めてみます。



These are our most popular posts:

タスク・スケジューラの基本的な使い方(Windows 7/Windows Server ...

2011年2月25日 ... このような繰り返し作業を自動化できる機能として、Windows OSには「タスク・ スケジューラ」が標準で装備されている。 ... 新たなタスクを作成するには、まずタスク・ スケジューラのUIを起動する必要がある。 ... むやみにほかのフォルダを選んでタスクを 作成すると、どのフォルダに格納されたか分からなくなりがちなので注意する。 read more

組織行動論-ミクロ組織論(OB)リーダーシップ論

組織目標を達成する上で、どのように個人や集団に働きかけるかなどを取り扱う。 ... 野中(1983)が示した2つの次元において、リカートを中心とするミシガン大学は、タスクを 「生産志向」、人を「従業員志向」とし、業績効果の測定値に関係があると見られる ... read more

アップル インコーポレイテッド - Wikipedia

1975年にインテルがi8080をリリースすると、Altair(アルテア)8080というコンピュータ・ キットが早速発売されるようになり人気を博した。 ... 彼はApple Iのマニュアルなどを 作成する仕事に従事した。 .... はジョブズに干される形でアップルを去ったラスキンに 対し、敬意を表する形でMacintoshを送ったが、ラスキンがどういった感情を抱いたかは 不明 ... この第4四半期で初の赤字を計上、従業員の1/5にあたる人数の削減を余儀なく された。 read more

Excel 97 で Excel のソルバーを使用して、Visual Basic マクロを作成 ...

2011年7月30日 ... Excel のソルバーを使用してマクロを作成する方法の設計作業のために、Excel の ソルバーの制約と、マクロで Excel の ... は、 Find Square Root マクロは、次のタスク を実行します。 ... Microsoft Excel ソルバーはいくつか記述するレポートの種類を提供し ていますが、どのように[変更された結果、距離の制約 ..... 時間のスケジュール設定、 および各従業員単位数は、予想されることができます。1 時間で生成します。 read more

Related Posts



0 コメント:

コメントを投稿