VB5.0でDBGRIDを呼び出し、戻ってきてからメッセージボックスを表示しようとすると、「実行時エラー5 プロシージャの呼び出し、または引数が不正です」が出ます。それもEXEから実行する時だけです。
OSはXPです。
以下のプログラムで、メッセージボックスを表示しなかったら実行時エラーはでません。
F_SelKokyak.Show vbModal
If Wk_Modoru = 0 Then
Set RecUri = MAINdb.OpenRecordset("Select * " & _
" From FT_Uriage " & _
" Where Uri_MiseCode = " & Wk_MiseCode & _
" And Uri_KaisKbn = " & 1 & _
" And Uri_KyakCode = " & Sel_KyakCode & _
" And Uri_UriSbt = " & 0 & _
" And Uri_UriKakKin <> 0" & _
" Order By Uri_UriNo; ")
If RecUri.RecordCount = 0 Then
RecUri.Close
Set RecUri = Nothing
If Wk_KaisKbn = 2 Then
MsgBox "売掛金はありません。", vbCritical, "入力エラー"
F_EigMainInp!txtKyakName2.SetFocus
Exit Sub
End If
End If
No.6ベストアンサー
- 回答日時:
> 元の現象
> は発生します。
> On Errorを最初の行に入れましたが、同じ現象です。
そうですか・・・と言うことは、
「システムのエラー処理自体がおかしくなっている」か、
「(何故か)全然関係ない箇所でエラーが発生している」か、
どちらかでしょうね。
前者なら、私にはお手上げ(「MsgBoxを使うのをあきらめる?」ぐらいしか提案できません)、
後者なら・・・「全コード(全プロシージャ)に、同様に「On Error」と「行ラベル」を入れてみて、実際のエラー発生箇所を探す」ぐらいしか無いと思います。
On Errorを全てのsubに入れ、絞って行ったところ、
全然関係ない箇所でエラーが発生していました。
なんとか解決できました、ありがとうございました。
No.8
- 回答日時:
★1つだけアドバイス
・『MsgBox "売掛金はありません。", vbCritical, "入力エラー"』の行を
『MsgBox("売掛金はありません。", vbCritical, "入力エラー")』とカッコをつけてたらどうなる?
・以上。おわり。
No.7
- 回答日時:
によりますと、Windowsの現行版に対応していないアプリをインストールすると
音が出なくなることがあるようです。
VB5.0はXPには対応していないので、OSの定数テーブルが壊れたのでは
ないかと推測します。
vbCritical定数と"入力エラー"を指定せず、単なるMsgBoxだけでも、
エラーになりますでしょうか?
No.5
- 回答日時:
> On Errorにもひっかからず、エラーメッセージは出ませんでした。
元の現象
> メッセージボックスが表示される前にエラーが出ます。
> その後、エラーを閉じると、メッセージボックスが表示され、
> メッセージボックスを閉じると、プログラムが終了します。
は、発生したんでしょうか?それとも、コレも発生しなくなった?
発生するなら・・・
別の箇所でエラーの可能性がありますが・・・
「On Error」はSub(Function?)の最初の方に入れたんでしょうか?
#違う場合、「On Error」をSubの最初の行として入れても同じでしょうか?
#コレで駄目となら・・・申し訳ありませんが、私はGiveUpです・・・
この回答への補足
>元の現象
>> メッセージボックスが表示される前にエラーが出ます。
>> その後、エラーを閉じると、メッセージボックスが表示され、
>> メッセージボックスを閉じると、プログラムが終了します。
は発生します。
On Errorを最初の行に入れましたが、同じ現象です。
No.3
- 回答日時:
> メッセージボックスが表示される前にエラーが出ます。
> その後、エラーを閉じると、メッセージボックスが表示され、
> メッセージボックスを閉じると、プログラムが終了します。
完全に想定外の動作・・・私の手に負えないかも・・・
#VB5+XPの組み合わせは、MSの動作保証外なので、
#組み合わせが原因の不具合だと手の打ち様が無い場合も・・・
とりあえず、
> それもEXEから実行する時だけです。
の時のデバッグ方法。
あ。その前に、1点確認です。
ソースのどこかで、「On Error」の指定をしているところがありますか?
もし、あるなら、先ず、「On Error」の行を全部コメントにしてから実行してみてください。
動作が変わりますか?
#変わった場合、どう変わったか教えてください。
もし、「On Error」が無い、または、あったが、コメントにしても動作が変わらない場合、
コードを以下の様に書き換えてから、実行してみてください。
----------------------------------------------------------
On Error Goto ERRX: ' <= 追加
1: '<=追加(要するに、各行の前に「1:」「2:」・・・と「行ラベル」を付けてください。)
F_SelKokyak.Show vbModal
2: '<=追加
If Wk_Modoru = 0 Then
Set RecUri = MAINdb.OpenRecordset("Select * " & _
" From FT_Uriage " & _
" Where Uri_MiseCode = " & Wk_MiseCode & _
" And Uri_KaisKbn = " & 1 & _
" And Uri_KyakCode = " & Sel_KyakCode & _
" And Uri_UriSbt = " & 0 & _
" And Uri_UriKakKin <> 0" & _
" Order By Uri_UriNo; ")
3: '<=追加
If RecUri.RecordCount = 0 Then
4: '<=追加
RecUri.Close
5: '<=追加
Set RecUri = Nothing
6: '<=追加
If Wk_KaisKbn = 2 Then
7: '<=追加
MsgBox "売掛金はありません。", vbCritical, "入力エラー"
8: '<=追加
F_EigMainInp!txtKyakName2.SetFocus
9: '<=追加
Exit Sub
10: '<=追加
End If
11: '<=追加
End If
12: '<=追加
' 以下は、End Subとかの直前に追加
Exit Sub ' もし、関数の中なら、「Exit Function」
ERRX:
MsgBox "Err:" & Err.Number & "(" & Err.Description & ")on " & Erl
----------------------------------------------------------
で、どのタイミングで、エラーメッセージがでるか教えてください。
この回答への補足
On Errorは書いていません。
ご指示の通りにしましたが、何も変わりません。
On Errorにもひっかからず、エラーメッセージは出ませんでした。
MsgBox という関数は作っていません。
No.2
- 回答日時:
> いいえ、MsgBox "売掛金はありません。
", vbCritical, "入力エラー"を> 入れたらエラーになるんですが、
> はずせばエラーにはならないんです。
つまり、「メッセージボックスが表示されない表示する前にエラーになる)」ってことでしょうか?
それとも、「メッセージボックスは表示されるが、メッセージボックを閉じた後にエラーになる」ってことでしょうか?
後者なら、「MsgBox」の次の行、
つまり「F_EigMainInp!txtKyakName2.SetFocus」でエラーになったのかもしれません。
ちなみに、私は、後者のつもりで回答しました。
#念の為お尋ねしますが・・・「どの行がエラーか」確認してますか?
#デバッグしてますか?
> また、そうだとすると、どうすればいいのでしょうか?
もしそうなら、
> > MsgBox "売掛金はありません。", vbCritical, "入力エラー"
> > F_EigMainInp!txtKyakName2.SetFocus
> この2行の順番を逆にしてみるとか・・・
こうするだけで直る可能性がありますけど・・・
#これで、直らない&デバッグしていない場合、デバッグしてみてください。
#デバッグのやり方がわからないなら、お尋ねください。
この回答への補足
メッセージボックスが表示される前にエラーが出ます。
その後、エラーを閉じると、メッセージボックスが表示され、
メッセージボックスを閉じると、プログラムが終了します。
> > MsgBox "売掛金はありません。", vbCritical, "入力エラー"
> > F_EigMainInp!txtKyakName2.SetFocus
> この2行の順番を逆にしてみるとか・・・
逆にしてみましたが、エラーになります。
デバッグのやりかたを教えていただけますでしょうか。
No.1
- 回答日時:
> F_EigMainInp!txtKyakName2.SetFocus
ここで、エラーってことでしょうか?
フォーカスの移動が間に合っていないのでは?
#フォームがアクティブになっていない・・・
> MsgBox "売掛金はありません。", vbCritical, "入力エラー"
> F_EigMainInp!txtKyakName2.SetFocus
この2行の順番を逆にしてみるとか・・・
この回答への補足
>> F_EigMainInp!txtKyakName2.SetFocus
>ここで、エラーってことでしょうか?
いいえ、MsgBox "売掛金はありません。", vbCritical, "入力エラー"を入れたらエラーになるんですが、はずせばエラーにはならないんです。
>フォーカスの移動が間に合っていないのでは?
>#フォームがアクティブになっていない・・・
これはどう言うことでしょうか?
また、そうだとすると、どうすればいいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Excel(エクセル) R列の1111/11/11以外、且つQ列の×の条件で該当行のAからAE列までオレンジに塗りつぶす 2 2022/07/02 10:18
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
実行時エラー 438 の解決策をお...
-
On ErrorでエラーNoが0
-
お助けください!VBAのファイル...
-
文字列内で括弧を使うには
-
VBA データ(特定値)のある最...
-
マクロの「SaveAs」でエラーが...
-
Filter関数を用いた結果、何も...
-
マクロで"#N/A"のエラー行を削...
-
インポート時のエラー「データ...
-
【VBA】ワークブックを開く時に...
-
ACCESSで値を代入できないとは?
-
【Access】Excelインポート時に...
-
HTMLソースが表示のページのも...
-
VB.net 重複チェックがしたいです
-
エクセルVBA 「On Error GoTo...
-
バッチファイルで、あるスクリ...
-
実行時エラー'-2147467259(8000...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
マクロで"#N/A"のエラー行を削...
-
String""から型'Double'への変...
-
お助けください!VBAのファイル...
-
On ErrorでエラーNoが0
-
【VBA】ワークブックを開く時に...
-
エクセルVBA 「On Error GoTo...
-
文字列内で括弧を使うには
-
マクロの「SaveAs」でエラーが...
-
VBAでfunctionを利用しようとし...
-
VBA データ(特定値)のある最...
-
インポート時のエラー「データ...
-
ACCESSで値を代入できないとは?
-
実行時エラー 438 の解決策をお...
-
実行時エラー'-2147467259(8000...
-
Excel vbaについての質問
-
【VB.NET】 パワポ操作を非表示で
-
メールの件名のセットでエラー...
-
バッチファイルで、あるスクリ...
-
LaTeXのエラーについて(コンパ...
おすすめ情報