'寻找题号的子程序 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
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,所以程序就是那样的。 你自己在改改。
Insert into 临时表 select * from 原表 order By 排序字段
然后delete from 原表
再insert into 原表 select * from 临时表
最后drop table 临时表
题号为tiankong-1,tiankong-2,tiankong-3,..., xuanzhe-1,...
题库增加时就根据光标所在位置判断是什么题型,然后搜索该题型最大的题号,在它的上面加一。
不同题型中按随机好数抽取一定数量的题目。在排序。
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
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,所以程序就是那样的。
你自己在改改。