
Accessのフォームにて、
あるテキストボックスに入力した値を元に計算を
行い、別のテキストボックスに入れる
という処理を行っていますが、
その際、結果としては出るのですが、
以下のようなエラーメッセージがでて、
原因を探っていますが良く分からない状態です。
エラーメッセージ:
実行時エラー '2115'
"BeforeUpdate/更新前処理"プロパティまたは、
このフィールドの"ValidationRule/入力規制"プロパティ
にせっていしたマクロまたは関数のためにこのフィールドのデータを保存できません。
該当するテキストボックスのプロパティに
これら2箇所は一切何も指定していません。
また、エラーが発生しているにもかかわらず、
結果が出ているという点も腑に落ちません。
また、DoCmd.SetWarnings False
によるメッセージ表示抑制も試してみましたが、
効果がありません。
ソース:
TextBox1:結果出力先
TextBox2:このソースの呼び出し側(AfterUpdate)
wkVal1、wkVal2:Long型変数
BkMcnt:任意数(integer型:1~12の間)
BeforVal:任意数(Public,Long型)
(前略:BkMcntの算出)
TextBox1.SetFocus
If TextBox1.Text = "" Then
wkVal1 = 0
Else
wkVal1 = CLng(TextBox1.Text)
End If
TextBox2.SetFocus
If txtJis5.Text = "" Then
wkVal2 = 0
Else
wkVal2 = CLng(TextBox2.Text)
End If
AveKosu = (wkVal1 * BkMcnt) - BeforVal
AveKosu = AveKosu + wkVal2
AveKosu = Fix((AveKosu / BkMcnt) + 0.5)
sAveKosu = CStr(AveKosu)
TextBox1.SetFocus
TextBox1.Text = sAveKosu '←(*)
TextBox2.SetFocus
(*)エラー時のデバッグボタンで、
その原因とされている個所
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
TextBox1.SetFocus
TextBox1.Text = sAveKosu '←(*)
の部分で、
'TextBox1.SetFocus
TextBox1 = sAveKosu
にしてみたら直りませんか?
この回答への補足
> 'TextBox1.SetFocus
> TextBox1 = sAveKosu
この場合、
フォーカスがTextBox2に残ったままになってますので、
フォーカス位置が間違っているという
エラーになります。
Accessの場合は、値代入は、ExcelやVBと異なり、
フォーカス位置をシビアに判断してるようですので。
こちらで、失礼しますが、
自己解決いたしました。
修正個所:エラー発生個所
TextBox1.Text = sAveKosu
↓
TextBox1.Value = sAveKosu
以上のようにするとエラーが出ないようです。
お騒がせいたしました。
No.1
- 回答日時:
両方のテキストボックスのデータ型はあってるのでしょうか。
データ型は何ですか?この回答への補足
テキストボックスの書式、データ関連のプロパティは
特に指定していません。(デフォルトのまま)
定型入力、書式当は空白です。
よって、恐らくVariant型だろうとは思います。
コントロールの指定は行っていて、
テーブルのデータは数値です。
.Textプロパティで取得してた時点では、
文字列になってます。(""囲み)
なお、Access97 + Win98/Win2000です。
ExcelやVBでは類似処理は特に問題ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Access コンボボックスの値をクリアしたい。
PowerPoint(パワーポイント)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
Accessの更新後処理で特定の条件を満たしている場合、フォーカスを移動させない方法
PowerPoint(パワーポイント)
-
-
4
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
5
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
6
ACCESS97 実行時エラー '2455'に関して
Access(アクセス)
-
7
AccessVBA SetFocusとGoToControlが正常に作動しない
Access(アクセス)
-
8
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
9
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
10
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
11
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
12
Access VBA の BeforeUpdate と AfterUpdate に違い
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
実行時エラー48発生時のDLL特定...
-
実行時エラー -'-2147417848
-
Outlook.ApplicationをCreateOb...
-
VBA IEの操作 ClassNameでエラ...
-
【マクロ】エラー【#DIV/0!】が...
-
なぜこんな初歩的なVBAのIf文で...
-
[Delphi] データセットは閉じて...
-
VBAで、定数式が必要ですのエラ...
-
マクロについて教えてください...
-
エクセルエラー13型が一致しま...
-
VBAで実行時エラー'424' オブジ...
-
ASP.NET OleDbConnectionが定義...
-
VBAのエラー発生場所をメッセー...
-
実行時エラー3001「引数が間違...
-
『実行時エラー 5 プロシージャ...
-
【Excel VBA】マクロをボタンに...
-
excel vbaでレート取得について...
-
VB6+SQL サーバー 2000 で 実行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
【マクロ】エラー【#DIV/0!】が...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
実行時エラー -'-2147417848
-
実行時エラー48発生時のDLL特定...
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
EXCEL VBAマクロ中断でデバッグ...
-
実行時エラー3001「引数が間違...
-
EXCEL/VBAで、自分のPCだけエラ...
-
VB6+SQL サーバー 2000 で 実行...
-
VBAのエラー発生場所をメッセー...
-
ADODB.Streamを使用してUTF-8を...
-
【Excel VBA】マクロをボタンに...
-
OLEDB.NETで接続できない
-
なぜエラーになるのでしょうか...
-
INSERT INTOステートメント構文...
-
Outlook.ApplicationをCreateOb...
おすすめ情報