人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ACCESSの質問です。

フィールド1

あ >> い >> う >> え >> お

上記のようなテーブルがあるのですが、これを

フィールド1

お << え << う << い << あ

のように逆順する方法を教えてください。

●質問者: rupopon
●カテゴリ:コンピュータ 学習・教育
✍キーワード:access フィールド
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kaiton
●50ポイント

StrRvというユーザ定義の関数を作成しましたので、モジュールに次のコードを貼り付けてください。

Function StrRv(StrA As String, StrSplt1 As String, StrSplt2 As String) As String
 Dim StrB
 StrB = Split(StrA, StrSplt1)
 StrRv = ""
 For i = 0 To UBound(StrB)
 StrRv = StrRv & StrB(i)
 If i <> UBound(StrB) Then StrRv = StrRv & StrSplt2
 Next
End Function

http://vba.officehp.com/article/97483290.html

を参考に


この関数は、 逆順にするフィールド 、 区切りの文字 、 変更後の区切りの文字

の3個の値を指定します。


そして、クエリでフィールドのところに

フィールド2:StrRv([フィールド1]," >>"," << ")

これで、逆順になっていると思いますので、元のテーブルを変更するなら更新クエリなどで

利用してください。


うまくいかないなら、コメントで補足します。

◎質問者からの返答

すみません。結果は、記号は逆になりましたが、中身の単語は

そのままの順番でした。

りんご >> みかん >> かき >> なし >> バナナ

りんご << みかん << かき << なし << バナナ


2 ● ふるるP
●20ポイント

フィールド1の中の値が

「あ >> い >> う >> え >> お」

となっているのでしょうか?

いろいろ手段はあると思いますが、VBAを使って、例えばこんなの。

フィールド1の中身を取り出し(レコードセット)、

Split関数で分割し、並び替え、

Joinで欲しい文字列を作り、

UpdateのSQLでフィールド1に反映させる。

SQLの中で終わらせるなら、

フィールド1の文字列の順番を入れ替える。便利な関数は無いので自作しておき(strReverseとか)、

Update テーブル Set フィールド1=strReverse(フィールド1)

その後、<<と>>を入れ替える。

Update テーブル1 set フィールド1=Replace(フィールド1,">>","<<")

でしょうか。

◎質問者からの返答

フィールド1の中身を取り出し(レコードセット)、

Split関数で分割し、並び替え、

Joinで欲しい文字列を作り、

UpdateのSQLでフィールド1に反映させる。

これを実際のコードにしていただけるとたすかります。。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ