• ベストアンサー

AccessForm内での警告メッセージ

angel_Zの回答

  • angel_Z
  • ベストアンサー率66% (12/18)
回答No.1

こんにちは。 これではどうですか? Private Sub 率合計_KeyPress(KeyAscii As Integer) If Me!率合計 > 100 Then MsgBox "100を超えました" End If End Sub

関連するQ&A

  • ACCESSで重複チェック後にフォーカスを移動したい

    Private Sub 会社名_AfterUpdate() ACCESS2003です。 フォーム上で入力後(更新後処理)に重複チェックをしています。 重複したときにエラーメッセージを出してフォーカスさせたいのです。 エラーメッセージまでは上手くいくのですが、フォーカスが移動してくれません。 どこが悪いのでしょうか? Private Sub 会社名_AfterUpdate() Dim i As Integer i = DCount("*", "tbl取引先", "会社名 ='" & Me.会社名 & "'") If i = 1 Then MsgBox [会社名] & " は登録済みです。" Me![会社名].SetFocus Cancel = True End If End Sub よろしくお願いします

  • Access2003 四捨五入の方法について

    Access初心者です。ご存知の方がいらっしゃいましたら教えて下さい。 現在以下のようなプロシージャを作成しました。 この計算方法だと小数点が切り捨てとなり、例として1000.5円という金額になった場合、1,000円として 表示されてしまいます。これを1,001円で表示できるようにしたいのですが、どのようなプロシージャを作成 したら良いかご存知の方がいらっしゃいましたら教えて下さい。よろしくお願い致します。 以下プロシージャ Private Sub 課税_AfterUpdate() On Error GoTo 課税_AfterUpdate_Err If (Forms!F_請求書!課税 = 1) Then Forms!F_請求書!消費税率 = 0 End If If (Forms!F_請求書!課税 = 2) Then Forms!F_請求書!消費税率 = 0.05 End If [小計] = Nz(DSum("単価*数量", "Q_請求明細", "[請求番号]=forms![F_請求書]![請求番号]")) [消費税] = Fix([小計] * Nz([消費税率])) [合計] = [小計] + [消費税] 課税_AfterUpdate_Exit: Exit Sub 課税_AfterUpdate_Err: MsgBox Error$ Resume 課税_AfterUpdate_Exit Me.Recalc End Sub

  • ACCESS2000 ボタンメッセージについて

    ACCESS2000を使用しております。 フォームのボタンを押すとレポートが開くようになっています。 フォームのフィールド「終了日」がうるう年の2/28だったら、ボタンを押した時に警告のメッセージが出るようにしたいです。 現在は以下の通り、「終了日」を更新した時にメッセージが出るようにしています。 --- Private Sub 終了日_BeforeUpdate(Cancel As Integer) Const cMsg = "うるう年ですけど、2/29じゃなくて大丈夫ですか?" If Format(Me.終了日.Text, "mdd") = "228" And _ IsLeapYear(Year(Me.終了日.Text)) Then If MsgBox(cMsg, vbYesNo) = vbNo Then Cancel = True End If End If End Sub --- これをボタンの方にも流用しようと思い、(終了日を更新しない状態でもボタンを押すことがある為、その時点でもチェックを掛けたい) 以下を「マウスボタン解放時」に入れてみましたが、エラーが出てしまいました。 --- Private Sub Ctl_新_証書新規_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Const cMsg = "うるう年ですけど、2/29じゃなくて大丈夫ですか?" If Format(Me.終了日.Text, "mdd") = "228" And _ IsLeapYear(Year(Me.終了日.Text)) Then If MsgBox(cMsg, vbYesNo) = vbNo Then Cancel = True End If End If End Sub --- エラー内容は以下の通りです。 実行時エラー'2185' コントロールがフォーカスを取得していない時に、コントロールのプロパティまたはメソッドを参照することはできません。 そのままコピペしたので、値の更新をするとかしないとか、 ボタンを押した場合では関係ないので、その辺がエラーになっているのだと思うのですが、 どこを直したら良いのか分からず、お知恵をお貸し下さい。 要は、ボタンを押した時に警告メッセージを出し、「はい」であればレポートを開き(クリック時に開くマクロが入ってます)、「いいえ」であれば、開かずに元の画面のままが良いです。 宜しくお願いいたします。

    • ベストアンサー
    • Skype
  • VBAに「maqBox」を追加したい

    検索結果フォーム「未来」を開くフォーム「マスター」に配した、コマンドボタンのイベントに下記の記述「OKWaveで過去にアドバイス頂いた」をしています。この記述に「("指定したレコードはありません")」を表示させたいと思います。WEBを参照したりしてやってみましたが上手く出来ませんでした。 ツール:Access2007 フォーム名:未来 Private Sub コマンド27_Click() If Me.CurrentRecord < Me.Recordset.RecordCount Then DoCmd.GoToRecord acDataForm, Me.Name, acNext End If End Sub [やってみたこと「VBA知識なし」] Private Sub コマンド27_Click() If Me.CurrentRecord < Me.Recordset.RecordCount Then DoCmd.GoToRecord acDataForm, Me.Name, acNext End If   MsgBox ("指定したレコードはありません") End Sub 上記の書込だと検索結果のレコードの数だけ移動時にメッセージが出る。 以上ですが、宜しくお願いします。

  • フォームを表示してからメッセージボックスを表示する

    メッセージボックスが表示される前に、フォームを表示させたいです。アクセスです。 ナビゲーションウインドウからフォームをダブルクリックしてフォームを開くのですが、 今のままだとメッセージボックスが表示されてからフォームが表示されてしまいます。 フォームを表示してからメッセージボックスを表示するにはどうすればいいでしょう? Private Sub Form_Open(Cancel As Integer) MsgBox "Form_Open" End Sub だと、先ほど述べたように、メッセージボックスが表示されてからフォームが表示されてしまいます。 フォームを開いたときのイベントは複数あるようで、 Private Sub Form_Activate() MsgBox "Form_Activate" Debug.Print "Form_Activate" End Sub Private Sub Form_Current() MsgBox "Form_Current" Debug.Print "Form_Current" End Sub Private Sub Form_GotFocus() MsgBox "Form_GotFocus" Debug.Print "Form_GotFocus" End Sub Private Sub Form_Open(Cancel As Integer) MsgBox "Form_Open" Debug.Print "Form_Open" End Sub Private Sub Form_Load() MsgBox "Form_Load" Debug.Print "Form_Load" End Sub をすると、 ・Form_Load ・Form_Activate ・Form_GotFocus ・Form_Open ・Form_Current の順に開きますが、やはりフォームが最後に表示されてしまいます。 どうにかして先にフォームを表示させる方法はないでしょうか? ご回答よろしくお願いします。

  • Accessのフォーム その2

    すいません、以前にも同じ質問をしたのですが、私の質問の仕方が悪くてうまくいきませんでした。 回答してくださった方、ありがとうございました! もう一度、詳しく質問しなおします。 顧客データを登録しているのですが、テーブルを元に登録フォームを作成しました。 商品がたくさんあって、4つのコードに分かれています。フォームの中に[A][B][C][D]と4つのコンボボックスを作成し、絞込み検索ができるようにはしました。 しかし、選んだデータの[A]しかテーブルに表示されません。例えば[A]のコンボボックスの中から[1010]を選択、[B]のコンボボックスから選択しようとしても空っぽです。 テーブルを見ると、[A]で選んだ[1010]だけが表示されています。 非連結のときはうまく出てたんですが・・。 もしかして連結列が間違ってるのでしょうか?? 元になるテーブルは Aコード A  Bコード B Aコード Cコード C Bコード Dコード D Cコード この2列目を表示したいのです。(2列目が[1010]など表示したいデータ) 列数はそれぞれ「2」で連結列は「2」です。 更新後処理は以下の通りです。 Private Sub コンボ0_AfterUpdate() Me!コンボ2.Requery End Sub Private Sub コンボ2_AfterUpdate() Me!コンボ4.Requery End Sub Private Sub コンボ4_AfterUpdate() Me!コンボ6.Requery End Sub ぜひよろしくお願いします。

  • アクセス2007 入力済テキストBOXをコンボ変更

    いつもお世話になっております。アクセス初心者です。 エクセルに入力済みの送料(経費)をアクセス2007にインポートし、 入力用のデータファイルを作成しております。 データは、郵送テーブルとメール便テーブルにわけ、それぞれ、別のフォームを作成しました。 フォームは、「ID」「発送日」「送付先」「送付ツール」「単価」「送付数」「合計」「備考」を それぞれテキストボックスにて表示してあります。 データをエクセルからインポートしたため、郵送フォームルも、メール便フォームも、最初からある程度データが入っており、「発送ツール」(定形・定形外・ゆうパック等)のテキストボックスや、「単価」のテキストボックス(80円・160円等)にも、データが入ったままです。 しかし、今後、このフォームを使い、データを追加していく場合、「発送ツール」や、「単価」は、テキストボックスに直接入力ではなく、コンボボックスでプルダウンメニューを表示していくやり方にしたいのですが、変更の仕方がわかりません。 仕様としては、「発送ツール」で、「定形・定形外・ゆうパック」等選んだ場合、「単価」が自動表示されるのではなく、「単価」も「80円・120円・380円」等から任意で選び、ありえない組合せの場合には、メッセージボックスで、「その組合せはできません」のような表示がされるようにしたいのです。 現在、「単価」と「送付数」にはそれぞれ、VBAで以下のプログラムを入力して、「合計」が表示されるようにプログラムしてあります。(見よう見まねで作成し、とりあえず動いてます) Private Sub 送付数_AfterUpdate() If Not IsNull(Me![送付数]) And Not IsNull(Me![単価]) Then Me![合計] = Me![単価] * Me![送付数] ElseIf IsNull(Me![送付数]) Then Me![合計] = Null MsgBox "送付数を入力して下さい" End If End Sub Private Sub 単価_AfterUpdate() If Not IsNull(Me![送付数]) And Not IsNull(Me![単価]) Then Me![合計] = Me![単価] * Me![送付数] ElseIf IsNull(Me![単価]) Then Me![合計] = Null MsgBox "単価を入力してください" End If End Sub 現在、このVBA以外は、クエリも作成しておりません。 (初心者なので、クエリとかも良くわからない。) それで、「単価」や「発送ツール」のデータを残したまま、コンボボックスでプルダウンメニューを新たに作製する方法を教えてください。 よろしくお願いいたします。

  • エクセル VBA OptionButtonからTextBox

    すいません! OptionButtonなら 下記の記述でエラー表示を 簡単にできるのですが これがOptionButtonではなく TextBoxならどのように変化したら 良いのでしょうか? すいません、教えて下さい! Private Sub 記録_Click() Dim i As Integer Dim Cnt As Integer Cnt = 0 For i = 1 To 6 Step 1 If Me.Controls("OptionButton" & i).Value Then Cnt = i Exit For End If Next i If Cnt = 0 Then MsgBox "選択されていません" Exit Sub End If If Me.Controls("Combobox" & Cnt).Value = "" Then MsgBox Me.Controls("OptionButton" & Cnt).Caption & " の内容が選択されていません" Exit Sub End If With 記入フォーム .TextBox5.Value = Me.Controls("OptionButton" & Cnt).Caption .TextBox6.Value = Me.Controls("Combobox" & Cnt).Value End With Unload Me End Sub

  • Accessでのログインについて

    Private Sub txtCountPass_AfterUpdate() Dim TextBoxA As TextBox Dim TextBoxB As TextBox Set TextBoxA = Me.txtNamePass ' Set TextBoxB = Me.txtCountPass Const NamePass = "sample" ' Const CountPass = "1234" If TextBoxA = NamePass Then ' If TextBoxB = CountPass Then ' DoCmd.OpenForm "frm_メニュー" ' DoCmd.Close , "frm_パスワード" Else MsgBox "パスワードが異なります。", vbOKOnly + vbCritical End If Else MsgBox "IDが異なります。", vbOKOnly + vbCritical End If End Sub 上記VBAを使ってログインしようとしているのですが、実行されません。frmの2行が間違っているのでしょうか、それとも他が違うのでしょうか?

  • Accessレポートで1行おきに色を変える

    Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) FontCount = FontCount + 1 If FontCount Mod 2 = 1 Then Me.Section(0).BackColor = 16777215 Else Me.Section(0).BackColor = 16777164 End If End Sub としてみました。 ですが何らかわりなく… 試しに Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) FontCount = FontCount + 1 If FontCount Mod 2 = 1 Then Me.Section(0).BackColor = 16777215 Else Me.Section(0).BackColor = 16777164 End If MsgBox FontCount End Sub としてみたところずーっと「1」が表示され、変数がかわってないようです。 いったいどこがダメなのでしょうか? 確か以前できたはずなのに…(><)