dポイントプレゼントキャンペーン実施中!

お世話になります。
MicroSoftAccessのクエリ検索方法について質問があります。

クエリを新規で作成し、下記のようなテーブルのデータの内 必要なデータの抽出を行いたいと考えています。
例)※三角は、Nullです。
<テーブル>
(1) AAA△△△BBB
(2) CCC△DDD
(3) AAABBBCCC△△△△ABCDE△F
(4) A△BC
上記のようなデータがあったとして、抽出希望のデータは
(1)' AAA
(2)' CCC
(3)' AAABBBCCC
(4)' A
(1)'(2)'(3)'(4)'のようなデータを抽出したいとおもっています。

TRIM関数等使えば、頭の△・最後の△は消せるのですが
今回の希望するデータを取ることができません。

ご面倒かけ申し訳ありませんが、アドバイス頂けたらうれしいです。
あまりVBA等詳しくない為、クエリでの指定・関数等教えて下さい。

よろしくお願い致します。

A 回答 (1件)

char(0)をデータ間に組み込むのは通常は至難。


スペースのことでしょうね。

1) AAA△△△BBB
(2) CCC△DDD
(3) AAABBBCCC△△△△ABCDE△F
(4) A△BC

[イミディエイト]
? CutStr("AAA BBB CCC", " ", 1)
AAA
? CutStr("AAA BBB CCC", " ", 2)
BBB
? CutStr("AAA BBB CCC", " ", 3)
CCC

ならば、以下のようなCutStr関数で切り取れます。

Public Function CutStr(ByVal Text As String, _
            ByVal Separator As String, _
            ByVal N As Integer) As String
  Dim strDatas() As String
  
  strDatas = Split("" & Separator & Text, Separator, , 0)
  CutStr = strDatas(N * Abs((N <= UBound(strDatas))))
End Function

標準モジュールに登録し、[共通ライブラリ関数]などの名前と付けて保存してお使いください。

? CutStr("This is a pen.", "is", 1)
This
? CutStr("This is a pen.", "is", 2)
a pen.
    • good
    • 0
この回答へのお礼

>スペースのことでしょうね。
はい その通りです。間違えてましてた。。

なんとなく程度しか教えて頂いた内容が理解できていませんが
こういうのもきっかけだと思いますので、一度勉強したいと
思います。

只今回は、急ぎでデータが欲しいといわれていることもありつつ
データ的にも、数千行程度でしたので、Mid関数 Mid([テーブル名],1,12)のような条件で検索して、残ってしまったものは強引に手動で削除しちゃいました。

教えて頂いた内容を含めて、再度確認をしたいと思います。
忙しい所 アドバイスありがとうございました。

お礼日時:2008/12/12 17:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!