I’m relatively experienced with Object oriented programming, but this is my first time ever working in Office with VBA and I’m entirely stumped by the syntax. I’ve been doing some searching and messing with it for the past hour or so, but have been trouble actually getting a macro that runs successfully and does what I need.
I’m attempting to loop through every cell in an Access table and apply the Trim function to the contents of that cell and, as a bonus, I’d like to remove all extra spaces in the string (if any). I.e. " Trim this__string " would simply become "Trim this string" (I used the underscore there to represent individual, multiple spaces since StackOverflow didn’t want to show my multiple spaces).
Any code example of doing something like this, or at least something to get me close and then I can tinker with it, would be greatly appreciated. Thanks!
You can remove leading and trailing spaces with the
Trim()function in a query.If you will be doing this from within an Access session, you could use
Replace()to replace a sequence of two spaces with a single space.However you may need to run that
Replace()query more than once to get all the contiguous space characters down to only one.You could also do a regular expression-based replacement with a user-defined function. I don’t know if that’s worth the effort, though. And a user-defined function is also only available from within an Access application session.
I overlooked the “every cell in a table” aspect. That makes this more challenging and I don’t think you can solve it with a standard macro or query. You can however use VBA code to examine the
TableDef, and iterate through its fields … then call yourTrimand/orReplaceoperations on any of those fields whose data type is text or memo.Here’s a rough code outline to identify which fields of a given table are text type.