- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Access97】指定した桁数で区切りたい)
Access97で全角文字を2桁として認識させる方法・項目毎に指定した位置で区切る方法
このQ&Aのポイント
- Access97やExcelでtxtファイルをインポートし、項目毎に指定した位置で区切りたい時、全角文字が2桁として認識されず、区切り位置がおかしくなることがあります。この問題を解決するために、Accessの更新クエリーを使用する方法があります。
- 具体的な手順は以下の通りです。まず、txtファイルをAccessにインポートします。次に、更新クエリーを作成し、区切りたい位置に合わせてMid関数を使用します。また、全角文字を2桁として認識させるために、Unicode関数を組み合わせることもできます。
- 以上の手順でAccessの更新クエリーを使用することで、項目毎に指定した位置で区切ることができます。この方法を使えば、数十個のtxtファイルでも手動で区切り位置を指定する必要がなくなり、効率的に作業を行うことができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
全角文字を2桁に判定する場合はMid関数でなくMidB関数です。 正し、UNICODE文字はMidB関数でも全角を1桁判定するため ひと工夫必要になります。 「Unicode と文字列操作関数の留意点」 http://support.microsoft.com/kb/404928/ja クエリ内ではvbUnicode、vbFromUnicodeは使えないので64,128に置き換えるか ユーザー定義関数を作成してください。 1例ですが 区切1:StrConv(RTrim(MidB(StrConv([フィールド1],128),1,10)),64) ユーザー定義ならモジュールで Function MidC(Moji,Kaishi,Syuryo) MidC = StrConv(RTrim(MidB(StrConv(Moji,vbFromUnicode),Kaishi,Syuryo)),vbUnicode) End Function としたうえで 区切1:MidC([フィールド1],1,10)
お礼
ご回答ありがとうございました。 Accessの方は当方には難しすぎて理解できませんでしたので、ExcelのMid関数をMidB関数に変更してみたらできました!! Accessでの作業は諦めて、Excelでデータ貼付用と区切用の2つシートを作成して対応したいと思います。 ありがとうございました。