
accessで作った受注管理のデータを抜き出してクロネコヤマトのi-cats(b2)に入力するように作りました。
b2のデータ交換規約(?)の方のテキスト型のフィールドサイズの指定が
半角英数字10文字
となっていたり、
15文字/30文字 全角/半角
というようになっています。
質問なんですが
このフィールドサイズにぴったり合うようにフィールドサイズの設定をするにはどうしたらいいでしょうか?
また、半角英数字・半角カタカナ・数字等、特定の文字の種類だけ入力できるようにたりしたいです。
もうひとつ別の質問です
VBAで、設定したフィールドサイズよりも大きいテキストを入れようとするとエラーが出るんですが、VBAで後ろを切り捨てたりして入るサイズに縮める方法を教えてください。
長くなりましたが宜しくお願いします。
No.2ベストアンサー
- 回答日時:
>15文字/30文字 全角/半角
フォームから入力するのであればテーブルのフィールドの入力規則に
LenB(StrConv(([フォームのコントロール名]),vbFromUnicode))<=30
とすればフィールドには30Byteまでしか入力できなくなります。これで全角15文字・半角30文字まで。
>半角英数字・半角カタカナ・数字等、特定の文字の種類だけ入力できるようにたりしたいです
フォームでならコントロールのプロパティのIME入力モードをそのフィールドに合ったものに設定すれば良いと思います。
>VBAで後ろを切り捨てたりして入るサイズに縮める方法
Mid関数で切り抜きます。バイト数で切り出す場合はMidB関数でできます。
MidB([フィールド名やコントロール名],1,10)
で1バイトから10バイト切り出します。
ありがとうございます。
具体的な方法でとても勉強になりました。
入力規則の使い方をはじめて知りました!
こんな風に使うんですね。
いろいろと試してみたいと思います。
ありがとうございました。
No.1
- 回答日時:
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 と組み合わせては?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) EXCELでの文字・数字入力の基本について教えてください。 2 2023/05/29 23:17
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- デスクトップパソコン 40年間の悩み キーボードにおいて初期値として漢字ローマ字変換に設定する方法 8 2023/05/08 14:50
- Illustrator(イラストレーター) イラストレーターで文字の背景に自動で入れた長方形の左側の角だけ丸く(右側だけ直角に)する方法 4 2023/04/21 11:08
- Excel(エクセル) exel 漢字・英数字混在セルの入力規則 5 2022/04/03 11:08
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft 365 Basic サブスク...
-
Accessのクエリの結果を、既存...
-
access2021 強制終了してしまう
-
access2021 VBA メソッドまたは...
-
Access Error3061 パラメータが...
-
Access VBA [リモートサーバー...
-
アクセスの更新クエリでカレン...
-
ACCESS VBA でのエラー解決の根...
-
AccessVBAで任意の複数リンクテ...
-
Microsoft365にAccessってあり...
-
Accessのクエリで、replace関数...
-
Excelを開く時と閉じる時に一度...
-
列が255以上のCSVファイルをAcc...
-
Accessのフォーム上のテキスト...
-
エクセルのVBAについて教えてく...
-
Access で半角スペースと全角ス...
-
MS.Access でサブフォーム付の...
-
Accessのレポートについて
-
access2019の起動が遅い
-
access2021 メッセージボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft 365 Basic サブスク...
-
Accessのクエリで、replace関数...
-
access2021 強制終了してしまう
-
ACCESS VBA でのエラー解決の根...
-
Access VBA [リモートサーバー...
-
Accessのスプレッドシートエク...
-
Accessのレポートについて
-
access2021 VBA メソッドまたは...
-
Access Error3061 パラメータが...
-
access2019 チェックボックスと...
-
Accessのクエリの結果を、既存...
-
accessでlaccdbファイルが削除...
-
Access VBA を利用して、フォル...
-
accessデータを指定したExcel、...
-
Accessのリンクテーブルのパス...
-
列が255以上のCSVファイルをAcc...
-
Accessのクエリの印刷設定
-
Accessでレポートを印刷する時...
-
Accessフォームの配色テーマを...
-
Accessデータベースに含まれる...
おすすめ情報