• ベストアンサー
  • 困ってます

Access 長文の文字列結合

選択クエリAには空のフィールド1があります。 選択クエリCには説明文1というフィールドがあります。 空のフィールド1に説明文1と、ある長文の文字列を収めたい為、以下のようにしました。 選択クエリC.説明文1 & "長文文字列1" AS 空のフィールド1 として、SQLビューへ直接、長文文字列を入力しています。 ※デザインビューにすると「指定した式はクエリのデザイングリッドの1024文字の制限を超えています」と出て開けません。 こういった書き方は力技なのでしょうか? また、この長文の文字列ですが、種類が複数あります。 クエリAのフィールド1には、説明文1と文字列1、フィールド2には、説明文2と文字列2、 クエリBのフィールド1には、説明文1と文字列3、フィールド2には、説明文2と文字列4 など、クエリAやBのような他のクエリを複数作成したい為、 別のスマートな書き方があればご教示いただきたく思っております。 クエリCはデータベースからダウンロードしたものをAccessにインポートして成型した情報で、 クエリA、B等はシリーズ別の説明文の雛形として使用しています。 長文文字列は注意文のようなもので、その中の一文だけが違う文章です。 作業環境は、OS:Windws7、使用ソフト:Access2003となっております。 どうぞ宜しくお願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数711
  • ありがとう数0

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

  • ベストアンサー
  • 回答No.1
noname#212067
noname#212067

選択クエリC.説明文1 & "長文文字列1" AS 空のフィールド1 ↓ 文字列結合(選択クエリC.説明文1,1) AS 空のフィールド1 Module Const Public Const 文字列1 = "ああああああああああああああああああああああああああああああああああああああ" Public Const 文字列2 = "いいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい" Public Const 文字列3 = "うううううううううううううううううううううううううううううううううううううう" Public Const 文字列4 = "ええええええええええええええええええええええええええええええええええええええ" Module Function Function 文字列結合(S As String, P As Integer) As String 'S = 説明文1 or 説明文2 'P = 文字列1~文字列4 Select Case P Case 1 '文字列1 文字列結合 = S & 文字列1 Case 2 '文字列2、 文字列結合 = S & 文字列2 Case 3 '文字列3 文字列結合 = S & 文字列3 Case 4 '文字列4 文字列結合 = S & 文字列4 End Select End Function

共感・感謝の気持ちを伝えよう!

質問者からの補足

ありがとうございます。 これはVBAを書いて下さったのでしょうか? 後出しで申し訳ないのですが、VBAはまだまだ理解できるほど 勉強をしておらず、書いてくださったVBAの動作は なんとなく理解できるのですが難しいです^^; 試してはみたのですが、「コンパイルエラー:修正候補:式」と 出てしまい自分で修正できませんでした… 素人考えなのでしょうが、例えば一つテーブルを作って 必要な分の長文の文字列を入れておき呼び出す、といった方法は普通しないものですか? 今回の場合ですと、長文文字列の種類は13種類(各1500文字程度)、 クエリAと同じ立場のものが7種類です。 作成途中ですがファイルサイズは4MBとなっております。 使う頻度だったり、ファイルサイズや、Accessに詳しいか などにもよると思いますが他の方はどんな処理をするのかが気になります。

関連するQ&A

  • access2003 「#エラー」を文字列にしたい

    テキスト型に入れた値を数値に変換し、「#エラー」を文字列にしたい テーブル1のデザインビューで ・フィールド1 テキスト型 ・主キーなし として データを 1 2 あ を投入します。 そして SELECT CLng(テーブル1!フィールド1) AS 数値型に変換 FROM テーブル1; クエリを作りました。 1と2は数値に変換されますが、文字列を入れた「あ」は 「#エラー」になります。  「#エラー」を「未設定」という文字列にしたいのですが どうすえばいいのでしょうか? よろしくお願いします。

  • ACCESSの文字列の結合について!

    AとBのふたつのフィールドがある場合、 A&Bで文字列の結合が出来る事は分かっています。 ところが、同一フィールドの文字列を結合する方法がわかりません。 現在はAというフィールドがある場合、 フォームフッターにフレームをつくり・・・・。 この時点で止まっています。 数値の場合はただたんに「=sum([A])で解決しますが、 文字列の場合はsumでは駄目なわけで・・・・。 ご指導の程宜しくお願いします。

  • Access クエリ 文字列の一部を抽出して表示

    Access クエリの 文字列の一部だけの抽出についてお尋ねします。 Accessクエリにて、『配達先』フィールドの文字列が長いため、『配達先』フィールドの一部の文字を抽出してクエリに表示したいのですが、どのようにすればよろしいでしょうか? 抽出前 ⇒ 抽出後の順で記載します。 (1):営業部○○課消耗品置き場 ⇒ ○○課 ※○○課消耗品置き場で終わる文字列の場合は、営業部の1字後ろから消の1字手前までを抽出する (2):営業部○○課消耗品置き場(△△係)⇒ △△係 ※○○課消耗品置き場の後に()がある場合は、()の中の文字列だけを抽出 (3):営業部◇F○○課消耗品置き場 ⇒ ○○課 営業部◇F○○課(△△係)⇒ △△係 ※○○課の前に◇F(フロア)がある場合は、◇Fの後ろから(1)か(2)を適用する お分かりの方がいらっしゃいましたら、ご回答のほどよろしくお願い申し上げます。

  • accessで複数カラムの組み合わせ文字列をselect

    エクセルVBAからaccessにクエリを送る際のselectクエリの書き方について教えてください。 VBAから指定する文字列strが、accessのカラムa,b,cのハイフン区切りの文字列と一致した場合のみselectしたいのですが、select文はどのように書けばよいでしょうか? (VBAでstrをハイフンなしにばらさない場合) ------------------- str='0-1-2' ↓ select * from aaa where カラムa=0 and カラムb=1 and カラムc=2 ↓ 「and」なしで書く場合は? -------------------

  • Access2003で複数条件で文字列を変換する

    Access2003で、フィールド内の空欄を削除するのと同時に、 フィールドの文字列を全角大文字に変換する方法を教えて下さい。 現在、2回に分けてクエリを実行しております。 まず、「Trim 関数」を使いフィールド欄へ式を入力し空白の削除を 実行してから、次に新たにクエリを作成して「StrConv 関数」を使い 文字列を全角大文字に変換しております。 一度のクエリで「空白削除」と「全角大文字変換」ができる方法を教えてください。 宜しくお願い致します。

  • Access:クエリーにて集計後に文字列結合したい。

    Accessのクエリーでレコードのグループ化を行っている状態で、あるフィールドに対してだけ文字列の結合を行いたいのですが、集計部分をどのように指定すればよいかわからず困っています。 イメージとしては、SQLビューにて、グループ化されたレコードの合計が、  SUM([テーブル名].[フィールド名]) で求められる様に、 エクセルの文字列結合関数  CONCATENATE([テーブル名].[フィールド名]) が使いたい、という感じです、、 Accessにおける文字列結合は"&"を使うとありましたが、この場合どのように記述するべきでしょうか?

  • Accessのフォームで

    Accessで2つほど質問いたします。 (1)テーブルにフィールドを追加したのですがフォーム上でそのフィールドが追加できません(プロパティで選択できない)、多分クエリーを経由してフォームを作成したのですが、どのクエリーだかわからなくなってしまいました、参照しているクエリーがどれなのかを調べる方法を教えてください。 (2)検索フォームを作成して入力した文字を含む検索をしたいのですが どのようにしたら良いのでしょうか、今は入力の文字列の最初と最後に「 * 」を入力して検索しています。

  • access 文字列で範囲指定する

    Access2010クエリの抽出条件で、 文字列を使った範囲指定は可能でしょうか? ★特定の年月(6桁・yyyymm)の過去12カ月のデータを抽出したい。※指定された年月が201308なら、201207までを取ってくる。 しかし、フィールド型がテキスト型である為、betweenを使えず困っております。 また、できればフィールド型を日付型等に変更せずに済ませたいです。 いろいろと面倒な条件を並べて申し訳ございません。 どうかご教授いただけないでしょうか。 よろしくお願いします。

  • access vbaでCSVファイルを文字列にしてエクスポートする方法

    ACCESSのVBでクエリのフィールドデータをCSV形式にして なおかつすべてのセルを文字列にしてエクスポートしたいんですが 基本的なやり方がわかりません。 データが00012の時だとCSVにすると12として表示されるのそのまま 00012で表示させたいんです。 詳しい方教えていただけないでしょうか? よろしくお願いします。 ACCESSは2003を使っています。

  • ACCESSクエリでの結合の仕方・・・SQL文かも

    ACCESS 2003を使用しています。 テーブルA テーブルB の2テーブルでクエリを作っています。 結合的には・・・ テーブルAのフィールドX ⇔ テーブルBのフィールドY です。 これで2テーブルに共通する一致データのみ抽出はできるのですが、 2テーブルに共通する一致データに加えて、 2テーブルの不一致データも一緒にクエリ表示されるようにしたいのです。 欲しいのは抽出イメージは、以下のような感じのクエリ結果です。 テーブルA:フィールドX|テーブルBのフィールドY a             |(空) (空)           |b c             |c d             |(空) (空)           |e f              |f  g             |(空) h             |h おそらく、SQL文を書く必要があるとは、想像できるのですが・・・ どなたか、ご教授いただけると助かります。 よろしくお願いします。