• ベストアンサー

ACCESSのフォームで同じ所属課入力の手間を.

access2000で社員名簿のフォームで所属課名等、同じデータが続く項目が幾つかあるのですが、入力に大変手間いります。何度かQ&Aで見た事がありますが”更新後処理”とか”マクロ”とかで出来るようですが、全くの無知のため初心者向けに教えて頂けないでしょうか。

みんなが選んだベストアンサー

  • ベストアンサー
回答No.5

ローテク回答ですが Ctrl + ' (コントロールキーを押しながらシングルクォーテーション)で 直前レコードのフィールドの値が入力できます。 http://www.tsware.jp/tips/tips_317.htm http://www.nurs.or.jp/~ppoy/access/access/acEt023.html

masaru1912
質問者

お礼

貴重な多くの資料有り難うございました。なかなか高度な資料なため、即私には使い切れないですが、少しずつ勉強させて頂きたいと思っています。有り難うございました。今回の質問は、フォームを保存しても、次ページで所属課テーブルのデーターが同じである場合は、未入力で保存、保存後もテーブル上所属課テ-ブルの表示を残して、他の所属者の場合のみ入力する(基本テーブルには未入力データ部分にもデーターが記録されている様にしたいのですが) いろいろとお世話になりました。ありがとうございました。

その他の回答 (5)

回答No.6

Public Const conPreviousValue = "^("")" これが、先の回答者の言われるローテクを記号定数化したものです。ですから、Fキーを押した時に SendKeys で出力すれば、キー入力したのと同じ結果を得られるということです。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.4

>社員名簿のフォームで所属課名等、同じデータが続く項目が幾つかあるのですが このような事はEXCELでは面倒ですが、ACCESSは簡単に解決できます。 キーワードは、【[リレーションシップ】、【サブフォーム】、【テーブルの正規化】です。 詳しくは検索して調べて下さい。 【課名テーブル】と【社員名簿テーブル】をリレーションシップで結び、 サブフォームのあるふぉーむにします。 【課名テーブル】 ・ID (データ形式:オートナンバー型 主キー) ・課名(データ形式:テキスト型) 【社員名簿テーブル】 ・ID (データ形式:オートナンバー型 主キー) ・社員名(データ形式:テキスト型) ・課名ID(データ形式:数値型) この課名テーブルのIDと社員名簿テーブルの課名IDを リレーションシップで結べば、テーブルの段階で一つの課のもとに 課員の名前を次々に入力できます。 サブフォームのあるフォーム作成はフォームウィザード を使います。 ウィザードの最初に、テーブルのフィールドの入力で 始まります。ここで両方のフィールドを選択するとサブフォームの あるフォームへ導いてくれます。 出来上がった結果的には主フォームとサブフォームの2つの フォームが出来上がります。 ここで主キーのIDはお任せ項目として、フォーム上から除去します。 これの上に部テーブル、下には家族テーブルと拡大もできます。

回答No.3

補足の補足:FKeyの設定例 私は、添付図のようにしていました。 先の、ユーザー定義定数を使えば、F6の要領でF2~F9まで設定できます。 *F6の例示だけでは不親切かと思いまして・・・。

回答No.2

補足:{F6}キーに【一つ前のレコードの値】を仕組む。 1、フォームのプロパティを変更。 キーイベントを取得=はい 2、Form_KeyDownイベントコードを追加。 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)   Select Case KeyCode     Case vbKeyF1     Case vbKeyF2     Case vbKeyF3     Case vbKeyF4     Case vbKeyF5     Case vbKeyF6       SendKeys conPreviousValue, True       KeyCode = 0     Case vbKeyF7     Case vbKeyF8     Case vbKeyF9     Case vbKeyF10     Case vbKeyF11     Case vbKeyF12     Case Else   End Select End Sub

回答No.1

Q、ACCESSのフォームで同じ所属課入力の手間を省く方法。 A、二つ。 1、ファンクションキーを押せば前値が入力されるように仕組む。 ' ' ショートカットキー ' Public Const conGotoMain = "^(+({HOME}))" Public Const conGotoSub = "{HOME}{UP}{TAB}" Public Const conDefaultValue = "^(%({ }))" Public Const conPreviousValue = "^("")" Public Const conClearField = "+({UP}){DELETE}+({DOWN}){DELETE}" Public Const conRestoreField = "{ESC}" Public Const conNextField = "{TAB}" Public Const conPreviousField = "+({TAB})" Public Const conNextRecord = "^({PGDN})" Public Const conPreviousRecord = "^({PGUP})" Public Const conRequery = "+({F9})" Public Const conNewRecord = "^({+})" Public Const conPullDown = "{F4}" ここに紹介した共通記号定数を利用すれば、フォームアプリケーションで ・{F5}キーを押すと、入力欄に<既定値>が代入される。 ・{F6}キーを押すと、入力欄に<一つ前のレコードの値>が代入される。 ・{F7}キーを押すと、入力欄に<空の値>が代入される。 などの仕組みを簡単に組み込むことができます。 2、既定値を設定する。 Private Sub 商品コード_BeforeUpdate(Cancel As Integer)   If Len(Me.商品コード.Value & "") Then     Me.商品コード.DefaultValue = Me.商品コード.Value   End If End Sub 私は、全てのフォームにFキー=ショートカットを仕組んでいました。 既定値を変更ってのはしてませんでしたね。

masaru1912
質問者

補足

有り難うございます。以前ネットで”更新後処理”での解決策があったので、”アクション””アイテム”式”と入力してみたのですが、残念ながらアイテムで”入力が間違っています”となって進められず挫折してしまいました。有り難うございました。やはり今回もわたしには無理なようですのであきらめますお世話になりました。

関連するQ&A