Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Access 2010)
2個目の改行マークより後の文字
投稿日時: 20/08/20 18:12:10
投稿者: ラングドシャ

お願いいたします。
 
社内の業務システムのテーブルをアクセスにリンクしています。
テーブル内容をクエリで抽出したいのですがうまくできません。
 
TBL_商品詳細
 

 品番     仕様
 100-01    
        サイズ約φ120mm
        青、赤
 100-02    
        
        
 100-03    注意事項あり
        サイズ10×60mm
        ピンク、黒、白
 100-04    注意事項あり
        
        青のみ
     
 
わかりづらいかもしれませんが、上記のようなテーブル:TBL_商品詳細があります。
1品番に対し仕様が3行はいっています。ただし、仕様が空欄であったり1行目がなかったりとさまざまです。
クエリで3行目だけを抽出したいので調べてみると、改行マークを消すものは見つかるのですが改行マークの後を抽出いったものが見つかりません。
クエリで2個目の改行マークの後の文字を抽出する方法はないでしょうか?
 
よろしくお願いいたします。

回答
投稿日時: 20/08/20 21:29:17
投稿者: hatena
投稿者のウェブサイトに移動

クエリのフィールドに下記の式を設定してください。
 
仕様3: 式3: Mid([フィールド5],InStr(InStr(1,[フィールド5],Chr(13)+Chr(10),0)+1,[フィールド5],Chr(13)+Chr(10),0)+2)
 
式が複雑になるので、VBAでユーザー定義関数を作成すると式をシンプルにできます。

投稿日時: 20/08/21 10:16:32
投稿者: ラングドシャ

hatenaさん
 
早速のご回答ありがとうございました。
ご提示いただいた関数でうまくできました。
VBAで関数作成もできるのですね。その域にはぜんぜん達していませんが頭においておきます。
 
InStrで改行コードを検索し2個目から3個目の間をmidで抽出するという考え方なのですね。
改行コード2個目の見つけ方など参考になりました。
ありがとうございました。
 
※サイトの方もよく見させていただき、使わせていただいたものもあります。
いつもありがとうございます。