[三流君] −−> [プログラマー業務の愚痴] −−> [バックナンバー一覧]
−−> 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だけど

フィードバック

愚痴系の→[掲示板]←を覗く、質問を書き込む

評価・感想

No.006を読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る場合は下記に気軽に書いてください
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります

三流君の主なリンク先

[アクセスランキング] [サイトマップ] [リンク先・相互リンク先など]
三流プログラマー 業務の愚痴 掲示板 バックナンバー 登録と解除
コンビニのオモテとウラ話 掲示板 バックナンバー 登録と解除
VBAで楽しくプログラミング 掲示板 バックナンバー 登録と解除
ASPで遊ぶ、失敗する 掲示板 バックナンバー 登録と解除
www.ken3.org(サイト内)から Google を利用して、

Ken3の日記(weblog) -- [広告・副収入系] [プログラマー業務の愚痴] [VBA系の話題] [ASP系の話題] [コンビニ系ネタ] [その他]

その他 宣伝広告