以前にも投稿させていただいたものと同じなのですが、締め切ったあとにまた問題が発生しまして・・・解答していただいた方には申し訳ないのですが今一度知恵をお貸しください!
Private Sub TextBox貸方_Change()
Dim 貸方 As Integer
Tx貸方 = TextBox貸方.value
Select Case Tx貸方
Case 101
TextBox貸方摘要.Text = "現金"
Case 102
TextBox貸方摘要.Text = "当座預金"
・
・
・
Case Else
TextBox借方摘要.Text = "該当コード無し"
End Select
End Sub
としても一度入力してからその入力したコードを消すと
実行エラー13":型が一致しません
と表示されてしまいます。どうすればよいのでしょう???
No.1
- 回答日時:
えーと、まず、コントロールや変数の名前に日本語を使うと、ソース効率がめちゃくちゃ悪くなるので、日本語は控えるようお勧めします。
確かに、わかりやすいのですが。
>実行エラー13":型が一致しません
こういうエラーが出たときは、デバッグを押すと、エラーとなっている行が黄色で表示されますので、その行を補足してください。
これから、VBのエラーで質問するときは、これが基本だと思ってください。
迅速に回答できるかと思います。
>Tx貸方 = TextBox貸方.value
TextBox貸方はテキストボックスだと思うのですが、valueなどというプロパティは持っていません。
型が一致しないようなエラーは、この辺しか見あたりませんが、通常は "メンバが見つかりません" とかいうエラーになるはずです。
いずれにしろ、これだけのコードでは分かりません。
補足をおねがいします。
No.2
- 回答日時:
こんにちは。
itohhといいます。前の質問も見てみましたが、今回の質問の中にあるソースを見ると
前のアドバイスを生かされていないのでしょうか?
もし、生かされているのでしたらそちらのソースを載せていただかないとアドバイスが
出来ないと思いますよ。
No.3
- 回答日時:
Changeイベントを使うとせわしい感じがしますが・・・
変数宣言がよく分かりませんが、TextBox借方摘要はTextBox貸方摘要に変えてあります。
Private Sub TextBox貸方_Change()
Dim 貸方 As Integer
Dim Tx貸方 As Long
With TextBox貸方摘要
If IsNumeric(TextBox貸方.Value) Then
Tx貸方 = TextBox貸方.Value
Select Case Tx貸方
Case 101: .Text = "現金"
Case 102: .Text = "当座預金"
:
:
Case Else: .Text = "該当コード無し"
End Select
Else
.Text = "該当コード無し"
End If
End With
End Sub
No.4ベストアンサー
- 回答日時:
>実行エラー13":型が一致しません
データの型が違っているからです。
「Tx貸方」はInteger型、「TextBox貸方」はおそらくテキストボックスなのでString型となります。
>Tx貸方 = TextBox貸方.value
このときVBは型の自動変換を行ってくれますがいつも変換可能というわけでは有りません。
例えば数字以外や空欄は変換できずにエラーとします。
この場合、IF文を使って振り分ければ良いでしょう。
IF TextBox貸方.Text = "" THEN
Tx貸方 = 0
ELSE
Tx貸方 = TextBox貸方.Text
END IF
No.5
- 回答日時:
次ぎのようにすると上手く行きませんか。
一応テスト済みです。質問の趣旨にずれていますか。
イベントをText1のKeyDownにする。
1文字でも入力したり、削除したりするとこのルーチンへ飛ぶから
If KeyCode = 13で「改行」の時だけ取り出してSelect Case
で判別する。下記では科目表示のテキストボックスをText2に
(面倒くさいと思い)変えました。
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim 貸方 As Integer
Text2.Text = "" ’一度起こったエラー表示等を消す
' MsgBox KeyCode ’毎文字ごとに飛んでくることの実感のため
If KeyCode = 13 Then
Tx貸方 = Text1.Text
Select Case Tx貸方
Case 101
Text2.Text = "現金"
Case 102
Text2.Text = "当座預金"
Case Else
Text2.Text = "該当コード無し"
End Select
End If
End Sub
Tx貸方 = Text1.TextはTx貸方 = Text1.Valueではうまくいきませんでした。
むしろ私が、テキストボックスで「エンタキーを押した時だけ飛んでくるイベント」をどなたかから教えてほしいです。
No.6
- 回答日時:
>TextBox貸方.value
書き方からするとAccessかな?
>実行エラー13":型が一致しません
おそらく
Select Case Tx貸方
の部分でひっかかるのでは?
AccessのテキストボックスはVBのテキストボックスと違って、未入力状態の時、Null値を持ちます。
ですので
1.Nullチェック
2.数値タイプチェック
3.数値によるCASE分けによる処理
といった手順が必要です。
エラーの原因は、Select Case は文字列/数値型に使用すべきなのに、
Tx貸方.Value = Null値
のために発生すると思われます。
'Null値チェック
If IsNull(TextBox貸方.value) Then
'未入力(Null処理)
TextBox貸方摘要.Value = Null
Else
'数値型チェック
If IsNumeric(TextBox貸方.value) Then
Select Case Tx貸方
Case 101
TextBox貸方摘要.Value = "現金"
Case 102
TextBox貸方摘要.Value = "当座預金"
・
・
・
Case Else
TextBox貸方摘要.Value = Null
Call MsgBox("該当コード無し")
End Select
Else
TextBox貸方摘要.Value = Null
Call MsgBox("該当コード無し")
End If
End If
このコードは
http://oshiete1.goo.ne.jp/kotaeru.php3?q=225969
を参考に作成いたしました。
それと、Accessの場合はテキストボックスの値参照や値セットはValueを使用したほうが便利です。
Textだと、フォーカスを持っているとき以外は、値参照できなかったような気が・・・
遠い記憶で、しかも未検証なので、はっきりとは言えませんが・・・
(Accessでなかったらすいません。。。)
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=225969
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
VBAがブレークモードになっ...
-
VBS実行時エラー オブジェクト...
-
なぜこんな初歩的なVBAのIf文で...
-
OLEDB.NETで接続できない
-
プロシージャ名の取得
-
VBで構造体を使うさ際の64k...
-
VB6+SQL サーバー 2000 で 実行...
-
実行時エラー3001「引数が間違...
-
マクロについて教えてください...
-
VBAでESCキーを無効にしたいの...
-
EXCEL VBAマクロ中断でデバッグ...
-
ExcelVBA Range クラスの Page...
-
VBA:「中断モードでは入力でき...
-
VBA アプリケーション定義エラ...
-
【Excel VBA】マクロをボタンに...
-
VB6のDateDiff関数が、お客さん...
-
'Cells'メソッドは失敗しました...
-
1列目の何行目に検索文字がある...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
VBAがブレークモードになっ...
-
なぜこんな初歩的なVBAのIf文で...
-
【Excel VBA】マクロをボタンに...
-
VBSで変数の宣言はできないので...
-
VBS実行時エラー オブジェクト...
-
実行時エラー3001「引数が間違...
-
ExcelVBA Range クラスの Page...
-
ExcelVBAで、ユーザー定義型は...
-
EXCEL VBAマクロ中断でデバッグ...
-
マクロについて教えてください...
-
プロシージャ名の取得
-
ADODB.Streamを使用してUTF-8を...
-
実行時エラー -'-2147417848
-
Outlook.ApplicationをCreateOb...
-
VBAでのエラー
-
なぜエラーになるのでしょうか...
-
VBAのコードがエラーになっ...
-
[Delphi] データセットは閉じて...
おすすめ情報