Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Home Premium : Access 2003)
スペ−ス挿入
投稿日時: 17/05/03 20:55:30
投稿者: かおりん

東京1 名古屋2 大阪3  とありますが
 
東京 1 名古屋 2 大阪 3 と数字の前にスペ−ス挿入したいのですが方法を教えて下さい。

回答
投稿日時: 17/05/04 23:23:25
投稿者: box5040

こんなのはどうでしょう。
 
Function Test(ByVal thisStr As String) As String
 
    Dim myStr As String, i As Long
     
    myStr = ""
    For i = 1 To Len(thisStr) - 1
        myStr = myStr & Mid(thisStr, i, 1)
        If Mid(thisStr, i, 2) Like "[!0-9][0-9]" Then
            myStr = myStr & " "
        End If
    Next i
    Test = myStr & Right(thisStr, 1)
 
End Function
 
この関数の引数で「とありますが」とある文字列を渡すと、お望みの結果が返ると思います。ただし、数字は半角と仮定しています。また、スペースも半角です。全角の場合はそれなりの変更を加える必要があります。

投稿日時: 17/05/05 07:18:50
投稿者: かおりん

 ありがとう。

回答
投稿日時: 17/05/05 10:04:42
投稿者: hatena
投稿者のウェブサイトに移動

細かいつっこみ、ご容赦(^^;)
 

box5040 さんの引用:
ただし、数字は半角と仮定しています。また、スペースも半角です。全角の場合はそれなりの変更を加える必要があります。

 
Like演算子で比較していますが、Accessの場合、デフォルトで
Option Compare Database
が指定されているので、テキストモードの比較になり、半角、全角は区別しないです。
ですので、提示のコードで全角数字でも、スペースを挿入します。
 
逆に全角数字は無視して、半角数字のみスペースを挿入したい場合は、
モジュール先頭の宣言を下記に変更して、バイナリモードの比較にします。
 
Option Compare Binary
 
ただし、モジュール全体がバイナリモードになりますので、
このモジュールはバイナリモードの比較をしたいプロシージャのみでまとめるようにします。
 
下記も参考になるでしょう。
 
クエリで大文字/小文字、全角/半角を区別して文字列比較をしたい - hatena chips
http://hatenachips.blog34.fc2.com/blog-entry-399.html

回答
投稿日時: 17/05/05 19:50:29
投稿者: box5040

hatenaさん、
 
ありがとうございます。普段Excelばかりなので勉強になりました。

投稿日時: 17/05/12 07:03:29
投稿者: かおりん

ありがとう。