• ベストアンサー

access2003レポートの文字列の連結について

access2003で宛名ラベルを作成しています。 レポートで氏名と敬称を連結して印刷をしたいのですが敬称のところが数値の1と印刷されます。 敬称はプルダウンメニューになっていて予めテーブルで設定された値を印刷させたいのです。ちなみにレポートはクエリから抽出しています。 テーブルの設定は数値型でコンボボックスで別のテーブルから様、先生などの値を選択できるようになっています。 うまく説明できませんが、レポート上で氏名と敬称のフィールドを連結しなければうまくいきます。 氏名と敬称を連結して表示させる方法を教えてください

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

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

住所録: ID__氏名__________敬称_ID 01__鈴木 一郎___________0 02__中村 主水___________1 敬称: ID__敬称 00__様 01__先生 クエリ1: ID__宛名 00__鈴木 一郎 様 01__中村 主水 先生 SELECT 敬称.ID, 住所録!氏名 & " " & 敬称!敬称 AS 宛名 FROM 敬称 INNER JOIN 住所録 ON 敬称.ID=住所録.敬称_ID; これで、レポートではクエリで生成した列[宛名]を利用できます。 ======================================================================== 01__鈴木 一郎___________0 02__中村 主水___________1 とクエリで列[宛名]を生成しないやり方を採用する場合は・・・。 [ID_______][氏名_________][敬称_ID___][=[氏名] & " " & ・・・] と、レポートに[宛名]表示用のテキストボックスを配置します。 =[氏名] & " " & DLookup("敬称", "敬称", "ID=" & [敬称_ID]) と、Access の DLookup関数を使うという手もあります。 [氏名」と[敬称_ID]をそのまま連結すると、[鈴木 一郎 0][中村 主水 1]となります。 が、このように翻訳して連結すれば目的は達成されます。 が、これは DLookup関数の処理速度を考えれば避けたい手法です。 どうしても、この手法を使いたければ ADO で参照関数を自作されたがいいです。 ======================================================================== クエリもDLookup関数も多用したくない場合は・・・。 SQL文=冒頭のクエリを<レポート!住所録!レコードソース>で生成する手もあります。

kiyo0077
質問者

お礼

いろいろ試してやってみました。 DLookUp関数を使うことになりました。 何とかなりましたので報告します。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

>敬称のところが数値の1と印刷されます。 フォームのコンボボックスで敬称のIDを選択しているのですね それがレポートではテキストボックスになっているのでIDがそのまま表示されているのでしょう 解決方法は2つ 1)レポートのほうの敬称欄は非連結テキストボックスにして =Choose([敬称ID],"様","先生",・・・) 2)レポートのほうの敬称欄もコンボボックスに変えフォームと同じ設定にする (レポートでもコンボボックスは使えます、プルダウンボタンなんかは表示されません)

kiyo0077
質問者

お礼

ありがとうございます。 またいろいろ試してやってみます。

すると、全ての回答が全文表示されます。

関連するQ&A