nengft 2015-04-23 02:02 采纳率: 0%
浏览 1705
已采纳

各路好汉大神,急需救助,我写的数据库代码在显示数据时,只显示最后一条

我写的代码如下:

 Sub depart(ByVal a As String)
        Dim i As Short
        Dim j As Short
        Dim n As Integer
        Dim k As Integer
        n = DataSet11.Tables("timing").Rows.Count
        '  If InStr(1, a, "*") = 0 Then '  以防没有数字直接读入*end of table
        For k = 1 To n
            For i = 1 To 3
                a = LTrim(a)
                j = InStr(1, a, " ")
                Select Case i
                    Case 1
                        If Len(Trim(a)) = 0 Then
                            Exit For
                        Else
                            DataSet11.Tables("timing").Rows(k - 1)(0) = Val(a.Substring(0, j - 1))
                            a = Mid(a, j)
                        End If
                    Case 2
                        If Len(a) = 0 Then
                            Exit For
                        Else
                            DataSet11.Tables("timing").Rows(k - 1)(1) = Val(a.Substring(0, j - 1))
                            a = Mid(a, j)
                        End If
                    Case 3
                        If Len(a) = 0 Then
                            Exit For
                        Else
                            DataSet11.Tables("timing").Rows(k - 1)(2) = Val(a)
                        End If
                End Select
            Next i

        Next

If InStr(1, a, "* Date records of type dd mm yyyy") <> 0 Then

            a = LineInput(1)
            Debug.Print(a)
            Do
                Call depart(a)
                Debug.Print(a)
                a = LineInput(1)
            Loop Until InStr(1, a, "*") <> 0
        End If

从txt中找出的数据,都是对的,但是在数据上只显示最后一条记录。。。为什么啊?求大神帮我修改代码

  • 写回答

6条回答 默认 最新

  • danielinbiti 2015-04-23 02:36
    关注

    depart改成类似下面的逻辑,没有调测过,自己试吧

     Sub depart(ByVal a As String)
            Dim i As Short
            Dim j As Short
            Dim n As Integer
            Dim k As Integer
            Dim dt as DataTable = DataSet11.Tables("timing")
            dim dr as datarow=DataTable.NewRow()
            '  If InStr(1, a, "*") = 0 Then '  以防没有数字直接读入*end of table
            For i = 1 To 3
                    a = LTrim(a)
                    j = InStr(1, a, " ")
                    Select Case i
                        Case 1
                            If Len(Trim(a)) = 0 Then
                                Exit For
                            Else
                                dr(0) = Val(a.Substring(0, j - 1))
                                a = Mid(a, j)
                            End If
                        Case 2
                            If Len(a) = 0 Then
                                Exit For
                            Else
                                dr(1) = Val(a.Substring(0, j - 1))
                                a = Mid(a, j)
                            End If
                        Case 3
                            If Len(a) = 0 Then
                                Exit For
                            Else
                                dr(2) = Val(a)
                            End If
                    End Select
                Next i
             dt.rows.add(dr)
            'End If
            'Debug.Print(k, i, j, n)
        End Sub
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题