Access2000を使用していますが、テーブル作成時に
「テキスト型」でフィールドサイズを「10」に設定して
データを入力すると、半角でも全角でも「10桁」までの入力に
なりますが、フィールドサイズは半角も全角も関係ないのでしょうか?
「テキスト型」の最大フィールドサイズは「半角255文字」と
思っていたのですが、全角でも255文字入力できました。

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

A 回答 (1件)

Access2000からは、DBに格納される文字コードがUnicode(ユニコード)になったのです。

Access97以前は、Shift-JISで格納されていました。

Shift-JISは、半角文字→1バイト、全角文字→2バイトで表現されています。
Unicodeは、半角→2バイト、全角→2バイトです。


で、Access97における仕様では
フィールドサイズ10 = 最大10バイト = 全角5文字が限界
となっていたのが、Acces2000になった段階で、
フィールドサイズ10 = Unicodeで10文字分 = 全角10文字が限界
と改定されたわけです。

ただし、半角でも2バイト消費するということは、欧米人にとってははなはだ無駄なことに映るらしく(笑)、フィールドのプロパティに「Unicode圧縮」という項目が追加されました。
これを「はい」にすると、半角文字の消費領域を1バイトに減らせることができます。(ただし、フィールドサイズが10なら最大10文字なのは変わりません.)
    • good
    • 0
この回答へのお礼

早速お答えいただきありがとうございました。
なるほど、そうだったんですね。
大変分かりやすい説明でよくわかりました。

お礼日時:2001/03/14 16:53

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

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

QAccess 97 2K:テキスト型フィールドサイズ

お世話になっております。

Access2K、Access97の
テーブルのフィールドのサイズを、文字列の5
とし、

固定文字"あいうえお"
を入力使用としたところ、
Access2Kでは"あいうえお"
Access97では"あい"
としか入力できません。

固定文字"aiueo"
を入力使用としたところ、
どちらも全て入力できました。

おそらく、バイト長と文字数の違いだと思うのですが、
2Kのヘルプではバイト単位で入力するように
載っているのになぜ指定した長さの全角文字列が
入力できるのでしょうか。

ご教授のほど、よろしくお願いいたします。

Aベストアンサー

入力できる最大文字数を制御するためにAccess97はバイト単位で2000は文字数で制御しているためAccess97では"あい"までしか入力できません。
2000のテキスト型では5文字と設定すれば全角でも半角でも5文字までしか入力できません。
2000は単純に最大文字数だけです。
2000のヘルプはAccess97のヘルプを流用して作ってあるので同じような表現になっているのではないかと思います。

Qaccessでテキスト型のフィールドサイズについて…

accessで作った受注管理のデータを抜き出してクロネコヤマトのi-cats(b2)に入力するように作りました。

b2のデータ交換規約(?)の方のテキスト型のフィールドサイズの指定が
半角英数字10文字
となっていたり、
15文字/30文字 全角/半角
というようになっています。

質問なんですが
このフィールドサイズにぴったり合うようにフィールドサイズの設定をするにはどうしたらいいでしょうか?

また、半角英数字・半角カタカナ・数字等、特定の文字の種類だけ入力できるようにたりしたいです。

もうひとつ別の質問です
VBAで、設定したフィールドサイズよりも大きいテキストを入れようとするとエラーが出るんですが、VBAで後ろを切り捨てたりして入るサイズに縮める方法を教えてください。

長くなりましたが宜しくお願いします。

Aベストアンサー

>15文字/30文字 全角/半角
フォームから入力するのであればテーブルのフィールドの入力規則に
LenB(StrConv(([フォームのコントロール名]),vbFromUnicode))<=30
とすればフィールドには30Byteまでしか入力できなくなります。これで全角15文字・半角30文字まで。

>半角英数字・半角カタカナ・数字等、特定の文字の種類だけ入力できるようにたりしたいです
フォームでならコントロールのプロパティのIME入力モードをそのフィールドに合ったものに設定すれば良いと思います。

>VBAで後ろを切り捨てたりして入るサイズに縮める方法
Mid関数で切り抜きます。バイト数で切り出す場合はMidB関数でできます。
MidB([フィールド名やコントロール名],1,10)
で1バイトから10バイト切り出します。

QAccess2000のクエリで全角文字を半角にするには?

もともとのデータが全角英数字になっているフィールドを半角に変換したいのですが、クエリー実行時に変換できますでしょうか?
文字列関数のASCかな?とも思い、やってみたのですが、うまくいかず、とりあえず元のテーブルのデータを編集を置換でもって半角にしました。
でも、出来ればテーブルのデータは変更したくないので、クエリーでやる方法はありませんでしょうか?
あまり専門的なことは分かりません。VBAは使ったことがありませんのでよろしくお願いします。

Aベストアンサー

StrConv([フィールド名],8)
で半角になります。

詳細はヘルプを参照してください。
全角やカタカナ・ひらがなへの変換もできます。

Qテキスト型のフィールドでハイパーリンク

アクセスのテキスト型のフィールド(URL)に
http://bekkoame.okwave.jp/qa1111.html
と入れていて、
そのテーブルを元にしたフォームを作成し、
フォームにテキストボックスを作りコントロールソースをURLにしました。

プロパティで
ハイパーリンクあり:はい
ハイパーリンクとして表示:ハイパーリンクである場合
としてますが、そのテキストボックスをクリックしてもハイパーリンクは開きません。

色は、青字に下線で見た目はハイパーリンクのようです。

テーブルのデータ型をハイパーリンクにしない限り、
フォームのコントロールをクリックしてサイトを開くことはできないのでしょうか?
URL列を主キーにしたいので、ハイパーリンク型は避けてました。

Aベストアンサー

アクセスのテキスト型のフィールド(URL)に
http://bekkoame.okwave.jp/qa1111.html
と入れていて、
そのテーブルを元にしたフォームを作成し、
フォームにテキストボックスを作りコントロールソースをURLにしました。
プロパティで
ハイパーリンクあり:はい
ハイパーリンクとして表示:ハイパーリンクである場合
--------------------------------------
Access2010を使ています。
試してみましたがダメでした
ハイパリンクのリンク先が空白なのが気になりますが
Yahooのホームページを入れてもダメでした

ところで
URL列を主キーにしたいので、ハイパーリンク型は避けてました。
---------------------------------
URL列を主キーにする狙いは何ですか
主キーにすると修正が効かないので大変不便です。
主キーはレコードをユニーク(重複なし)にするものだけと割り切って
意味のないオートナンバー型にしてCPにお任せで良いです。
またフォーム、レポートから主キーを表示しなくても何ら問題ありません

URL列を主キーにする狙いが重複を避けたいのであれば
テーブルのプロパティーでURLのインデックス項目を「重複なし」とします。

アクセスのテキスト型のフィールド(URL)に
http://bekkoame.okwave.jp/qa1111.html
と入れていて、
そのテーブルを元にしたフォームを作成し、
フォームにテキストボックスを作りコントロールソースをURLにしました。
プロパティで
ハイパーリンクあり:はい
ハイパーリンクとして表示:ハイパーリンクである場合
--------------------------------------
Access2010を使ています。
試してみましたがダメでした
ハイパリンクのリンク先が空白なのが気になりますが
Yahooのホームページを入れてもダメでした

と...続きを読む

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

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

Aベストアンサー

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


このカテゴリの人気Q&Aランキング

おすすめ情報