Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7 Professional : Access 2010)
文字の後ろに半角のスペース(空白)を付ける方法
投稿日時: 17/05/16 17:21:45
投稿者: 虹

いつもお世話になっております。
 
文字の後ろに半角スペースを付ける方法は、ありませんでしょうか。
 
<サンプル例>
全ての文字の桁数を5桁に合わせたい為、後ろに半角のスペースを追加したい。 
 
 SIL → 後ろに2つスペース付けたい 
 KU  → 後ろに3つスペース付けたい 
 SLCD → 後ろに1つスペース付けたい
 

回答
投稿日時: 17/05/16 17:34:03
投稿者: sk

どのオブジェクト(テーブル/クエリ/フォーム/レポート)に対して
どのような操作をされる場合の話をなさっているのでしょうか。

回答
投稿日時: 17/05/17 00:28:43
投稿者: i-brown

単純にFunctionで。

Public Function Padding(ByVal str) As String
    Padding = str
    Dim n As Long: n = Len(str)
    If n < 5 Then Padding = Padding & Space(5 - n)
End Function

回答
投稿日時: 17/05/20 21:17:20
投稿者: AccessKid

i-brown さんの引用:
単純にFunctionで。
Public Function Padding(ByVal str) As String
    Padding = str
    Dim n As Long: n = Len(str)
    If n < 5 Then Padding = Padding & Space(5 - n)
End Function

 
Public Function Padding(ByVal str) As String
    Padding = Left$(str & Space$(5), 5)
End Function
で良さそうですが。

回答
投稿日時: 17/05/20 22:08:02
投稿者: i-brown

AccessKid さんの引用:

Public Function Padding(ByVal str) As String
    Padding = Left$(str & Space$(5), 5)
End Function
で良さそうですが。

 
虹さんがどのようなテーブル定義を使っているかによりますが、6文字以上の入力があったとき、5文字に切り捨てると後の追跡が難しくなるかと思い、老婆心ながら6文字以上は無処理になるように提案しました。
format(str,"!@@@@@")

の方が単純で良かったかもしれません。
(!は左から右へプレースホルダを適用、@は任意の文字)
https://msdn.microsoft.com/ja-jp/library/office/gg251755.aspx

トピックに返信