出産前後の痔にはご注意!

こんにちは!
さっそく質問なのですが、ACCESSのVBAで、入力した文字を全角や半角に変換する関数はありますか?exelでしたら、「asc」や「jis」なのですが、ACCESSの場合は使えませんでした。
ボタンを作成して、そこの「クリック時」のイベントに組み込みたいと思うのですが・・・
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

サンプルです



全角に変換
~~~~~~
Me![テキスト0].Value = StrConv(Me![テキスト0].Value, vbWide)
~~~~~~

半角に変換
~~~~~~
Me![テキスト0].Value = StrConv(Me![テキスト0].Value, vbNarrow)
~~~~~~

頑張って下さい
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2001/10/09 14:13

StrConv 関数を使用するとできます


使用方法、詳細はAccessのヘルプを参照してください
    • good
    • 0
この回答へのお礼

む・む・むずかしい・・・わからない・・・(TT)

お礼日時:2001/10/09 11:29

アクセスの関数を見たのですか見つからない為


アクセスでエクセルの関数を使用する方法を書きます

く~逃げだ逃げだ (ーー;)

がんばって下さい。

参考URL:http://support.microsoft.com/intl/japan/personal …
    • good
    • 0
この回答へのお礼

エクセルの関数を使うのかぁー・・・わかりました!

お礼日時:2001/10/09 14:14

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qクエリーで、全角混じりデータの抽出[access95]

半角で入力すべきフィールドの中に全角文字が混在している時に、
この全角文字が混在しているデータを、クエリーで抽出する方法を
教えてください。

データ型はテキストで、フィールド長は50です。
また入力されているデータは、任意<50文字とないっています。

Aベストアンサー

StrConv([列名],128)でANSI文字に変換すれば半角文字が1バイトに変換されるので判定が出来るようになります。

クエリでしたら
IIf(LenB([列名])=LenB(StrConv([列名],128)),True,False)
で列にTrue、Falseが返ってくるようになりますので抽出条件を設定すればいいですね。

QAccess フォームのテキストボックスに半角英字のみで入力する設定は

IME入力モードをテーブル・フォームともオフにしたのですがひらがな入力モードになってしまいます。
フォームのテキストボックスに半角英字のみで入力する設定としてプロパティのIME入力モードをオフにするやり方自体が間違っているのでしょうか。
それともATOKを使っているなど利用するパソコン側の問題でしょうか

Aベストアンサー

IME入力モードを「使用不可」にしましょう。

QAccess Left$関数で全角半角が混在したデータの抽出 バイト数がずれる

AccessクエリーでのLeft$関数について教えてください。
半角英数字と漢字文字列が混在したフィールドから
Left$関数で17バイト抽出したいのですが、
漢字を一文字=1バイトで換算した結果がかえってしまいます。

例)

1001-500本aaa-GG-りんご ⇒ 1001-500本aaa-GG-り

1002-500mLaaa-GG-みかん ⇒ 1002_500mLaa-GG

※[本]が漢字で[mL]は半角英数です。

後で抽出が自由にできるように、
[GG]以前の文字列のバイト数を固定にしていたのですが
全角・半角が混在していると抽出にずれがでてしまうことを知りませんでした。

※[4バイト]+"-"+[8バイト]+"-"+[GG]+"-"としていました。



GGを含むGGより以前の文字列を抽出するにはどうすればよいでしょうか?

(漢字1文字を2バイトと換算しながらLeft$で抽出するには?)

よろしくおねがいいたします。

Aベストアンサー

>Left$関数で17バイト抽出したいのですが漢字を一文字=1バイトで換算した結果がかえってしまいます
Left関数で指定するlengthの数値はバイト換算ではありません。文字数です。そのため漢字1文字を2バイトとはしません。
Access2000以降(?確か)はテキスト型のフィールドはバイトではなく文字数で管理しています。そのため「全角・半角が混在していると抽出にずれがでてしまう」ではなく「文字数管理を知らなかった」という事になります。
そういう事なので 1001-500本aaa-GG-りんご は 1001-500本aaa -GG-りんご と500本aaaの後にスペースでも1つ入れなくてはAccessでは固定とならなかったのです。
>GGを含むGGより以前の文字列を抽出するにはどうすればよいでしょうか
クエリで抽出するなら("GG"の前にGが入るレコードはないとすれば)
Mid([フィールド名],1,(InStr(1,[フィールド名],"G")+1))
かLeft関数を使用するなら
Left([フィールド名],(InStr(1,[フィールド名],"G")+1))
で簡単に抽出出来ます。

>Left$関数で17バイト抽出したいのですが漢字を一文字=1バイトで換算した結果がかえってしまいます
Left関数で指定するlengthの数値はバイト換算ではありません。文字数です。そのため漢字1文字を2バイトとはしません。
Access2000以降(?確か)はテキスト型のフィールドはバイトではなく文字数で管理しています。そのため「全角・半角が混在していると抽出にずれがでてしまう」ではなく「文字数管理を知らなかった」という事になります。
そういう事なので 1001-500本aaa-GG-りんご は 1001-500本aaa -G...続きを読む

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

 何卒よろしくお願いいたします。

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。


人気Q&Aランキング