我正在开发一个vba工具来分析日志。 我用CREATE命令创建一个表
CREATE TABLE " & txtImportedLogTbleName & " (日付 DATETIME, WindowsID CHAR, 名前 CHAR)
然后从文件中读取值。 导入数据后,每个字段在值后都有许多空格(255的长度)。 尝试修剪以将值导出到数组并删除rs。但到目前为止没有运气。
下面是我尝试过的代码。
Public Function TrimAllFields(ByVal strSQL As String)
Dim intX, intArrDimX, intY, intArrDimY, intMyRecCounts As Integer
Dim arrTemp(), txtRsData As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
CurrentDb.TableDefs.Refresh
Set rs = db.OpenRecordset(strSQL)
On Error Resume Next
If Not rs.EOF Then rs.MoveLast
intMyRecCounts = rs.RecordCount
If (Err.Number <> 0) Then Call ErrorCatcher(Err.Number, Err.Description, Erl): Err.Clear
On Error GoTo 0
If intMyRecCounts > 0 Then
intArrDimX = rs.RecordCount
intArrDimY = rs.Fields.Count
rs.MoveFirst
ReDim arrTemp(intArrDimX, intArrDimY)
intX = 0
While Not rs.EOF And Not rs.BOF
For intY = 0 To intArrDimY - 1
If Not rs.Fields(intY).Value = "" Then
arrTemp(intX, intY) = Trim(rs.Fields(intY).Value)
rs.Edit
rs.Fields(intY) = arrTemp(intX, intY)
rs.Update
End If
Next intY
' rs.Delete
rs.MoveNext
intX = intX + 1
Wend
rs.Close
Set rs = Nothing
DoCmd.SetWarnings True
End Function
答案 0 :(得分:2)
在Access DDL中,CHAR
列是固定长度的255个字符。插入该列的值将用空格填充(最多255个字符)。
如果要使用可变长度的列,请使用TEXT
。默认最大长度仍为255个字符(您可以指定较小的最大长度,例如TEXT(100)
),但是不会填充这些值。