Access (VBA)

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

 
(Windows 10 Pro : Microsoft 365)
全フィールドの、改行と文字列の前後のスペースを削除したい
投稿日時: 23/02/08 22:19:36
投稿者: mugiro7

テーブルの40個の全フィールドに対し一括で、フィールド内の改行と文字列の前後のスペースを削除したい。
もしくは、AccessVBAでテーブルをCopyFromRecordsetで既存のエクセルファイルに貼りつけた後、AccessVBAから、全フィールドの、改行と文字列の前後のスペースを削除したい。

回答
投稿日時: 23/02/09 13:34:36
投稿者: hatena
投稿者のウェブサイトに移動

40個のフィールドを更新する更新クエリを作成してそれを実行すればいいでしょう。
 
そのような長いSQLを書くのが面倒ということなら、VBAでSQLを生成してそれを実行すればいいでしょう。
 

Public Sub Sample()
    Dim strSQL As String, rs As DAO.Recordset, fld As DAO.Field
    
    Set rs = CurrentDb.OpenRecordset("テーブル1")
    For Each fld In rs.Fields
        strSQL = strSQL & ", [" & fld.Name & "] = _
                 Replace(Trim([" & fld.Name & "]),Chr(13) & Chr(10),'')"
    Next
    rs.Close
    
    strSQL = "UPDATE テーブル1 SET" & Mid(strSQL, 2)
    CurrentDb.Execute strSQL, dbFailOnError
End Sub

投稿日時: 23/02/09 16:29:26
投稿者: mugiro7

hatena様
早急に的確な回答をいただき、ありがとうございました。
テキスト以外のフィールドがあり、データ型のエラーになったので、
Fieldsの部分を配列で指定してできました。
大変、勉強になりました。