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

回答
投稿日時: 17/10/09 14:10:33
投稿者: maruho

フィールド名を式1とします
6文字以上はカットします。
 
クエリのフィールドで
式1: Left([フィールド1] & " ",5)
でどうでしょうか。
 
 

回答
投稿日時: 17/10/09 22:04:12
投稿者: ウサギ美味し彼の山

話は逸れてしまいますが、
Strという関数があるので、
その変数名を利用するのは避けたほうがよろしいと思います。

回答
投稿日時: 17/10/10 12:44:14
投稿者: RK

関数作っちゃうならmidステートメントでもいいかも
https://www.moug.net/tech/exvba/0140045.html
 
  Public Function Padding(ByVal strMoji) As String
    Padding = Space(5)
    Mid(Padding, 1) = strMoji
  End Function
 
5文字を超えた分は切り捨てられるし、データ量次第では速いかもしれないです。

トピックに返信