按字段的实际长度写入文本,字段值不够长的补空格,每个字段之间留一个空格

'要求:按字段的实际长度写入文本,字段值不够长的补空格,每个字段之间留一个空格 '作者:    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
            l_Width = rs.Fields(i).DefinedSize + 1 '字段之间加一个空格
            End If
                '按字段的实际长度写入文本,每个字段之间留一个空格
                Print #fnum, LTrim(RTrim(field_value)) & _
                Space(l_Width - _
                LenB(StrConv(LTrim(RTrim(field_value)), vbFromUnicode)));
              
        Next i   
        
        Print #fnum, ""        
        rs.MoveNext
  Loop
   
       rs.Close
      Close fnum    
    
      
 '导完后删除临时表miHospTemp

  cn.Execute "delete miHospTemp"

  MsgBox ("成功导出医保数据,文件存放路径为c:/miHospTemp.dat")

  cn.Close

  Set cn = Nothing

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值