アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

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

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

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

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

A 回答 (2件)

>15文字/30文字 全角/半角


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

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

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

ありがとうございます。
具体的な方法でとても勉強になりました。
入力規則の使い方をはじめて知りました!
こんな風に使うんですね。
いろいろと試してみたいと思います。
ありがとうございました。

お礼日時:2006/06/22 11:33

Q1このフィールドサイズにぴったり合うようにフィールドサイズの設定をするには


AccessではUnicodeが採用されていますので、
半角(1byte)・全角(2byte)の区別が無くなっています。
なので「15文字/30文字 全角/半角」のような場合には
テーブルデザインのフィールドサイズでは、30(文字)と設定するしか無いのでは。

Q2 また、半角英数字・半角カタカナ・数字等、特定の文字の種類だけ入力できるようにたりしたいです。
フォームのテキストボックスの更新前あたりでチェックして「警告」を出すくらいでは?
IME入力モードで設定できるかもしれませんが、数字等の「等」が気になります。
↓は参考にでも
Function asc2chr(Optional ascScope As Integer = 256)
Dim i As Integer
For i = 1 To ascScope
Debug.Print i & "," & Chr(i)
Next i
End Function

Q3 VBAで、設定したフィールドサイズよりも大きいテキストを入れようとすると
エラーが出るんですが、VBAで後ろを切り捨てたりして入るサイズに縮める方法を教えてください。
フィールドタイプがテキストなら
CurrentDb.TableDefs("テーブル名").Fields("フィールド名").Size
でフィールドサイズ(テーブルデザインの処で出てくる)が求められますので
更新前処理あたりで、Len 、Left と組み合わせては?
    • good
    • 0
この回答へのお礼

ありがとうございます。
教えていただいた方法でがんばります!

「等」、にはあまり意味は無いです。

お礼日時:2006/06/22 11:26

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

このQ&Aを見た人はこんなQ&Aも見ています