数値型の0 と テキスト型の””を同じ扱いにできる??

解決


たけあ  2007-02-13 23:21:40  No: 135284

VB5.0でACCESSのデータを扱っています。

フォーム上に置いたテキストボックス「text1」「text2」「text3」が3つあり、「text1」にIDを入力するとACCESSからデータを取得して「text2」「text3」にデータを表示させ、text1の表示を消したら、text2もtext3も消すようにしたいのですが。
text1の表示を消すと下記コードの  x = Text1.Text  で「型が一致しません」のエラーが発生します。
text1.text =""  で、x= 0 なので型が一致しないのですが

""と0を同じ扱いにすることはできないのでしょうか??
また、他によい方法があれば教えてください。

ACCESSのデザインはこんな感じです。

テーブル:【顧客TBL】
--------------------------------------------
フィールド名    データ型        サイズ     
--------------------------------------------
ID              数値型     (主キー)   
氏名            テキスト型      20文字      
住所            テキスト型      50文字     
-----------------------------------------------

コードはこんな感じです。

’****************************************
Private Sub Text1_Change()

Dim mdb As DAO.Database
Dim mrs As DAO.Recordset
Dim SQL As String
Dim x As integer

 x = Text1.Text   ←ここでエラーが発生。
                    x=0   text1.text ="" なので型が一致しないのです  

'データベースをオープン
Set mdb = OpenDatabase("顧客契約2.mdb")
        
'選択クエリーを取得
SQL = "select * from 顧客TBL where ID = '" & x & "' "

'条件に一致するレコードを取得
Set mrs = mdb.OpenRecordset(SQL, dbOpenDynaset)   
      
       Text2.Text = mrs.Fields("顧客氏名")
       Text3.Text = mrs.Fields("住所")
 

       If text1.text = 0 then
          text2.text =""
          text3.text =""

        End If

'オブジェクトを閉じる
mrs.Close
mdb.Close

'オブジェクトを解放
Set mrs = Nothing
Set mdb = Nothing

End Sub


大吉末吉  2007-02-14 00:00:41  No: 135285

単純に、
-------------------------
If Text1.Text = "" Then
 X = 0
Else
 x = Text1.Text
End If
-------------------------
と、するとか・・・

#厳密には、「数値に変換可能か?」「Integerの範囲に納まるか」とかのチェックが必要なんでしょうけど・・・


たけあ  2007-02-14 01:04:42  No: 135286

大吉末吉様
度々ありがとうござあいます。
初歩的なことで申し訳ないです。
無事解決できました!
ありがとうございました!


LESIA  2007-02-14 15:03:33  No: 135287

解決したようですが、
x = Val(Text1.Text)
とすれば、1行で出来ます。
また、この場合は、テキストボックスに""以外にも、"ABC"等の文字が
入っていた場合も0になります。


たけあ  2007-02-14 18:39:15  No: 135288

LESIA様
ありがとうございます!
試してみたところできました!
ほんとに勉強になります(~~)


魔界の仮面弁士  2007-02-14 21:59:40  No: 135289

ちなみに、Val 関数による変換だとしても、
  x = Val("1.23%")
のような変換を行えば、やはりエラーになりますので、
いずれにしても入力内容のチェックは必須です。>たけあさん


たけあ  2007-02-14 23:00:08  No: 135290

魔界の仮面弁士様
はい。ありがとうございます!!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加