ado连access数据库,怎样才能对数据库排序后写回原数据库?

解决方案 »

  1.   

    先建立一个临时表,然后
    Insert into 临时表 select * from 原表 order By 排序字段
    然后delete from 原表
    再insert into 原表 select * from 临时表
    最后drop table 临时表
      

  2.   

    '可以为每种题型记一个缩写,比如tiankong(填空),xuanzhe(选择),wenda(问答)
    题号为tiankong-1,tiankong-2,tiankong-3,..., xuanzhe-1,...
    题库增加时就根据光标所在位置判断是什么题型,然后搜索该题型最大的题号,在它的上面加一。
    不同题型中按随机好数抽取一定数量的题目。在排序。
      

  3.   

    '寻找题号的子程序
    Public Function FindPrtname(M_String1 As String) As String
    Dim i As Integer
    Dim j As Integer
    j = Len(M_String1)
    For i = 1 To Len(M_String1)
        If Mid(M_String1, i, 1) = "-" Then
            j = i
        End If
        Next i
    If i <> j + 1 Then
        FindPrtname = Mid(M_String1, 1, j - 1) '去掉"-"后面的数字,用来搜索同题型的所有题目
         
    End If
        
    End Function
      

  4.   


    Private Sub CmdAdd_Click()If rs.EOF = False Then    Dim OldPrtName As String
        Dim NewPrtName As String
        Dim Modename As String
        OldPrtName = Trim(rs!题号)
        Modename = FindPrtname(OldPrtName)
        
        Dim SearchMaxPrtNo_Sql As String
        Dim SearchMaxPrtNo_rs As Recordset
        Set SearchMaxPrtNo_rs = New Recordset
        SearchMaxPrtNo_rs.CursorLocation = adUseClient
        SearchMaxPrtNo_Sql = "select * from 题库 where 题号 like '" + Modename + "%' order by 题号"
        SearchMaxPrtNo_rs.Open SearchMaxPrtNo_Sql, Cn, adOpenDynamic, adLockOptimistic
        SearchMaxPrtNo_rs.MoveLast   '按题号排序,如果是-0001之类的就可以得到最大的题号,
    如果是-1,-2,就得不到最大的题号,需要在这儿插入得到比较得到最大题号的程序段。
        
        NewPrtName = Trim(SearchMaxPrtNo_rs!题号) '得到最大的题号
        
        If Len(Modename) <> Len(NewPrtName) Then
            NewPrtName = Mid(NewPrtName, Len(Modename) + 2)
            NewPrtName = Format$((Val(NewPrtName) + 1), "00000")
            NewPrtName = Modename + "-" + NewPrtName
        Else
            NewPrtName = Modename + "-00001"
        End If
        
        
    End If
        
    End Sub
    我的程序是不同零件类型各有自己的缩写,每种零件类型有连续的编号,如轴类零件,我的编号是
    zhou-00001,zhou-00002,所以程序就是那样的。
    你自己在改改。
      

  5.   

    用ADODB对象取出表中记录,先按需要排好序(最好是增加一个不重复的Long型数字字段来记录,连续累加),再写入一个新表中。
      

  6.   

    http://expert.csdn.net/Expert/topic/1747/1747153.xml?temp=.209881http://expert.csdn.net/Expert/topic/1986/1986708.xml?temp=.6324121http://expert.csdn.net/Expert/topic/2022/2022776.xml?temp=.9453394