2011-06-28 13 views
4

私は都市が空白で区切られたこのMS Access/SQL質問:文字列を分割する方法は?

[name_attr][visted_places_attr] 
peter  zurich paris tokyo 
max  nyc london prague 
max  stockholm 

のように見えるテーブルをしました。 3つ以上の都市がある場合、新しい行にリストされます。私は、このフォームの新しいテーブルで個別に都市を取得(および区切り)できるかを把握しようとしている:

[name_attr][visited_place_attr] 
peter  zurich 
peter  paris 
peter  tokyo 
max  nyc 
max  london 
<...> 

私は任意の入力に感謝します。

乾杯

答えて

2

あなたは都市が1、そして唯一の、スペースで区切られ、あなたが項目の配列(各項目の街を)返すsplit関数を使用することができることを確信している場合。私はデータの出所を知らないが、名前の中にスペースがある都市がある。 e。 "サン・パウロ"。スペースによる分割の近似は有効ではありません。あなたは、次のそのアルゴリズムを使用することができ、出力テーブルを生成するために

(探査ではない):

nameAttr = rs!name_attr 
do while nameAttr = rs!name_attr 
    cities = split(rs!visted_places_attr, " ") 
    for each city in cities 
     rsTarget.AddNew 
     rsTarget!name_attr = nameAttr 
     rsTarget!visited_place_attr = city 
     rsTarget.Update 
    next 
    rs.MoveNext 
    if rs.eof then exit do 
loop 
+0

おかげであなたの答えのために多くのことを。しかし、私はSQLを介してこれを行う方法を探しています(今私はhttp://www.pcreview.co.uk/forums/fyi-sql-splitting-delimited-concatenated-string-intoを適用しようとしています-separate-strings-rows-t1171660.htmlしかし、私はそれを理解することはできません..) –

+3

SQLでそれを行うには、それらのスペースの数に基づいて都市フィールドを解析するいくつかの醜いUNIONクエリが含まれている可能性があります。これは1回限りの操作です。では、上記のコードを使用するだけではなく、SQLで終わることよりもはるかに簡単です。 –

関連する問題