Recentemente tive a necessidade de aparar campos texto numa tabela em um dos bancos de dados que precisei fazer manutenção.
Ao efetuar o loop através de cada tabela no banco de dados, eliminei todos os espaços desnecessários dos campos de texto. Agora todas as consultas de comparação funcionarão.
Esta versão também funcionará quando houver campos que não forem texto.
Sub TrimAllTextFieldsAllTables()Dim db As DAO.DatabaseDim tbls As DAO.TableDefsDim tbl As DAO.TableDefDim thisTable As DAO.TableDefDim SQLString As StringDim flds As DAO.FieldsDim fld As DAO.FieldDim hasText As BooleanSet db = CurrentDbSet tbls = db.TableDefs' loop through each appropriate table (i.e. no linked or system tables)For Each tbl In tblshasText = False 'addedIf tbl.Attributes = 0 ThenSet thisTable = tbl' grab all fieldsSet flds = thisTable.FieldsSQLString = "UPDATE [" & tbl.Name & "] SET "' if field is text, create SQL string to trim itFor Each fld In fldsIf fld.Type = dbText ThenhasText = True 'addedSQLString = SQLString & _"[" & fld.Name & "] = Trim([" & fld.Name & "]),"End IfNext fldSQLString = Left(SQLString, Len(SQLString) - 1) & ";"If hasText Then 'addedDebug.Print SQLString' execute update statement on tabledb.Execute SQLString, dbFailOnErrorEnd If 'addedEnd IfNext tblEnd Sub
Tags: VBA, Access, field, text, campo, texto, trim,
Nenhum comentário:
Postar um comentário