Access2000社員管理システムの使い方と終了日の自動入力方法

このQ&Aのポイント
  • Access2000社員管理システムを利用している方へ。社員マスタサブフォームの使い方とレコードソースの設定方法を解説します。
  • また、終了日を入力すると翌日の開始日が自動的に入力される機能も紹介します。
  • 詳細は記事をチェックしてください。
回答を見る
  • ベストアンサー

access2000"社員管理システム"を利用しています。

access2000"社員管理システム"を利用しています。 社員マスタサブフォームがあり、レコードソースは社員履歴QUE(社員履歴TBL、所属TBL)です。 社員コード 開始日 終了日 社内区分 所属コード 役職名 内線電話番号 呼出詳細 所属名 部署名 を入力していて、以下がコードです。 Sub Form_Load() On Error GoTo Form_Load_Err If ParentFormIsOpen() Then Forms![社員マスタFRM]!ToggleLink = True Form_Load_Exit: Exit Sub Form_Load_Err: MsgBox Error$ Resume Form_Load_Exit End Sub Sub Form_Unload(Cancel As Integer) On Error GoTo Form_Unload_Err If ParentFormIsOpen() Then Forms![社員マスタFRM]!ToggleLink = False Form_Unload_Exit: Exit Sub Form_Unload_Err: MsgBox Error$ Resume Form_Unload_Exit End Sub Private Function ParentFormIsOpen() ParentFormIsOpen = (SysCmd(acSysCmdGetObjectState, acForm, "社員マスタFRM") And acObjStateOpen) <> False End Function Private Sub 終了_Click() On Error GoTo Err_終了_Click DoCmd.Close Exit_終了_Click: Exit Sub Err_終了_Click: MsgBox Err.Description Resume Exit_終了_Click End Sub 終了日を入力したら次のレコードの開始日に終了日の翌日が自動的に入力されるようにしたいです。 宜しくお願いします!!

noname#137913
noname#137913

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

『終了日』テキストボックスの更新後処理で、『開始日』に 『既定値』を設定してやれば、目的は果たせるかと思います: Private Sub 終了日_AfterUpdate() On Error Goto エラー処理   '値を削除した場合は、何もしない   '(その前の入力で既定値が設定済みなら、その値を保持)   If IsNull(終了日) Then Goto 終了処理   '『終了日』の翌日の日付を、『開始日』の既定値に設定   '(割り算扱いされるを避けるため、「#」で括る必要あり)   Me!開始日.DefaultValue = "#" & DateAdd("d", 1, 終了日) & "#" 終了処理:   Exit Sub エラー処理:   MsgBox Err.Number & ":" & Err.Description, , Me.Name & " 終了日"   Resume 終了処理 End Sub ・・・以上です。 なお、テーブル上でのデータ型が、『開始日』・『終了日』ともに 「日付/時刻型」であるという前提です。

noname#137913
質問者

お礼

DexMachinaさんありがとうございます!! できました!! 使っていると新たな問題が発生しつつあるのでまたよろしくお願いします!!

その他の回答 (1)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

少しでも解決の役に立てば・・・・と、回答しておりますが。 質問者さんの技量がわかりません。 【補足要求】(欄が無くなったのですね) 提示されたVBA記述部分と、 > 終了日を入力したら次のレコードの開始日に終了日の翌日が自動的に入力されるようにしたいです。 とは、どのような関係にあるのでしょうか。 何をしているVBAなのか説明してください。 説明内容により、追加で回答できるものなのか、見極めたいと思います。 今回の内容は、 MicrosoftAccess2000「社員管理システム」退社日を他の... http://okwave.jp/qa/q5795162.html 上記URLでの続き(発展形)になるのでしょうか。 上記回答#3の補足メールが本日届きましたが、回答に難義しています。 補足には、 > サブフォームコントロール名は「ToggleLink」なので という記述がありましたが、今回の ToggleLink と同じものを指しているのでしょうか。 「ToggleLink」は、何者ですか。 True / False の値を設定しているようですが・・・・ 蛇足) また、本日届いた補足メール 取引先の消費税の計算方法を四捨五入と切り捨てに区別 http://okwave.jp/qa/q5811666.html については、私の技量不足で追加で書ける回答はありません。 (遊ばれてたりして・・・と、勘繰りたくなる気持ちもあります、、)

noname#137913
質問者

お礼

30246kikuさんありがとうございます!! VBAやTooglelinkは私が作ったものではないので、少しでも状況がわかればと思い全部貼り付けてしまいました・・・ まだまだ改善点がありそうなので宜しくお願いします!!

関連するQ&A

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

    更新クエリがシンプルにできるようなのですがわかりません。 何か良い方法があれば教えてください! 社員マスタFRM(単票フォーム)に以下のトグルボタンがあります。 標題 履 歴 Sub ToggleLink_Click()  On Error GoTo ToggleLink_Click_Err  Me![確定].Enabled = False  If ChildFormIsOpen() Then   CloseChildForm   Else   OpenChildForm   FilterChildForm  End If  ToggleLink_Click_Exit:  Exit Sub  ToggleLink_Click_Err:  MsgBox Error$  Resume ToggleLink_Click_Exit End Sub 上記のトグルボタンをクリックすると社員マスタサブフォーム(帳票フォーム)が開きます。 社員マスタFRMに以下のテキストボックスがあります。 名前 退社日 書式 yyyy/mm/dd 社員マスタサブフォームに以下のテキストボックスがあります。 名前 終了日 書式 yyyy/mm/dd 社員の退社日は最後の所属先の終了日と同じなので、 社員マスタFRMの退社日を入力したら、 その日付を社員マスタサブフォームの最後のレコードの終了日に自動で入力したいです。 更新クエリがシンプルにできるようなのですがわかりません。 何か良い方法があれば教えてください!

  • アクセスのVBAについて、フォームの On Error Goto についておしえてください。

    Private Sub cmd次_Click() On Error GoTo Err DoCmd.GoToRecord , , acNext Exit_Click: Exit Sub Err: MsgBox "この先にレコードがなくなると、ここをつうかするのだろうか。" Resume Exit_Click End Sub 一連の流れについて,ご解説ください。よろしくお願いいたします。

  • access vba 構文の解読

    access vba 構文の解読 はじめまして先ほどaccess2003について質問させていただいたものです。以下の構文が先ほどの続きです。こちらも皆様のお力で構文を解読していただけないでしょうか。 すみません解読とは、構文の一行一行が何を示しているのか教えていただけると助かります。 よろしくお願いいたします。 ' Exit the application. Case conCmdExitApplication CloseCurrentDatabase ' Run a macro. Case conCmdRunMacro DoCmd.RunMacro rs![Argument] ' Run code. Case conCmdRunCode Application.Run rs![Argument] ' Open a Data Access Page Case conCmdOpenPage DoCmd.OpenDataAccessPage rs![Argument] ' Any other command is unrecognized. Case Else MsgBox "不明なオプションです。" End Select ' Close the recordset and the database. rs.Close HandleButtonClick_Exit: On Error Resume Next Set rs = Nothing Set con = Nothing Exit Function HandleButtonClick_Err: ' If the action was cancelled by the user for ' some reason, don't display an error message. ' Instead, resume on the next line. If (Err = conErrDoCmdCancelled) Then Resume Next Else MsgBox "コマンド実行中のエラーです。", vbCritical Resume HandleButtonClick_Exit End If End Function Private Sub メニュー終了_Click() On Error GoTo Err_メニュー終了_Click DoCmd.Close Exit_メニュー終了_Click: Exit Sub Err_メニュー終了_Click: MsgBox Err.Description Resume Exit_メニュー終了_Click End Sub Private Sub 終了_Click() On Error GoTo Err_終了_Click DoCmd.Quit Exit_終了_Click: Exit Sub Err_終了_Click: MsgBox Err.Description Resume Exit_終了_Click End Sub

  • GoToRecordで実行時エラー '2105'

    教えてください。Access2000です。 Private Sub 次へ_Click() On Error GoTo Err_次へ_Click On Error Resume Next DoCmd.GoToRecord , , acNext Exit_次へ_Click: Exit Sub Err_次へ_Click: MsgBox ERR.Description Resume Exit_次へ_Click End Sub って書いたのですが、最後のレコードまで行った後 「次へ」をクリックすると実行時エラーになってしまいます。 移動できませんとかメッセージで逃げたいのですがどうすればいいのでしょうか? お願いします。

  • アクセスのイベント記述について。

    アクセスで登録ボタンをコントロールウィザードで作ったのですが、登録と同時にそのフォームを閉じるにはどうしたらよいでしょうか。現在の登録ボタンのイベント記述は下記のとおりです。よろしくお願いいたします。 Private Sub 登録_Click() On Error GoTo Err_登録_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Exit_登録_Click: Exit Sub Err_登録_Click: MsgBox Err.Description Resume Exit_登録_Click End Sub

  • 100問を超えたら終了ですのメッセージをだしたい(あくせす)

    Private Sub cmd次_Click() On Error GoTo Err_cmd次_Click DoCmd.GoToRecord acForm, "F_さあやってみよう", acNext If (Forms!F_さあやってみよう!txt番号 = 100) 'これだと100問になったときにメッセージがでてしまいます。100問を終了してボタンをクリックしたら 終了のメッセージを表示したいのですが、 101という番号はありません。 Then Beep MsgBox "終了です(*^。^*)", vbInformation, "終了" End If Exit_cmd次_Click: Exit Sub Err_cmd次_Click: MsgBox Err.Description Resume Exit_cmd次_Click End Sub よろしくお願いしますm(__)m

  • アクセスVBAのエラーについて

    フォームを閉じるためにフォームにボタンを置いて、イベントプロシージャに下記のように書き込みました。すると添付画像のエラーが返ってきてマクロが動きません。 Private Sub コマンド103_Click() On Error GoTo Err_コマンド103_Click DoCmd.Close Exit_コマンド103_Click: Exit Sub Err_コマンド103_Click: MsgBox Err.Description Resume Exit_コマンド103_Click End Sub で、「ファイル-オプション-現在のデータベース」の”フォームの表示”を問題のフォームに切り替えたら問題なく動作します。 つまり”フォームの表示”で選んだフォームでしかコマンドボタンのマクロが動きません。全てのフォームでマクロが動くにはどうしたらよいのでしょうか?

  • Access VBA エラートラップでの終了処理

    お世話様です。 Access2003 VBA にて、各プロシージャに貼ったエラートラップで、 メッセージを出力した後にAccessを終了したいと考えております。 ここで、通常終了時(フォームの×ボタン押下時)の 終了確認メッセージをForm_Unloadイベントで記述しているのですが、 エラートラップでの終了時にも、このメッセージが表示されてしまいます。 エラートラップでの終了時は、終了確認メッセージを表示させたくないので、 標準モジュールにパブリック変数のエラーフラグを用意し、 それで判断しようと考えたのですが、 エラートラップ内でエラーフラグに値を設定しても保持されず、 Form_Unloadイベントで終了確認メッセージがどうしても表示されてしまいます。 何か良い方法はありますでしょうか?よろしくお願いいたします。 例: '***ボタンAクリックイベント******************* Private Sub btn_A_Click() On Error GoTo ERR_LINE   <何らかの処理> Exit Sub ERR_LINE:   MsgBox "予期せぬエラーが発生しました。終了します。" & Chr(13) & _       "エラー番号: " & Err.Number & Chr(13) & _       "エラー内容: " & Err.Description, vbCritical + vbOKOnly, "例外エラー"   bl_ErrFlg = True 'エラーフラグ設定←保持されない   Application.Quit End Sub '***フォームアンロードイベント******************* Private Sub Form_Unload(Cancel As Integer)   If bl_ErrFlg = False Then     Cancel = MsgBox("終了します。よろしいですか?",vbQuestion + vbYesNo, "終了確認") = vbNo   End If End Sub

  • 超初心者です コマンドボタンのプロシージャの解説をお願いします

    超初心者です。どうかご教授願います。 フォームで、コントロールウィザードを使い、コマンドボタンを使うと、 プロシージャには、下記の記述となりますよね。 それぞれの項目の意味をご解説いただければと思います。 --------------------------------------------------- Private Sub コマンド1_Click()  -----------(1) On Error GoTo Err_コマンド1_Click  -----------(2) DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70  -----------(3) Exit_コマンド1_Click:  -----------(4) Exit Sub  -----------(5) Err_コマンド1_Click:  -----------(6) MsgBox Err.Description  -----------(7) Resume Exit_コマンド1_Click  -----------(8) End Sub  -----------(9) --------------------------------------------------- (1)・・・()は何の為にあるのですか?また、話は外れるのですが、「Click(Cancel As Integer)」とはどういう意味ですか? (2)・・・「エラー処理ルーチンを有効にする」というステートメントと本に書いてあるのですが、何のエラーですか? (3)・・・手持ちの本では全く分かりませんでした。各文字の意味からお教え願います。 (4)(6)・・・「Exit_コマンド1_Click」「Err_コマンド1_Click」という言葉は何ゆえ必要なのでしょうか?また最後の「:」は何を示しているのでしょうか? (5)・・・「ループやプロシージャから抜ける」と本に書いてあるのですが、この場合だと、何から抜けるのですか?抜けるとどこへ行くのですか? (7)・・・この場合だと、メッセージボックスには何が表示されるのですか? (8)・・・「Resume」はGoToとは何が違うのですか? (9)・・・「プロシージャやブロックを終了する」と本に書いてあるのですが、「Exit」とは何が違うのですか?

  • Access2002:コマンドボタンがうまく設定できません

    使い始めてから2週間目の初心者です。よろしくお願いします。 コマンドボタンウィザードでフォーム上にコマンドボタンを作成したのですが、クリックしても反応しません。 初めは問題なく作成できたのですが、突如としてうまく動作するボタンが作成できなくなってしまいました。 ウィザードで作成した「レコードの検索」ボタンですら無反応です。 あるフォームのイベントプロージャ(?)は以下のようになっています。 (★はコメントです) Option Compare Database Private Sub テスト15:09_Click() End Sub Private Sub 部番一覧→部番詳細フォーム_Click()★←正しく動作しているボタン★ On Error GoTo Err_部番一覧→部番詳細フォーム_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "部番詳細表示" stLinkCriteria = "[部番]=" & "'" & Me![部番] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_部番一覧→部番詳細フォーム_Click: Exit Sub Err_部番一覧→部番詳細フォーム_Click: MsgBox Err.Description Resume Exit_部番一覧→部番詳細フォーム_Click End Sub←★この下に区切り線が表示されません★ Private Sub テスト15:09_Click()★←無反応のボタン。文字色赤になっています★ On Error GoTo Err_テスト15:09_Click Screen.PreviousControl.SetFocus DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 Exit_テスト15:09_Click: Exit Sub Err_テスト15:09_Click: MsgBox Err.Description Resume Exit_テスト15:09_Click End Sub 単純ミスだと思うのですが、原因がわかりません。 どなたかわかりやすく教えいただけないでしょうか。ちなみにVBの知識は皆無です。よろしくお願いします。

専門家に質問してみよう