按字段的实际长度写入文本,字段值不够长的补空格,每个字段之间留一个空格
'要求:按字段的实际长度写入文本,字段值不够长的补空格,每个字段之间留一个空格 '作者: flashasp
'创建时间:2005-01-18
'表结构: flashasp
'=======================================================================================
1 bz_code varchar 20 1
0 czrq varchar 10 1
0 zy_num varchar 4 1
0 jsdh varchar 20 1
0 keshi varchar 40 1
0 class varchar 1 1
0 code varchar 20 1
0 unit varchar 40 1
0 kong varchar 1 1
0 num varchar 10 1
0 price varchar 10 1
0 dept_name varchar 40 1
0 doctor varchar 10 1
0 fsrq varchar 10 1
'========================================================================================
SQL_text="select * from miHospTemp" '输出结果
'NULL 2005-01-12 2 1333 内科 NULL NULL NULL NULL NULL NULL NULL NULL NULL
'NULL NULL NULL NULL NULL 1 胆囊切除术 1 280 内科 carina 2005-01-12
'NULL NULL NULL NULL NULL 1 甲状腺切除术 1 500 内科 boy 2005-01-12
'========================================================================================
'下面是实现方法:
========================================================================================
Dim fnum, J, K, l_Width As Integer
Dim file_name As String
Dim num_fields As Integer
Dim field_width() As Integer
Dim field_value As String
Dim i As Integer
Dim num_processed As Integer
fnum = FreeFile
file_name = "c:\miHospTemp.dat"
Open file_name For Output As fnum
Set rs = cn.Execute(SQL_text)
num_fields = rs.Fields.Count
'按字段的实际长度写入文本,每个字段之间留一个空格
'======================================================================================
Do While Not rs.EOF
num_processed = num_processed + 1
If num_processed = 1 Then '先写第一行的记录,前5个字段
J = 0
K = 4
Else '
J = 5
K = num_fields - 1 '再写第一行后的N行记录,后9个字段
End If
For i = J To K
field_value = rs.Fields(i).Value & "" '加一个& ""为了避免字段NULL的错误
If i = 4 or i = K Then
l_Width = rs.Fields(i).DefinedSize '最后一个字段不要空格(即第4个和第14个字段)
Else<