建议文本使用 *.csv; 就象数据库/表一样使用了。还可以用 Excel 编辑打印。

解决方案 »

  1.   

    谢谢邵世鑫,我知道文本肯定要导入数据库进行操作,现在的问题是我
    不知道如何用代码去实现文本的导入并且去更新相应的字段,是否可以有个
    大概的代码段呢?
      excel编辑当然可以,只是有些繁琐,且灵活性不够。因为想做个界面,
    以上所需的代码在后台运行。
      另,我如何给答复都分数啊?是否是系统自动自动加分呢?
      

  2.   

    不难,但写起来挺麻烦的.就是用ADO和低级文件操作
      

  3.   

    给你一个我写的例子,仔细看看吧:
    Private Sub mTxtToTempDo()
        Dim intJobNo            As Long
        Dim strJobNo            As String
        Dim blnJobDo            As Boolean
        Dim strDoNo             As String
        Dim strProdNo           As String
        Dim strPRODVER          As String
        Dim strBALANCE          As String
        Dim intBALANCE          As Double
        Dim intACTQTY           As Double
        Dim strACTQTY           As String    Dim strYY               As String
        Dim strMM               As String
        Dim strDD               As String
        Dim strHH               As String
        Dim strMN               As String
        Dim strSS               As String    Dim count               As Integer
        
        Dim strACTDATETIME      As String
        Dim strPcNo             As String
        Dim strHTNO             As String
        Dim strType             As String    Dim strsql              As String
        Dim strTemp             As String
        Dim strFile             As String
        Dim strLine             As String
        Dim intFileNum          As Integer
        Dim intrecord           As Long
        
        Dim dblBalance          As Double    Dim i                   As Integer
        Dim intdata             As Integer
        
        Dim strSql1              As String    Dim objCmd              As New ADODB.Command    
    '    Call gdbconnect
     ginttempnumber = 0
        intrecord = 0
        
            strFile = App.path & "\PcNo.txt"        intFileNum = FreeFile()        Open strFile For Input As #intFileNum        Do Until EOF(intFileNum)            Line Input #intFileNum, strLine            strPcNo = Trim(Mid(strLine, 1, 3))
            Loop
            Close #intFileNum    
        
        strFile = gHTDataPath & "\result.txt"
        
        intFileNum = FreeFile()
        Open strFile For Input As #intFileNum
        Do Until EOF(intFileNum)
            intrecord = intrecord + 1
            Line Input #intFileNum, strLine
        Loop
        Close #intFileNum
        
        Open strFile For Input As #intFileNum
        Do Until EOF(intFileNum)
        prgUploading.Max = intrecord
       
        
           Line Input #intFileNum, strLine
           strJobNo = Trim$(Mid(strLine, 1, 10))
           intJobNo = CLng(strJobNo)
           strDoNo = Trim$(Mid(strLine, 11, 10))
           
           strProdNo = Trim$(Mid(strLine, 21, 30))
           If Len(strProdNo) = 0 Then
           strProdNo = " "
           End If
           
           strPRODVER = Trim$(Mid(strLine, 51, 1))
           If Len(strPRODVER) = 0 Then
            strPRODVER = " "
           End If
           strBALANCE = Trim$(Mid(strLine, 52, 12))
           If Len(strBALANCE) = 0 Then
            strBALANCE = "0"
           End If
           
           intBALANCE = CDbl(strBALANCE)
           
           strACTQTY = Trim$(Mid(strLine, 64, 12))
           If Len(strACTQTY) = 0 Then
            strACTQTY = "0"
           End If
           intACTQTY = CDbl(strACTQTY)
           
           
           strYY = Mid(strLine, 76, 4)
           strMM = Mid(strLine, 80, 2)
           strDD = Mid(strLine, 82, 2)
           strHH = Mid(strLine, 84, 2)
           strMN = Mid(strLine, 86, 2)
           strSS = Mid(strLine, 88, 2)
           strACTDATETIME = "'" & strYY & "-" & strMM & "-" & strDD & " " & strHH & ":" & strMN & ":" & strSS & "'"
           
           If Trim(strYY) = "" And Trim(strMM) = "" And Trim(strDD) = "" And Trim(strHH) = "" And Trim(strMN) = "" And Trim(strSS) = "" Then
            strACTDATETIME = " Null"
           End If
           strHTNO = Trim$(Mid(strLine, 90, 3))
           If Len(strHTNO) = 0 Then
            strHTNO = " "
           End If
           strType = Trim$(Mid(strLine, 93, 1))
           If Len(strType) = 0 Then
            strType = " "
           End If
        
        strsql = "insert into tempDO(JobNo,DoNo,ProdNo,ProdVer,Balance,ActQty,ActDatetime,HtNo,PcNo,Type,flag,Ndatetime,Udatetime,isValid) values(" & intJobNo & ",'" & strDoNo & "','" & strProdNo & "','" & strPRODVER & "'," & intBALANCE & "," & intACTQTY & "," & strACTDATETIME & ",'" & strHTNO & "','" & strPcNo & "','" & strType & "','0','" & Date & "','" & Date & "','0')"
        objCmd.CommandType = adCmdText
        objCmd.ActiveConnection = gobjdbcn
        objCmd.CommandTimeout = 300
        objCmd.CommandText = strsql
        
    '    rsResult.CursorLocation = adUseServer
    '    rsResult.CursorType = adOpenForwardOnly
    '    rsResult.LockType = adLockReadOnly
        Debug.Print strsql
        objCmd.Execute
        
      ginttempnumber = ginttempnumber + 1
       prgUploading.Value = ginttempnumber
    Loop
    Close #intFileNum
      

  4.   

    谢谢wurf0(wurf),您的代码我还没有细看,一时还看不明白。慢慢研读吧。
      再请教各位有没有其它的方法了呢?
      再次感谢wurf0(wurf)一定给您加分。================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]
      

  5.   

    我总觉得用SQL语句可以更简单一点,直接通过两个表来操作,对于文本的导入是否可以用INSERT INTO?
      

  6.   

    你的两个问题,核心和关键都在如何分离出你所需的字串。
    我编了两个,以供参考:
    1)
    Private Function sel_strB(string1 As String) As String
    Dim i, begin, ends, longs As Byte
    For i = 1 To Len(string1)
        If Mid(string1, i, 1) = "|" Then
           begin = ends + 1
           ends = i
           longs = longs + 1
           If longs >= 2 Then GoTo founds 'if >=3 then 取C列....
        End If
    Next i
    founds:
    ends = ends - begin
    sel_strB = Mid(string1, begin, ends)
    End Function2)
    Private Function mymids(strings As String, begin As Byte, ends As Byte) As String
    mymids = Mid(strings, begin, ends - begin + 1)
    End Function