[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/07/29(Fri) 22:34
投稿者名:ゆうり
Eメール:
URL :
タイトル:
テキストフィールドのEnterキー実行による値取得について
投稿3回目、まだまだ超初心者です。よろしく御願いいたします。

VBのバージョンは、5.0を使用しております。

2つのテキストフィールド(以下の例:数量・金額)において、
数量フィールドに値を入力後、Enterキーを実行することで、
金額フィールドに値を取得させることを実現しようとしております。

今、作成している画面の定義(プロパティ)は、次のとおりです。
 (説明都合上、関連しそうな部分のみ記述します)

(1)数量フィールド(text_box)
  オブジェクト名:Txt_suryo 
  maxlength :3
(2)金額フィールド(text_box)
  オブジェクト名:Txt_kingaku
  maxlength :12

以下のコーディングで試してみました。
  
'-------------------------------------
Private Sub Txt_suryo_KeyPress(KeyAscii As Integer)

    Dim tanka As Double     '単価
    Dim suryo As Integer     '数量
    Dim kingaku As Double   '金額

    suryo = Val(Txt_suryo)

    If KeyAscii = vbKeyReturn Then
       kingaku = suryo * wk_tanka  '左記のwk_tankaは別ルーチンで取得済
       Txt_kingaku.Text = kingaku
         :
         :
'-------------------------------------

数量フィールドに、2ケタの数値(例:99)迄、入力した
場合(入力しEnterキー実行)、99*単価 が計算された値が、
金額フィールドに表示されます。
但し、数量フィールドに3桁を入力(例:100)すると、
Enterキー実行で、金額フィールドに値がセットされません。
数量フィールドには、3ケタ迄で入力制限させたく、
maxlengthを3と設定しております。

初歩的なつまずきなのかもしれませんが、改善の手ほどきを
いただきたく、よろしく御願いいたします。

投稿時間:2005/07/29(Fri) 23:09
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: テキストフィールドのEnterキー実行による値取得について
> Enterキー実行で、金額フィールドに値がセットされません。
実はそれは、VB5の有名なバグの一つなのです。
回避方法等は、下記の Knowledge Base を参照してみてください。
hhttp://support.microsoft.com/kb/410770/


> 初歩的なつまずきなのかもしれませんが
初歩的というわけではありませんが、VB6では再現しない「VB5固有の現象」だった事もあって、
VB.NET時代の今となっては、かえって情報が集めにくかったかもしれませんね。

VB6向けサイトなら、今でも数多く見られますが、VB5以下を扱ったWebサイト等は、
かなりの数が閉鎖しているみたいですし。


まだまだ超初心者、との事ですので、参考までに、VB5向けの「よくある質問」のサイトを
紹介しておきます。今回の件とは関係無い情報ですが、時間のある時に読んでみてください。
hhttp://www.microsoft.com/japan/msdn/vs_previous/vbasic/faq/default.htm

また、先に紹介した Knowledge Base の方も、一通り読まれておくことをおすすめします。
[技術情報の検索]画面から、対象製品として[その他の製品] - [Visual Basic 5.0]を選んで
検索すると、VB5向けの情報を得ることができますよ。

投稿時間:2005/08/02(Tue) 22:07
投稿者名:ゆうり
Eメール:
URL :
タイトル:
【解決⇒お礼】Re^2: テキストフィールドのEnterキー実行による値取得について
早々にご返信をいただいておりながら、お礼も出来ず申し訳ありませんでした。
 ※お恥ずかしながら、風邪をこじらせ寝込んでおりました。

いただいた情報にて、実現に辿りつけました。
 ・フォームの KeyPreview プロパティを True に設定
 ・KeyPress を KeyDownにて代用

本当にありがとうございました。
参考にいただいたVB5.0のサイトも今後活用させていただきます。