OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ACCESS2000の文字数制限について

  • 困ってます
  • 質問No.177605
  • 閲覧数202
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 33% (2/6)

ACCESS2000のテーブルで文字数制限をすると、全角でも半角でも
1文字と数えられてしまい、困っています。
全角は2文字、半角は1文字として数えたいのです。

モジュールを使い、LENB()、LEFTB()関数を使っても、上記と同様の現象で
解決しません。よい方法はありますでしょうか?
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3

APIを使う方法もあるかと思いますがもっと単純に・・・
LenB(StrConv("あいうえお", vbFromUnicode))
で10バイトが得られます。
お礼コメント
go_ishikawa

お礼率 33% (2/6)

ありがとうございます。
この方法で問題は解決しました。
投稿日時 - 2001-12-01 15:01:07
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル12

ベストアンサー率 41% (324/772)

NT系カーネルを使っているOSは内部でUNICODEを使用しているためでは無いでしょうか? 以前、NT4+Access97で試した時は、C言語でDLLを作ってDLL内部でstrlen()でバイトサイズを計ったことがあります。 いまでも有効かどうかは分かりませんが、、、 ...続きを読む
NT系カーネルを使っているOSは内部でUNICODEを使用しているためでは無いでしょうか?

以前、NT4+Access97で試した時は、C言語でDLLを作ってDLL内部でstrlen()でバイトサイズを計ったことがあります。
いまでも有効かどうかは分かりませんが、、、
補足コメント
go_ishikawa

お礼率 33% (2/6)

ご回答ありがとうございます。
確かに、使用しているOSはWin2000です。
ということは、同じプログラムであっても、OSによって処理が違うということでしょうか?

回答文にかかれている、C言語でDLLを作って、、、、という部分を詳しく教えていただけないでしょうか?どうしてもこの問題を解決する必要があります。
投稿日時 - 2001-11-30 21:52:34

  • 回答No.2
レベル12

ベストアンサー率 41% (324/772)

単純に ------------------------- BOOL WINAPI DllMain(  HINSTANCE hinstDLL,  DWORD fwdreason,  LPVOID lpvReserved) {   return 1; } export long MyFunctionName(char *buf) {  return strlen(buf); } - ...続きを読む
単純に
-------------------------
BOOL WINAPI DllMain(
 HINSTANCE hinstDLL,
 DWORD fwdreason,
 LPVOID lpvReserved)
{
  return 1;
}
export long MyFunctionName(char *buf)
{
 return strlen(buf);
}
-------------------------
をするだけの、何の変哲も無い、只のDLLです。
これをAccessのモジュールから呼び出せばOKです。
お礼コメント
go_ishikawa

お礼率 33% (2/6)

親切に教えていただきありがとうございます。
問題を解決することが出来ました。
投稿日時 - 2001-12-01 15:02:14
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ