• ベストアンサー

IF文について

アクセス97での質問です 今、入力フォームを作成してまして、入力チェックのプログラムを作成しているのですが、NULLや文字数等のチェックはうまくいくのですが、どうしてもうまく出来ないのがあるんです それは半角で5文字入力できるテキストボックスがあって その先頭の一文字が半角カナじゃない時にエラーを出したいんです 他のエラーチェックもIF文を使ってやっているので、同じようにIF文で作りたいのですが、いい方法が思い浮かびません わかる方がいらっしゃいましたら教えていただけませんか? 宜しくお願いします

  • fuuga
  • お礼率82% (32/39)

質問者が選んだベストアンサー

  • ベストアンサー
  • laputart
  • ベストアンサー率34% (288/843)
回答No.2

先頭の一文字が半角カナじゃない時について説明します。 先頭の1文字 left(Text1,1) 先頭の1文字のコード Asc(left(text1,1)) このAsciiコードが半角カナかどうかをチェックします。 その一部のコードはこんなようになります。 例としてテキストボックスの名前をText1とします。 -------------------------- Acode= Asc(Left(Text1.text,1)) If Acode > 165 and Acode < 224 then '半角カタカナの時の処理 End If --------------------------

fuuga
質問者

お礼

このような方法もあるのですね もっともっと勉強しなきゃ・・(笑) 回答ありがとうございました!!

その他の回答 (2)

  • laputart
  • ベストアンサー率34% (288/843)
回答No.3

補足です。 Acodeは勝手に作成した変数で名前は 予約語以外なんでもいいです。 それと半角カナのAsciiコードは 166 から 223 (半濁点)です。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 例えば、こんな感じ If StrComp(Left(temp, 1), StrConv(Left(temp, 1), vbWide), vbBinaryCompare) <> 0 Then   MsgBox "半角" Else   MsgBox "全角" End If

fuuga
質問者

お礼

早速の回答ありがとうございました こんなに早く回答をいただけるとは驚きました ありがとうございました

関連するQ&A

  • IF文の分岐が正しく動きません

    Access VBAについて教えてください。いまオプショングループの中にテキストボックスがあります。オプショングループをoption1、テキストボックスをtextbox1とします。テキストボックスは空の状態で、ロックをかけているので入力はできません。 実行ボタンを押したときに、テキストボックスの中が空ならMsgboxをだしなさいという文をかきました。 If txtbox1.value = "" Then msgbox "nothing" end if また .value=NULL とも書き換えて実行しましたが、なぜかmsgboxを表示せずにend ifにいってしまいます。何が原因と考えられるでしょうか?

  • VBでローマ字入力とかな入力を使い分けたい時どうすれば??

    VisualBasic6.0を使って、 フォームの上にテキストボックスをふたつ 作ったプロジェクトを新規で作成します。 今、IMEの文字入力方式はローマ字方式を 使っているとします。今半角カナ入力状態に なっているとします。 その状態で、そのテキストボックスの上で Aを3回押すと半角カナでアアアとでます。 テキストボックス上で ALT + ひらがな を押して、かな入力に切り替えます。 そのテキストボックス上でAを3回押すと 半角英数字でaaaと出ます。 もうひとつのテキストボックスをクリックして そっちに移動してから、もとのテキストボックスに 移動します。 そこで、Aを3回押すと半角カナでチチチと出ます。 こういう手順を踏まないとひとつのテキストボックス上 でかな入力とローマ字入力を変えることができないですが 何か方法はないのでしょうか?それともこれは昔から どうしようもないことなのでしょうか? それは、この教えてGOOの質問のタイトルと 質問の内容のテキストボックスでも同じ事が 言えると思います。 普段はローマ字入力で、ある半角カナで入力したい テキストボックスにきた時だけ、何かをして かな入力に変更したいのですが、どうすればよいでしょう? 今、フォームを全画面表示していて IMEツールバーはタスクバーにしまったままにしてお きたいので、IMEツールバー上から変更するという 方法は使えないです。 どなたか親切な方回答お願いしますっ・・・。 また、ちなみにプログラム上から変えることって できるのでしょうか?やるつもりはないですが 一応聞いてみたいです。

  • for文,if文,c++

    c++でやっていますが、for文,if文,showmessage()を利用して作りたいのですが、 どこからはじめればよいのかよくわかりませんので教えて下さい。 フォームにラベル1つ、テキストボックス1つ、ボタン1つを作ります。 ラベルには「北海道の県庁所在地はどこですか?」と表示されます。 テキストボックスに入力して、正解であれば「正解です」と表示され、次の県に進み ます。 不正解であれば「不正解です」と表示して、同じ県を繰り返します。 47都道府県がすべて終わったらフォームを閉じます。

  • VB6のIF文について教えてください

    VB6でプログラムについて、みなさんアドバイスをいただけませんでしょうか? 現在、下記のような動作をするプログラムを作っていていますがうまくいきません。 テキストボックスに1~100までの数値を400個入力します。 ボタンを押してこのテキストボックスヘ数値を入力したとき、入力した数値が10未満の 場合はメッセージボックスで「NG」と表示。 それ以外は、メッセージボックスで「OK」と表示プログラムを作っています。 ※これは、テキストボックスに数値を入力して、改行を押した際に、毎回OK・NG判定を  して表示する 今下記のように作っているのですが、苦戦しているのは、数値を入力して改行したときに 毎回メッセージボックスが出ず、エラーが出てしまいます。 下記プログラム文をどのように変更すれば、数値を入力して改行したときに毎回上記のよ うな判定できるようになるかご教示頂けませんでしょうか? みなさん教えてください。よろしくお願いします。 Private Sub Command1_Click() Dim moji As String moji = txtInputData.Text     If moji > 10 Then   Msgbox "NG"   Else  Msgbox "OK" End If End Sub

  • アクセスvba if文の記述方法

    検索フォームを作成しました。 入力項目は「氏名」「カナ」で入力チェックをおこなっております。 (未入力)メッセージを表示「未入力です」 (入力有)結果一覧のフォームを表示 未入力チェックは正常に処理されておりメッセージが表示されます。 項目に値を入力した場合フォームが起動しません。 if文から外した場合は正常に実行されます。 この条件の場合if文でどのように記述したらよいのでしょうか。 宜しくお願いします。 Private Sub 検索_Click() Dim mct As Control Dim flg As Boolean flg = False For Each mct In Me.Controls  If mct.ControlType = acTextBox Then   If mct.Tag = "Check" Then    If Not IsNull(mct) Then     flg = True     Exit Sub    End If   End If  End If Next mct If flg = True Then  Dim str As String  str = "[氏名] Like ""*" & Me!氏名 & "*"" And [カナ] Like ""*" & Me!カナ & "*"""  DoCmd.OpenForm "結果一覧", , , str Else  MsgBox ("未入力です") End If End Sub

  • チェックをいれたのですが・・・

    入力フォームを作り、そこにチェックを入れました。 テキストボックスで半角10文字まで入力を許可したのですが、プログラム上では半角の10文字も全角の10文字も同じ10文字と認識しているようです。 データベースにそのデータを格納しておきます。 文字制限を半角10迄としているので半角10文字までで文字制限ができる方法をどうかおしえていただけないでしょうか ? よろしくお願い致します。

  • Accessのチェックボックスをオンにするには

    Access2000でフォームを作成し、テキストボックス1に入力した内容をチェックボックス1にオンの状態で表示させたいのですが、フォームビューでもチェックボックスがオンでもオフでもなくグレイの状態で表示されています。 かりにテキストボックスの入力値が”ABC"を入力したあと チェックボックス1にオンの状態にするには、 どのようなコードになりますか? public sub() if me.テキストボックス1.value = "ABC" then me.チェックボックス.value = ture じゃだめですよね? チェックボックスをオンにする方法と、テキストボックスがNULLだったらオフにする方法を教えていただけませんでしょうか?

  • If文の条件文の書き方

    お世話になります。 Excelでマクロを作成しております。 内容:  あるセルに、X<=300 というような条件を入れておきます。  ある値、たとえば、500 が来たときに、Xに代入して、  500<=300 という条件式を作り、それが、正しいか、正しくないか  の結果を求めたいと思っています。 このとき、if文の条件文は、値によって、変わらなくてはいけないので、 文字列の置き換え等をして、変数として条件文を作ると、「型が違います」 のエラーになります。 どのように条件文を作ればいいでしょうか?? hani = Cells(1,1).value 'セル1,1に、X<=300 が書かれています。 exp = Replace(hani, "X", 500) '"X"を500と置き換えます。 If exp Then Check = 0 Else Check = 1 End If よろしくお願いします。

  • if文の条件式の書き方について

    現在VC++2005でプログラムを作成しています。 そこであるテキストファイルをテキストボックスに表示してからその表示されている内容の1行目をif文を使って判断するというものを作っています。 そこで、質問なのですがif文の条件を作るときに文字列として条件を入れたい場合はどのようにしたら良いのでしょうか? 現在は7:00ならばというものなのですが、読み込んだ文字列に7:00以外のものが入っていてもそのまま判断されてしまうのできっと条件式のところが問題だと思うのですが。 下に作成中のコードを書きますので、良かったらご教授お願いします。 ********************************************************* String^ ss; ss=textBox3->Text; ss=textBox3->Lines[0]; textBox5->Text=ss; String^ time; time=textBox5->Text; if (char time='7:00'){ MessageBox::Show("7時"); } else { MessageBox::Show("ミス"); } **********************************************************

  • テキストボックスをExcelのセルのように扱う方法

    時間を入力するテキストボックスを 作成しています。 表示形式は英数小文字でhh:ssです。 Excelのセルのように、 09:00と入力しても、9:00と自動的に表示し、 また入力した数値をbackspaceで消しても プログラムエラーにならないようにするには どのようにすれば良いでしょうか? (if文を使って制御しているのですが、 うまく制御出来ずにプログラムエラーを 起こしまくっています(^^;)

専門家に質問してみよう