Access 諸条件のもとでボタンとメッセージを設定したい

このQ&Aのポイント
  • フォーム入力の途中時にメッセージの表示&メッセージに指定された“保存ボタン”と“キャンセルボタン”を付けたい
  • 種別コードを入力するとコードが自動的に入力され、固有コードが入力されるように設定したい
  • メッセージを表示して保存ボタンかキャンセルボタンを押さないと書名以降のデータの入力ができないように設定したい
回答を見る
  • ベストアンサー

Access 諸条件のもとでボタンとメッセージを設定したい

フォーム入力の途中時にメッセージの表示&メッセージに指定された“保存ボタン”と“キャンセルボタン”を付けたい とあるデータ入力フォームなるものを作りました。 実物に即して下記に表示してあります。 それをもとに(1)~(3)の質問をさせていただきます。 フォーム名『雑誌目録 ============(ここから)======================================= 種別コード (→ラベル) * (→テキストボックス) コード * 固有コード (上記の2つのコードを組み合わせたもの) ****** 雑誌名 ***** 著者 **** 出版 **** 発刊 **** ============(ここまで)======================================= 種別コード(アルファベット大文字1字:A~H)を入れると 自動的にコード(数値5桁以下)が入力され、tabキーを 押すと固有コード(アルファベット1文字+5桁数値=6桁)が 入力されるように予め設定されています。 そこで質問です。 (1)上記の操作が終わり確定させると、4段目の“書名”以降の データを入力する前に、メッセージとして “コードを確定させても宜しい場合は「保存ボタン」を、 そうでない場合は「キャンセルボタン」を押してください”という メッセージを表示させたいのです。 (2)「保存」か「キャンセル」を押さないことには書名以降のデータの入力が 出来ないような設定にしたいのです。 (3)当然ながらフォームフッターに「保存」と「キャンセル」のボタンを設定したいです。 以上の3つの設定方法を教えていただけないでしょうか? お願い 順不同なので先にボタンから作ったりしたほうがやりやすいとかアドバイスがあると助かります! あと細かい指示(例:“種別コード”のテキストボックスで右クリックでプロパティを出し、“すべて”のタブの中にある“更新後処理”のところでトグルボタンをクリックする)があればあるほど有難いです。 無理言ってすみません。改めて宜しくお願いします。

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

  • ベストアンサー
  • tazukadan
  • ベストアンサー率68% (15/22)
回答No.2

A1です。 >上記2点はどのようにすればよいのでしょうか? それを書く気力がないのでアイディアのみ、ということなのです。 どう実現するかはあなた次第で、ということで。 また、サイトを当たっているとのことですが、Accessの基礎やVBAの基礎がある程度理解できて、やりたいことを実現する手法を調べるのでしたらさまざまなサイトは有益です。 しかし、始めたばかりであるならば、入門用の書籍でじっくり勉強される事をおすすめします。 手っ取り早くソースコードを手に入れてもなんの意味もありません。 作ったのはあなたのだから、直すのもあなたです。 そのとき意味がわからなければ作ったとき以上の苦労をします。 厳しいことを言うようですが、それが一番の近道です。 健闘を祈ります。

nikomasa
質問者

お礼

有難うございました。 やり方はいろいろ自分なり捉えております。 ただ他サイトにて出会ったとしてもそれはそれで私のやり方の一つであることやこ、こういった質問の繰り返しにて自身の知識を増やすやり方があることをご理解ください。 もしそれがご気分を害すようならば、今後スルーしていただいても構いません。 貴重なコメントありがとうございました。 No.2のような荒らしコメントじゃなくて助かっています。

その他の回答 (1)

  • tazukadan
  • ベストアンサー率68% (15/22)
回答No.1

アイディアとして書きます。 フォームを2つに分けて、 「コード入力と確定フォーム」 ------------------------------------------------------------ 種別コード コード 固有コード ------------------------------------------------------------ 保存       キャンセル ここで保存、を押されたら、次のフォームをダイアログ(次のフォーム以外はカーソルが移らないモード)で表示 「詳細入力フォーム」 ------------------------------------------------------------ 雑誌名 著者 出版 発刊 ------------------------------------------------------------ 保存       キャンセル ここで保存、を押されたら全体のデータを保存。 詳細入力フォームに、前のフォームのコード情報を表示させてやると親切かもしれません。

nikomasa
質問者

補足

一応原則として1つのフォームで作るように指示されているのですが・・・。 でも考慮したいと思います。 ちなみに理論はわかりますが実践(→コードやどこに挿入すべきか)が判らなくて困っています。 先ほどから色々とサイトを当たってはいるのですが・・・。 >ここで保存、を押されたら、次のフォームをダイアログ(次のフォーム以外はカーソルが移らないモード)で表示 >ここで保存、を押されたら全体のデータを保存。 詳細入力フォームに、前のフォームのコード情報を表示させてやると親切かもしれません。 上記2点はどのようにすればよいのでしょうか? (参考)下記のVBAって使えますでしょうか? たまたまサイトにあったのを今回のテーブルに即して修正したのですが、なんせどこに適用すればいいのか・・・。 Private Sub 種別コード_BeforeUpdate(Cancel As Integer) Dim Result As Integer Result = MsgBox("保存しますか?", vbYesNoCancel + vbDefaultButton3 + vbExclamation, "保存の指示") Select Case Result Case vbYes [はい] のボタンが押されたときの処理 Case vbNo [いいえ] のボタンが押されたときの処理 Case vbCancel [キャンセル] のボタンが押されたときの処理 End Select End Sub

関連するQ&A

  • Accessでエラーメッセージの表示を消したい

    いつもお世話になります。 また知恵をお貸し願えませんか。  テーブルのデータをキーを指定して呼び出し修正して更新するフォームを作成しました。 修正をしたあとの処理のため「更新」ボタンと「キャンセル」ボタンを設定しました。  修正を入力したあとに「キャンセル」ボタンをクリックした場合は正常に処理されるのですが、 何も修正入力せずに「キャンセル」ボタンをクリックすると(内容を確認したいだけ、違うレコードを 呼び出した等)   コマンドまたはアクション’元に戻す’は無効です というエラーメッセージが表示されます。 OKをクリックすれば処理は進められるのですが、できればエラーメッセージは表示させたくないと 思います。  「キャンセル」ボタンのプロパティでクリック時の[埋め込みマクロ]で下記のように指定しています。    条件        アクション        引数 エラー時        次、            コマンドの実行    元に戻す [MacroError]<>0 メッセージボックス  =[MacroError],[Description],はい,なし            閉じる         ,,確認 元に戻すがエラーになっているので 閉じる 以外を消去してところ エラーメッセージは表示されませんでしたが、修正を行ったあとに「キャンセル」ボタンを クリックしてもレコードの内容が変更されていたため元に戻しました。 どのように指定すればよいでしょうか

  • Access2003 ~入力のみ可能なフォームを作成したい~

    Access2003 ~入力のみ可能なフォームを作成したい~ データ入力用のフォームを作っているのですが、テーブル上の既存のデータに対しても 編集が可能になっているので、これを出来ないようしたいのですが、どのように操作すればよいのでしょうか? 作りたいものは次のいずれかです。 (1)既存のデータは参照のみ可能で新規エントリー可能。 (2)既存のデータは表示させずに、完全に入力しかできないフォーム。 ●さらに入力後に、データを登録するかキャンセルするか を行うボタンを設定したい。 ※入力しただけではデータが保存されないようにしたい。 よろしくお願い致します。

  • メッセージボックスのボタンのフォーカスを設定したい

    ご質問させて頂きます。 Javascriptにてメッセージボックス表示時に、OKボタンとキャンセルボタンを設定した場合に、デフォルトでキャンセルボタンにフォーカスを当てたいと思っています。 設定方法をご存知の方がみえましたらご教授下さい。

  • ACCESSのフォーム

    はじめまして。 個人データの管理でACCESSで名簿入力をしています。 入力のフォームを開く際に、 Private Sub Form_Open(Cancel As Integer) Dim Textname As TextBox Dim strmsg As String Dim varname As Variant Set Textname = Me.入力者表示 strmsg = "入力者氏名を入力して下さい" varname = InputBox(strmsg) '入力なき時は、フォームオープンをキャンセルします。 If varname = "" Then Cancel = True End If Textname = varname End Sub として、入力者の氏名を入力しています。 詳細は作成者でないので分かりかねますが、 フォームで非連結のテキストボックスを作成して、 なにかしら表示ができるようになっているみたいです。 これはフォームを開く際に出てきた小さい窓に一度だけ入力者氏名を 入力したら、そのままフォームを閉じるまでその氏名が反映されます。 現在、入力するものにコードというものがあるのですが、これも同じようにできないかと思っています。一日のデータ入力作業では 基本同じコードを使用し、一回一回コードを入力していました。 やはり人間の手によるものですから間違いがあり、 違うコードを入力してしまうと行方不明になってしまうのです。 コードも上記の入力者氏名と同じように、 フォームを開く際に出てくる小窓での入力は可能でしょうか? ちなみに現在商品コードを入力したら、コードの種別タイトルという ものが自動で出力される仕組みになっています。 それも反映されないといけないのです。 なにかお知恵を拝借させていただければと思います。 足りない情報があればご指摘ください。 宜しくお願いいたします。

  • ACCESS フォーム上での条件設定

    どなたかお知恵をお貸しください。 Access2000 検索用のフォームを作成しました。 A・B・C・D・E・Fというフィールドがあり、それらのフィールドを 含むデータ形式のフォームが作成されています。 やりたいことは、フォームにテキストボックスを5つ配置し それぞれ(A・B・C・D・E・Fというフィールドに対する)の条件 を入力して、実行(コマンドボタン)をクリックすると 条件に一致したフォームが表示されてくるようにしたいのです。 ただし、条件が入力されない場合もあります。 (5つのうち1つだけ条件が入る場合など) 初心者などでどのように設定すればいいのか分かりません。 どなたかお力をお貸しください。 よろしくお願いします。

  • access フォームについて

    access2003にて登録フォームを作成しています。 このフォーム内に入力したデータを登録ボタンを押し、「登録しますか」のメッセージに 「いいえ」とすれば保存せずにこのフォームを閉じる。 「キャンセル」とすれば保存せずにフォームに戻る。 「はい」とすれば保存して閉じたいです。 しかし、以下の式を実行すると 「いいえ」はバッチリ希望通りに動くのですが、 「キャンセル」をすると保存されてフォームに戻り、 「はい」とすると保存されずにフォームが閉じられてしまいます。 何がまずいのでしょうか・・・。 ----- Private Sub Form_BeforeUpdate(Cancel As Integer) Dim Ret As Integer Ret = MsgBox("登録しますか?" & vbCrLf & " " & vbCrLf & "「いいえ」を選択すると保存せず閉じます", vbYesNoCancel) '「いいえ」を選択したら、保存せずに閉じる If Ret = vbNo Then DoCmd.Close acForm, "振返りデータ", acSaveNo '「キャンセル」を選択したら、保存せずにフォームに戻る Else If Ret = vbCancel Then Else DoCmd.Close acForm, "振返りデータ", acSaveYes End If End If End Sub

  • ボタンを押すごとに違ったメッセージを表示したい

     プログラミング初心者です。Visual Studioを用いてフォームを作り、C#でコードを組むことになりました。フォームは単純で、3つのボタンがあるだけです。ボタンは1度しか押せなくしてあります。 (その1)任意のボタンを押すとメッセージボックス"A"が現れ、次に残りの2つのうちどれかを押すと新たにメッセージ"B"が、最後のひとつではメッセージ"C"が表示されるようにしたいです。 (その2)応用としてボタンの数を100個に増やし、任意のボタンを1つ押すごとにA→B→C→A→B→Cとメッセージボックスの表示がループして切り替わるようにもしたいです。  ボタン1を押した時にAが、2を押すとBが表示されるという単純なコードなら分かるのですが、上記のような複雑な場合が入門サイトを見てもわかりません。メソッドの名前だけでも良いので、ヒントを教えて下さい。

  • アクセス(access)のクエリ、リレーションシップについて

    アクセス(access)のクエリ、リレーションシップについて 過去の質問を見ましたが、該当が内容なので質問いたします。 現在アクセスでシステムを作成中です。 種別マスタ・・・種別CD(主キー)、種別名 求職ファイル・・・ここに希望種別1、希望種別2と入力させたい。画面では種別名もそれぞれ表示させます。 しかし、2つのファイルをリレーションシップ設定するところでとどまっています。 1つ目は通常通りできますが、2つ目を設定しようとすると、「既にリレーションシップは設定済み」メッセージが表示されます。  それでも「いいえ」で無理やり設定すると、種別マスタ_1というファイルが表示されます。(この件に関しては過去の質問にあったようですが・・・)  しかし、クエリを作ると、種別名を設定しても、データ自体が1件も表示されなくなりました。(実データはあります)種別2のCDや名称を削除すると、通常通り全てのデータと名称が表示されます。 <解決希望項目> 1)上記のように、1つのファイルに同じ項目を2つリレーションシップで設定する事は可能でしょうか? 2)また、後半のように2つのコードそれぞれの名称を表示させる事は、通常の方法では無理のようですが、どうすればいいのでしょうか? 期日が迫っているのですが、基本的な部分でゆきずまっているもので、どうぞよろしくお願いします。m(__)m

  • ACCESSキャンセル時の確認メッセージを非表示に

    顧客情報を入力する単票フォームを作成しています。 データが勝手に書き換わってしまわないように、 更新確認メッセージを表示させ、 キャンセルが押された場合は、編集を取り消す。ということがしたいのです。 現在、ある本の例を元に下記の記述をしています。 ------------------------------ Private Sub Form_BeforeUpdate(Cancel As Integer) Dim myans As Integer myans = MsgBox("レコードを更新します。よろしいですか?", vbOKCancel + vbQuestion, "更新確認") If myans = vbCancel Then Cancel = True Me.Undo End If End Sub ------------------------------ キャンセルを押したときに、 このレコードは保存できません。 オブジェクトを閉じてもよろしいですか?と確認メッセージが出てしまいます。 文頭に、DoCmd.SetWarnings Falseなどを入れてみたのですが、ダメでした。 本当は、「登録」というボタンを作成し、 登録が押されたときに上記の処理&レコード更新を行いたいのですが記述がわかりません。 登録ボタンに上記の記述をすると、閉じるを押したときに、 再度、同じ更新確認メッセージが表示されてしまいます。 (1)今の記述で、キャンセル時の確認メッセージを非表示にする (2)登録ボタンにこの動作をつける どちらでも構いません。 よろしくお願いいたします。

  • ACCESS2010テキストボックス値を抽出条件に

    ACCESS2010にて、フォームに作ったテキストボックスの入力値(数字3桁)をクエリの抽出条件にしたいと考えています。 ただ、そのテキストボックスの数が30個の為、クエリデザイン画面の抽出条件欄にorを用いた条件式で設定することが出来ませんでした。(文字数上限超?) そこで、VBAを用いて抽出条件を設定しようと考えているのですが、初心者のため全く勝手が分かりません。VBAでの設定方法やVBA以外での抽出方法があれば教えて頂けないでしょうか。 尚、テキストボックスには商品コード(数字3桁)を入力し、売上データを集計したクエリにおいて、フォームのテキストボックスに入力された複数の商品コードを抽出条件に設定したいと考えております。 以上、どうかお願い致します。