私はあなたが何を望んでいるのか正確にはわかりません。値に末尾のスペースが含まれるテキスト列の名前のみが必要な場合は、カスタムVBA関数を使用できます。
tblFoo
テーブルの2列の値に末尾のスペースを追加しました。以下の関数を使用して、イミディエイトウィンドウでそれらの列の名前を取得します。
? ColumnsWithTrailingSpaces("tblFoo")
some_text, Trans Type
Public Function ColumnsWithTrailingSpaces(ByVal pTable As String) As String
Dim db As DAO.database
Dim fld As DAO.Field
Dim strReturn As String
Set db = CurrentDb
For Each fld In db.TableDefs(pTable).Fields
Select Case fld.Type
Case dbText, dbMemo
If DCount("*", pTable, _
"Right([" & fld.Name & "], 1) = ' '") > 0 Then
strReturn = strReturn & ", " & fld.Name
End If
Case Else
'pass
End Select
Next fld
Set fld = Nothing
Set db = Nothing
If Len(strReturn) > 0 Then
strReturn = Mid(strReturn, 3)
End If
ColumnsWithTrailingSpaces = strReturn
End Function
末尾のスペースも破棄したい場合は、UPDATE
(フィールド名をに追加するだけでなく)ステートメントを作成して実行するように関数を変更することでそれを行うことができますstrReturn
。
strUpdate = "UPDATE [" & pTable & "]" & vbCrLf & _
"SET [" & fld.Name & "] = RTrim([" & fld.Name & "]);"
db.Execute strUpdate, dbFailOnError
テキスト列のいずれかに1つ以上の末尾のスペースが含まれているすべての行を表示する場合はWHERE
、関数によって返されるフィールド名を参照する句を持つクエリを作成できColumnsWithTrailingSpaces()
ます。
SELECT *
FROM TABLEA
WHERE
Right(Col1, 1) = ' '
OR Right(Col9, 1) = ' '
OR Right(Col42, 1) = ' '
それらの提案のどれもあなたが望むものをあなたに与えないならば、あなたが望むものを明確にしてください。;-)