设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 1380|回复: 13
打印 上一主题 下一主题

[其它] 求助,如何将文本文件自动转入数据库中

[复制链接]
跳转到指定楼层
1#
发表于 2004-4-28 03:57:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何将文本文件自动转入数据库中,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2004-4-29 04:05:00 | 只看该作者
请各位多多关照

点击这里给我发消息

3#
发表于 2004-4-29 17:52:00 | 只看该作者
看了你的Rec01.txt和Rec02.txt文件, 由于文件中包含了一些无法显示的字符, 因此:

首先你必须将这些无法显示的字符去掉, 具体办法是将文件读到一个字符数组中, 遍历数组中的每一个字符, 将字符的ASCII小于32的都变成32(即空格,但为ASCII为10或13的不要转,因为它们一为回车,一为换行), 然后再来进行数据转换操作.
4#
 楼主| 发表于 2004-4-30 03:39:00 | 只看该作者
斑竹能否抽空帮助做个范例?谢谢

点击这里给我发消息

5#
发表于 2004-4-30 20:17:00 | 只看该作者
这段代码,你试试:

Public Sub Turn(ByVal Filename As String)
    Dim intFileNo As Integer
    Dim BLOB() As Byte
    Dim lngFile As Long
    Dim i As Long
   
    intFileNo = FreeFile
    Open Filename For Binary As intFileNo
    lngFile = LOF(intFileNo)
    ReDim BLOB(lngFile)
   
    Get intFileNo, , BLOB
    Close intFileNo
   
    For i = 0 To lngFile - 1
        If BLOB(i) < 32 And BLOB(i) <> 10 Then BLOB(i) = 32
    Next
   
   
    intFileNo = FreeFile
    Open Filename & "-n.txt" For Binary As intFileNo
    Put intFileNo, , BLOB
    Close intFileNo

    Dim ss As String
    Dim kk
    Dim jj, dd
   
    Open Filename & "-n.txt" For Input As intFileNo
    Line Input #1, ss
    Close intFileNo
    kk = Split(ss, Chr(10))
    lngFile = UBound(kk)
   
    Dim rs As New ADODB.Recordset
    rs.Open "[表2]", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    rs.AddNew
   
    For i = 0 To lngFile - 1
        ss = "": dd = ""
        kk(i) = LTrim(kk(i))
        
        If kk(i) <> "" Then
            If InStr(1, kk(i), " ") > 0 Then ss = Left(kk(i), InStr(1, kk(i), " ") - 1)
            dd = LTrim(Mid(kk(i), Len(ss) + 5))
            If InStr(1, dd, " ") > 0 Then dd = Left(dd, InStr(1, dd, " ") - 1)
            Select Case ss
            Case "Date":        rs("Date") = dd & " "
            Case "Operator":    rs("OperatorID") = dd & " "
            Case "atient":     rs("atientID") = dd & " "
            Case "Type":        rs("Type") = dd & " "
            Case "Temp":        rs("Temp") = dd & " "
            Case "tHb":         rs("tHb") = dd & " "
            Case "FIO2":        rs("FIO2") = dd & " "
            Case "pH(T)":       rs("pH") = dd & " "
            Case "pCO2(T)":     rs("pCO2") = dd & " "
            Case "pO2(T)":      rs("pO2") = dd & " "
            Case "HCO3-":       rs("HCO3-") = dd & " "
            Case "SBC":         rs("SBC") = dd & " "
            Case "ABE":         rs("ABE") = dd & " "
            Case "SBE":         rs("SBE") = dd & " "
            Case "tCO2":        rs("tCO2") = dd & " "
            Case "sO2":         rs("sO2") = dd & " "

            End Select
            
        End If
    Next
    rs.Update
    rs.Close
    Set rs = Nothing
End Sub

==============
例如:
Call Turn(currentproject.Path & "\rec01.txt")


祝你好运!
6#
 楼主| 发表于 2004-4-30 21:09:00 | 只看该作者

调试出现错误,见附件

调试出现错误,见附件,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

7#
发表于 2004-4-30 21:22:00 | 只看该作者
[quote]以下是引用ccczzz在2004-4-30 13:08:56的发言:
调试出现错误,见附件,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
 楼主| 发表于 2004-5-1 01:31:00 | 只看该作者
下载了您得例程,同样出错,同样的提示,我的环境是win98+access2000,好像也没有丢失引用,请指点,谢谢

点击这里给我发消息

9#
发表于 2004-5-1 04:41:00 | 只看该作者
    kk = Split(ss, Chr(10))

Split函数是VBA的内置函数, 不应该出错. 你最好检查一下你ACCESS是否正常.
10#
 楼主| 发表于 2004-5-1 05:53:00 | 只看该作者
重装office,测试成功,谢谢您的帮助。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 03:06 , Processed in 0.098451 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表