掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB+MDBのSQLで固定長の文字列として取得したい (ID:81721)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> VB上からADO接続で、MDBよりあるフィールドをSELECTする際に、 > 固定長文字列(※)としてデータを取得したい。 Access 97形式のmdb(Jet 3.5x)を使っているのであれば、文字列フィールドの定義を、 VARCHAR型ではなく、CHAR型にしておいては如何でしょうか。 例えば、 『CREATE TABLE TBL1 (FLD1 COUNTER CONSTRAINT PKEY1 PRIMARY KEY, FLD2 CHAR(8))』 『INSERT INTO TBL1 (FLD2) VALUES ('東京')』 『INSERT INTO TBL1 (FLD2) VALUES ('神奈川')』 の場合、FLD2列に含まれるデータは、 「東京****」 「神奈川**」 となります。(*は半角空白) ……なお、Access 2000以降の形式(Jet 4.0)を使っている場合は、 Unicode文字列(NVARCHAR/NCHAR)として扱われてしまうので、 「東京******」 「神奈川*****」 となってしまうので、注意してください。 どうしても Jet 4.0 (OLEDB Providerのバージョンではなく、mdbのバージョン)の ファイルを使う必要があるのであれば、StrConv関数とLeftB関数を使う事ができます。 # SandBoxの設定次第ですけれども。 例えば、20バイト分だけ取得するのであれば、こんな感じです。 SQL = "SELECT FLD1," SQL = SQL & " StrConv(LeftB(StrConv(FLD2 & Space(20), " SQL = SQL & CStr(vbFromUnicode) & "), 20), " SQL = SQL & CStr(vbUnicode) & ") AS F2" SQL = SQL & " FROM TBL1"
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.