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

このQ&Aのポイント
  • 100問以上になった場合に終了メッセージを表示したいが、101番号は存在しないため、どのように実装するか悩んでいます。
  • 質問フォームの次のレコードに進む際に、現在の番号が100と等しい場合に終了メッセージを表示する処理を実装したいです。
  • 次のレコードに進むボタンをクリックした際、番号が100になった場合に終了メッセージを表示したいのですが、どのように記述すればよいでしょうか。
回答を見る
  • ベストアンサー

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

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

  • ベストアンサー
  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.1

DoCmd.GoToRecord acForm, "F_さあやってみよう", acNext の前で判定するのではどうですか? 頑張ってくださいヽ(^。^)ノ

lionmayumi
質問者

お礼

ありがとうございますm(__)m できました!! 助かります(^^♪

その他の回答 (1)

  • s-isyuto
  • ベストアンサー率22% (29/127)
回答No.2

FOR文で・・・

関連するQ&A

  • アクセスの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 一連の流れについて,ご解説ください。よろしくお願いいたします。

  • 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 って書いたのですが、最後のレコードまで行った後 「次へ」をクリックすると実行時エラーになってしまいます。 移動できませんとかメッセージで逃げたいのですがどうすればいいのでしょうか? お願いします。

  • access2000設定について

    access2000で下記のような設定をしています。 フォーム画面より、表示ボタンをクリックすると プレビュー状態でそのままで、画面に表示されません。どこが悪いのでしょうか・ Private Sub cmd表示_Click() DoCmd.Maximize If gOnErrorCtl Then On Error GoTo Err_cmd表示_Click lblStatus.Caption = "総勘定元帳をプレビュー表示します" Call PrintSokanjo If RtnCd Then lblStatus.Caption = "プレビュー中 . . ." DoCmd.OpenReport "R_総勘定元帳出力用変更", acViewPreview lblStatus.Caption = "総勘定元帳プレビュー終了" Else MsgBox "印刷は中止されました", vbOKOnly, AppName End If Exit_cmd表示_Click: Exit Sub Err_cmd表示_Click: Resume Exit_cmd表示_Click End Sub

  • レコード移動について

    単票フォームで何件かレコードがあります。 それを DoCmd.GoToRecord , , acNext で1つずつ移動させ、今何番目のデータなのか?をメッセージで出し、 最後のレコードになったら「最後のレーコード」というメッセージの後に Exit Sub させたいのですが... F8 で1つ1つコンパイルさせるとできるのですが、 データベース画面から直接フォームをDBCLして開こうとすると いきなり「最後のレコード」になってしまいます。 記述のが悪いのでしょうか?それともフォーム自体が悪いのでしょうか? 教えてください Private Sub Form_Current() If Me.CurrentRecord >= Me.RecordsetClone.RecordCount Then MsgBox "最後のレコード" Exit Sub Else MsgBox "途中のレコード" DoCmd.GoToRecord , , acNext   End If End Sub

  • サブ画面(参照のみ)を表示しつつ、メインのフォームの操作をしたい

    Private Sub cmd14検索_Click() On Error GoTo Err_cmd14検索_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "F社員データ" stLinkCriteria = "[所属名称2]=" & "'" & Me![所属名称] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmd14検索_Click: Exit Sub Err_cmd14検索_Click: MsgBox Err.Description Resume Exit_cmd14検索_Click End Sub という操作でメイン画面(フォーム)を開きます。 そして、これと同時に、サブ画面(参照のみ)としてもうひとつ画面を表示だけさせておきたいのですが、何かよい方法はありませんか? ちなみに、このコードは、自分が書いたものではなく、ツールボックスのコントロールウィザードで作成したものです。 なので、コードは正直書けません。 が、なんとかよい方法があれば教えてください。 宜しくお願い致します。

  • 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 終了日を入力したら次のレコードの開始日に終了日の翌日が自動的に入力されるようにしたいです。 宜しくお願いします!!

  • 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 で次のレコードを表示したい

    <環境>access2007 フォームに連結のコントロールと「次へ」ボタンを配置しています。 「次へ」ボタンは次のレコードを表示する為のボタンです。 ボタンウィザードを使用したところ、以下のような動作をしました。 レコード件数は3件あると過程します。 (1)次へボタンを押下するごとに、1/3、2/3、3/3まで移動。 (2)3/3を表示している状態で、次へボタンを押下すると  新規のレコードへ移動 4/4が表示される。 (3)(2)の状態で次へボタンを押下すると、「次のレコードが存在しません」 私がやりたいことは、3/3の状態で次へボタンを押下しても、新規のレコードへ移動せず、 「次のレコードが存在しません」とメッセージを出すことです。 そこで以下のようにコーディングしました。 しかし、いまいちって感じなのでいい案がありましたらご教授お願いします。 Private Sub BTN_次へ_Click() On Error GoTo Err_Click DoCmd.Echo False DoCmd.GoToRecord , , acNext, 2 DoCmd.GoToRecord , , acPrevious DoCmd.Echo True Exit Sub Err_Click: MsgBox Err.Description DoCmd.Echo True End Sub

  • アクセスのフォームからレコード入力空欄回避のVBA

    アクセス初心者です。 帳票式フォームからテーブルへのレコード入力において、次のレコード入力ボタンで空欄を防止するためのVBAを作っていますが、うまく行きません。空欄があれば警告は出ますがそのままテーブルへ記録されてしまいます。 テーブルに記録されずに空欄が入力できるようにするにはどうすればよいのでしょうか? また、次を入力するときにフォームの製品名の内容だけ消えずに残したいのですが、そのプログラムについても教えていただきたいです。 なかなかうまく行かずに大変困っています。 どなたかVBAの達人の方、初心者にわかりやすくお教え下さい。 「入力内容を登録して次を入力」ボタンで作ったVBAは次の通りです。 つぎはぎなので、不要なプログラムもあるかもしれません。 Private Sub コマンド9次のレコードに_Click() On Error GoTo Err_コマンド9次のレコードに_Click DoCmd.GoToRecord , , acNext Exit_コマンド9次のレコードに_Click: Exit Sub Dim Rst As DAO.Recordset Set Rst = CurrentDb.OpenRecordset("T_指定材料表", dbOpenTable) With Rst .AddNew .Fields("製品名") = Me!製品名 .Fields("回路記号") = Me!回路記号 .Fields("部品名") = Me!部品名 .Fields("員数") = Me!員数 .Update If IsNull(Me!製品名) Then MsgBox ("製品名が空欄です。") Resume Exit_コマンド9次のレコードに_Click End If If IsNull(Me!回路記号) Then MsgBox ("回路記号が空欄です。") Resume Exit_コマンド9次のレコードに_Click End If If IsNull(Me!部品名) Then MsgBox ("部品名が空欄です。") Resume Exit_コマンド9次のレコードに_Click End If If IsNull(Me!員数) Then MsgBox ("員数が空欄です。") Resume Exit_コマンド9次のレコードに_Click End If End With On Error Resume Next DoCmd.GoToRecord DataForm, "T_指定材料表", acNew Rst.Close Set Rst = Nothing Call ClearControls End Sub

  • アクセスにて検索フォームを作りたい

    お世話になります。 アクセス初心者です。 会社名検索フォームに会社名を入力して表示コマンドをクリックすると 会社フォームの入力した会社が表示されるようにしたいのです。 現在は、表示コマンドをクリックすると会社フォームが開きます。 どの会社名を打ち込んでもNo.1のレコードしか開きません。 つまり会社フォームが開く という指示をしているだけです。 コードなど全く分かりません。 ただ、本を見て真似て下記の通り入力してみました。 間違っているor足りない ということはわかっていますが、 どう入力すれば良いのかわかりません。 教えて下さい。よろしくお願いいたします。 Private Sub cmd表示_Click() On Error GoTo Err_cmd表示_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "会社フォーム" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmd表示_Click: Exit Sub Err_cmd表示_Click: MsgBox Err.Description Resume Exit_cmd表示_Click End Sub

専門家に質問してみよう