将选定Access数据表导出成TXT文件,并以TAB分开

2002-12-13 00:58:00
大熊-Office交流网
原创
2708

大熊
1、用transfertext方法
2、编程写入文本文件,循环处理每一个记录。
当然,两者有些区别,第二个方法优点是灵活些。

李啸林

使用 Open 输出目标 For Output As #ID 对文本文件进行处理


我写过,以下程序将相关数据导出 输出给工商银行的Txt文本文件.

Private Sub 工行输出(ID As Integer, SQL As String, Err_str)
'SQL格式 帐号 姓名 合计
Dim db As Database
Dim rstTemp As Recordset
Dim strLine As String
Dim Hj As String
Dim NAME As String

Set db = CurrentDb
Set rstTemp = db.OpenRecordset(SQL)

Do Until rstTemp.EOF
  With rstTemp.Fields
    If Len(Trim(!帐号)) <> 19 Then
      Err_str = Err_str & vbCrLf & !帐号 & " " & !姓名 & " " & !合计 & "帐号错误"
    Else
      strLine = Trim(!帐号) & " "
      NAME = Trim(mID(!姓名, 2))
      If Len(NAME) = 1 Then
        NAME = "  " & NAME & "  "
      End If
      If Len(NAME) = 2 Then
        NAME = NAME & "  "
      End If
      strLine = strLine & Left(!姓名, 1) & NAME & " "
      Hj = CStr(!合计 * 100)
      Select Case Len(Hj)
            Case 1: Hj = "00000000" & Hj
            Case 2: Hj = "0000000" & Hj
            Case 3: Hj = "000000" & Hj
            Case 4: Hj = "00000" & Hj
            Case 5: Hj = "0000" & Hj
            Case 6: Hj = "000" & Hj
            Case 7: Hj = "00" & Hj
            Case 8: Hj = "0" & Hj
      End Select
      strLine = strLine & Hj
      Print #ID, strLine
    End If
    rstTemp.MoveNext
  End With
Loop

Set rstTemp = Nothing
Set db = Nothing

End Sub

Private Sub 工资输出(strErr As String)
Dim ID As Integer
Dim strSQL As String

ID = FreeFile

Open 输出目标 For Output As #ID

strSQL = "SELECT 帐号,姓名,合计 " _
       & "FROM 工资明细 " _
       & "WHERE 开户行 = '工行' " _
       & "ORDER BY 帐号;"
       
工行输出 ID, strSQL, strErr

Close #ID

End Sub



(设计规范-相关文章技巧链接):
ACC批量导入文本文件详解

最后编辑:zstmtony 于 2017-07-13 23:03:22

关键字

分享