[三流君] −−> [プログラマー業務の愚痴] −−> [バックナンバー一覧]
−−> No.006 Accessで半角スペースを全角にしたい

Accessで半角スペースを全角にしたい


本文(発行内容)


<Accessで半角スペースを全角にしたい>
目次 
1.こんにちは
2.Accessで半角スペースを全角にしたい
3.いろいろな考え方が、、、
4.おわりの挨拶
----------------------------------------------------------------------------
/*
 * 1.こんにちは
*/
こんにちは。
匿名さんより、Access関係の質問、いただきました。
住所データの整理を行っており(年末年賀状の準備かな?)
氏名と名前の間を全角スペースで統一したいとのご相談でした。

AB型で気分屋のKen3が、一人二役で回答します。
*別なやり方を思いついた人、
 イヤこれは違う、、と一緒に毒舌したい人は、
 メール送ってください。

オイオイ、いつになったら、講座開始するの?
、、、、

/*
 * 2.Accessで半角スペースを全角にしたい
*/
匿名 さん wrote...
 >ACCESSで半角スペースを全角スペースにする関数か、
 >または、方法を教えて下さい
 >
 >特に名前などに間のスペースを簡単に変換する方法は?
 >
 >    例:  匿名 希望   ――→  匿名 希望

A = "匿名 希望"
msgbox strconv(A, vbWide)
でOKだと思うけど、、、
*vbWide --> 半角文字列を全角にする

これは、わかってんだよ。、、
じゃなくて、
更新クエリーとかで一括更新するには、
どうすんだよ。

そしたら、
更新クエリーで、
UPDATE DISTINCTROW T_DATA SET T_DATA.変換後 = StrConv([氏名元],vbWide);
って書けばいいんじゃないの?

StrConv([氏名元],vbWide)って書いても、
StrConv([氏名元],"vbWide")で勝手に""が付くんだよ。
自分でサンプル作ってから、回答してるの?

あっ、おっしゃる通り、
StrConv([氏名元],vbWide)のvbWideが書けないですね。
定数は、クエリーの中じゃ使えないみたいですね、、、
StrConv([氏名元],4)にすると、動きますよ。

どうやって、vbWide = 4って、わかったんだよ、、、

StrConvのヘルプ見て下さいよ、、、たまには、、、。
それか、デバックモード(CTRL+G)で、
? vbWideってやると、4と表示されますよ。

クエリーは書けたけど、
これだと、元から、
半角スペースが2つ入っているデータが
全角スペース2つに変換されるから、
使えないね。
例)匿名  希望 --> 匿名□□希望と全角スペース2つになる
また、半角英字で外人の名前が入っていたら、全角になってしまうだろ。
例)Kibou Tokumei --> Kibou Tokumei
半角カナでユースケ・サンタマリアなんて入ってたら、どう?

しつこいですね、、、わかりましたよ、
下記のモジュールを使ってください。
Public Function SP_Conv(moji) As String
    Dim n As Integer
    Dim RET As String
    Dim ChkString As String
    
    RET = "" 'リターン値の初期化
    
    '文字数分ループする
    For n = 1 To Len(moji & "")
        ChkString = Mid(moji, n, 1)
        If ChkString = " " Then '半角スペースかチェック
            RET = RET & " " '全角スペースをプラスする
            If Mid(moji, (n + 1), 1) = " " Then '次の文字がスペースがチェック
                n = n + 1  'ループカウンタを小細工
            End If
        Else
            RET = RET & ChkString 'スペース以外の時、そのままプラスする
        End If
    Next n
    
    SP_Conv = RET
End Function

更新クエリーで、
UPDATE DISTINCTROW T_DATA SET T_DATA.変換後 = SP_Conv([氏名元]);
って書けばOKだと思います。

[氏名元]がNullだった時、""に変換されてしまうよ。
それだと、マズイケースが出て来るんだよな、、、

もう、それぐらい、自分で改造してくださいよ。。。では。。。
*途中で投げだしちゃ、よくないよ、、、
 (完璧、考えてください)







/*
 *  3.いろいろな考え方が、、、
*/
プログラムを組んで、テストをしていると、
データによって、いろいろな処理の方法や、
例外ケースが出てきます。

「そんなの聞いてないよ...」「仕様外は対応しない」
など、言ってケンカするのも、面白い?ですが、
一番良いのは、打合せの時に想像力を働かせて、
事前に回避するのが、、、理想ですね。

ある話で、
この業界では常識だから事前に話さなかった
など言われて、イタイ目にあったことあります。

また、最近は、
「お客にムリだって、言って下さいよ、できないですよもう」
とチーム内のメンバーからは言われ、
お客からは、
「なんとかしてくださいよ」
と相談され、、、立場が、、、

あっ、このへんで愚痴も終らせないと、、、

Sp_cnv.lzh←Access97だけど


ページフッター

ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、

リンクや広告など

項目別に本音?それとも建て前?的な記事をまとめました。

気になったジャンル↓を選択してください。
[ルーキー rookies]・・・ 新人さん達 初心者さんへ
[学ぶ study]・・・学習、技術の取得
[仕様書 doc]・・・仕様書・設計書関係の話
[共同作業 team]・・・チーム、グループ作業
[プログラムは心? spirit]・・・プログラマー 心・気質・魂

[掲示板デビューしようぜ bbs]・・・掲示板関係の話、質問者・回答者の気持ちほか
[昔はできた seo]・・・三流式の効果無しSEOとアフィリエイト
[仕事や作業、転職 job]・・・仕事や転職、評価、作業など
[その他 etc]・・・その他 分類外の記事

※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。
※※読んで、気分を悪くされたらスミマセン。

Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]



[三流君(TOP ken3.org へ戻る)] / [プログラマー業務の愚痴] / [バックナンバー 一覧]