Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1596 / 2272 ツリー ←次へ | 前へ→

【6356】追加クエリでできますか パート2 ツイン 05/9/26(月) 15:41 質問[未読]
【6357】Re:追加クエリでできますか パート2 小僧 05/9/26(月) 16:40 回答[未読]
【6358】Re:追加クエリでできますか パート2 ツイン 05/9/26(月) 16:49 発言[未読]
【6359】Re:追加クエリでできますか パート2 小僧 05/9/26(月) 16:58 発言[未読]
【6360】Re:追加クエリでできますか パート2 ツイン 05/9/26(月) 17:12 発言[未読]
【6361】Re:追加クエリでできますか パート2 小僧 05/9/26(月) 17:32 回答[未読]
【6365】Re:追加クエリでできますか パート2 ツイン 05/9/27(火) 9:27 お礼[未読]

【6356】追加クエリでできますか パート2
質問  ツイン  - 05/9/26(月) 15:41 -

引用なし
パスワード
   2度目です。長文ですみません。宜しくお願いします。

2つのテーブル(A・B)の異なるフィールドより、
文字列を結合して、別テーブル(C)に新規レコードを追加。
その際、改行を削除し1行で登録したいのですが、
「追加クエリ」で設定できますか?
やっぱり、VBAで記述しないと無理なのでしょうか?
すみませんが、教えて下さい<(__)>

《テーブルA》
項目1 2       3   4  
-----------------------------------+
001|123(改行)|AAA|あああ| ←「項目2」は改行付き
   |イロハ    |   |   |    
-----------------------------------+
005|456(改行)|BBB|いいい|
   |ニホヘ    |   |   |
-----------------------------------+

《テーブルB》
項目5 6 7 8
---------------+
001|◇|○|△|
---------------+
005|◆|●|▲|
---------------+


【テーブルC】
項目9 10
---------------------+
001|△123イロハ| ←改行を削除し、1行にしたい。
---------------------+
005|▲456ニホヘ|
---------------------+

【6357】Re:追加クエリでできますか パート2
回答  小僧  - 05/9/26(月) 16:40 -

引用なし
パスワード
   ▼ツイン さん:
こんにちは。

ツインさんのお使いのAccessのバージョンにもよるのですが、
Access2000以降でしたら Replace関数 をクエリ内で使うことが可能です。

INSERT INTO テーブルC ( 項目9, 項目10 )
SELECT テーブルA.項目1, Replace([項目8] & [項目2],Chr(10),"")
FROM テーブルA INNER JOIN テーブルB ON テーブルA.項目1 = テーブルB.項目5;


※テーブルA と テーブルB から作成する事ができるデータは
 テーブルに格納しないでクエリで処理するのが一般的ですよ^^

【6358】Re:追加クエリでできますか パート2
発言  ツイン  - 05/9/26(月) 16:49 -

引用なし
パスワード
   小僧様

早速のお返事ありがとうございます。
残念ながら、Access2000です(TOT)
テーブルに格納後、
CSVファイルへエクスポートを行う処理なんです。

今も必死で検索中です。
また何かありましたら、ぜひ教えて下さい。
お待ちしています!

【6359】Re:追加クエリでできますか パート2
発言  小僧  - 05/9/26(月) 16:58 -

引用なし
パスワード
   ▼ツイン さん:
こんにちは。

Access2000 はReplace 関数は使えませんでしたっけ?
(当方Ac2002 と Ac97 しかないので検証できません。すみません)


>テーブルに格納後、CSVファイルへエクスポートを行う処理なんです。

クエリからでもCSVファイルへエクスポート可能ですよ^^

【6360】Re:追加クエリでできますか パート2
発言  ツイン  - 05/9/26(月) 17:12 -

引用なし
パスワード
   小僧 様

何度もお返事すみません&ありがとうございます。
VBAの方ではREPLACE関数が使用できるようですが、
クエリの式ベルダにある「組み込む関数」には表示されないのです。
何故でしょうか・・・・・大変です(汗)

【6361】Re:追加クエリでできますか パート2
回答  小僧  - 05/9/26(月) 17:32 -

引用なし
パスワード
   ▼ツイン さん:
こんにちは。

では自作関数を作ってしまいましょう。

新規モジュールを作成し、

Function Q_Replace(strData As String)

  Q_Replace = Replace(strData, Chr(10), "")

End Function

のように記述します。


クエリからこれを呼び出す形で、

INSERT INTO テーブルC ( 項目9, 項目10 )
SELECT テーブルA.項目1, Q_Replace([項目8] & [項目2])
FROM テーブルA INNER JOIN テーブルB ON テーブルA.項目1 = テーブルB.項目5;

とする案はどうでしょうか?

【6365】Re:追加クエリでできますか パート2
お礼  ツイン  - 05/9/27(火) 9:27 -

引用なし
パスワード
   小僧様

おはようございます。
昨日は何度も回答をいただきありがとうございました。
教えていただいた”自作関数”で解決することができました。
これでなんとか今月中に片付けることができます(笑)

丁寧な対応&回答、本当にありがとうございました<(__)>

1596 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078242
(SS)C-BOARD v3.8 is Free