我想转换的txt文本格式入下     23,05,03
                           23,05,08
也就是7个用逗号隔开的数字,并且txt文本中有多少行这样的数据时不确定的。
access数据库是已经建好的,数据表是dataget,表头是,“时”,“分”,“秒”,文本文件中的数据分别与他们对应,想用一个标准按钮就实现转入功能,希望能得到达人的代码,不胜感激!!!!

解决方案 »

  1.   

    用ACCESS数据库的导入向导试试
      

  2.   

    你的TXT文件格式到底是怎么样的 11,22,33,44,55,66,77空格/回车?
    2条记录之间用什么分隔
      

  3.   

    上面写错了,txt文本每行3个数据,即:
    23.05.03
    23.05.08
      

  4.   

    在vb代码中分割每一行字符串,使用ADODB的Insert into插入到目标表.
      

  5.   

    很长时间不使用VB编程了,给你个思路:
    读入需转换的文件,遍历每一行,然后:
    dim s as string
    s:= '23.05.03' '实际应用中,替换成该行文本
    s:= Left(s,2)+","+SubString(s,4,2)+","+Right(s,2)
    '以下是数据库插入语句
    SQLStr="Insert Into 目标表(时,分,秒) Values("+s+")"
    具体的命令和字符串修饰符记不清了,根据VB规则做相应修改。
      

  6.   

    '==========添加模块,写下面代码=============='传递参数SQL传递查询语句,MsgString传递查询信息。自身以一个数据集对象的形式返回
    Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
    Dim Cnn As ADODB.Connection         '定义连接
    Dim Rst As ADODB.Recordset
    Dim sTokens() As String              '定义字符串
        
    On Error GoTo ExecuteSQL_Error              '异常处理
        
        sTokens = Split(SQL)                '用Split函数产生一个包含各个子串的数组
        
        Set Cnn = New ADODB.Connection      '创建连接
        Cnn.Open ConnectString
        
        If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then       '判断字符串中是否含有指定内容
            Cnn.Execute SQL             '执行查询语句
            MsgString = sTokens(0) & "query successful"             '返回查询信息
        Else
            Set Rst = New ADODB.Recordset               '闯将数据集对象
            Rst.Open Trim$(SQL), Cnn, adOpenKeyset, adLockOptimistic        '返回查询结果
            Set ExecuteSQL = Rst                '返回记录集对象
            MsgString = "查询到" & Rst.RecordCount & " 条记录"
        End If
        
    ExecuteSQL_Exit:    Set Rst = Nothing               '清空数据集对象
        Set Cnn = Nothing               '中断连接
        Exit FunctionExecuteSQL_Error:               '判断错误类型
        
        MsgString = "查询错误:" & Err.Description
        MsgBox MsgString
        Resume ExecuteSQL_ExitEnd Function'连接数据库
    Public Function ConnectString() As String
        '返回一个数据库连接
        ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password= 密码 ;Data Source=" & App.Path & "\db.mdb"
    End Function
    '===========建立窗体,写下面代码=============
    Private Sub Command1_Click()
    '定义SQL语句及数据库参数
        Dim TxtSQL As String
        Dim Mrc As New ADODB.Recordset
        Dim MsgText As String
    '文本读入变量
        Dim InputData As String
    '临时变量
        Dim StrTemp() As String
        
        Open App.Path & "\数据文本.txt" For Input As #1
        Do While Not EOF(1)
        Line Input #1, InputData
            DoEvents
            StrTemp = Split(InputData, ".") '如果分割符是,就把.替换成,这个地方格式一定要和文本里的一样,否则无法分组.
            
            TxtSQL = "Insert Into dataget(时) Values(StrTemp(0))"
            Set Mrc = ExecuteSQL(TxtSQL, MsgText)
            Mrc.Close
            TxtSQL = "Insert Into dataget(分) Values(StrTemp(1))"
            Set Mrc = ExecuteSQL(TxtSQL, MsgText)
            Mrc.Close
            TxtSQL = "Insert Into dataget(秒) Values(StrTemp(2))"
            Set Mrc = ExecuteSQL(TxtSQL, MsgText)
            Mrc.Close
            
    '上面添加的不成功就试试下面的。上面的格式可能有错误。
            'TxtSQL = "select * from dataget"
            'Set Mrc = ExecuteSQL(TxtSQL, MsgText)
            'Mrc.AddNew
            'Mrc.Fields("时") = StrTemp(0)
            'Mrc.Fields("分") = StrTemp(1)
            'Mrc.Fields("秒") = StrTemp(2)
            'Mrc.Update
            'Mrc.Close
        Loop
        Close #1
        
        
        MsgBox "转换完成"
    End Sub