📄 exams.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "Exams"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Public ExamId As Integer '题号INT
Public ClassId As Integer '课程号INT
Public TitleName As String '题型名STRING 20
Public UserName As String '录入员 STRING 20
Public Describe As String '描述 STRING 50
Public Sub Init()
ExamId = -1
ClassId = -1
TitleName = ""
UserName = ""
Describe = ""
End Sub
Public Function GetNewId() As Long
Dim TmpId As Long
'连接数据库
DB_Connect
'设置要执行的SQL语句
SqlStmt = "SELECT ExamId FROM Exams ORDER BY ExamId"
'执行SQL语句
OdbcExt (SqlStmt)
'读取SELECT语句返回的查询结果
i = 1
Do While SQLFetch(Hstmt) <> SQL_NO_DATA_FOUND
ColVal = String(40, 0)
rc = SQLGetData(Hstmt, 1, 1, ColVal, Len(ColVal), pcblen)
TmpId = Val(ColVal)
If TmpId = i Then
i = i + 1
Else
GetNewId = i
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
Exit Function
End If
Loop
rc = SQLFreeStmt(Hstmt, SQL_DROP)
'断开与数据库的连接
DB_Disconnect
'将得到的新编号作为函数的返回值
GetNewId = i
End Function
'查看试题库中试题总数量
Public Function Counts() As Long
DB_Connect
SqlStmt = "SELECT ExamId FROM Exams "
OdbcExt (SqlStmt)
i = 0
Do Until SQLFetch(Hstmt) = 2000
i = i + 1
Loop
Counts = i
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Function
'查看一章节的某题型的数量
Public Function In_Db3(ByVal TmpExamId As Integer, ByVal TmpClassId As Integer, _
ByVal TmpTitle As String) As Boolean
DB_Connect
SqlStmt = "SELECT ExamId FROM Exams WHERE ExamId=" _
+ Trim(Str(TmpExamId)) + "and ClassId=" _
+ Trim(Str(TmpClassId)) + " and TitleName='" + Trim(TmpTitle) + "'"
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) = SQL_NO_DATA_FOUND Then
In_Db3 = False
Else
In_Db3 = True
End If
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Function
'查看一章节的某题型的数量
Public Function ExamCount(ByVal TmpId As Integer, ByVal TmpTitle As String) As Integer
DB_Connect
SqlStmt = "SELECT ExamId FROM Exams WHERE ClassId=" _
+ Trim(Str(TmpId)) + " and TitleName='" + Trim(TmpTitle) + "'"
OdbcExt (SqlStmt)
i = 0
Do Until SQLFetch(Hstmt) = 100
i = i + 1
Loop
ExamCount = i
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Function
'删除
Public Sub Delete(ByVal TmpId As Long)
DB_Connect
SqlStmt = "DELETE FROM Exams WHERE ExamId=" + Trim(Str(TmpId))
OdbcExt (SqlStmt)
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
Public Sub GetInfo(TmpExamId As Integer)
ExamId = TmpExamId
DB_Connect
SqlStmt = "SELECT * FROM Exams WHERE ExamId=" + Trim(TmpExamId)
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) <> SQL_NO_DATA_FOUND Then
'读取课程名称
ColVal = String(400, 0)
rc = SQLGetData(Hstmt, 2, 1, ColVal, Len(ColVal), pcblen)
ClassId = Val(ColVal)
'读取题型名称
ColVal = String(400, 0)
rc = SQLGetData(Hstmt, 3, 1, ColVal, Len(ColVal), pcblen)
TitleName = TrimStr(ColVal)
'读取题目录入员
ColVal = String(400, 0)
rc = SQLGetData(Hstmt, 6, 1, ColVal, Len(ColVal), pcblen)
UserName = TrimStr(ColVal)
'读取备注
ColVal = String(400, 0)
rc = SQLGetData(Hstmt, 7, 1, ColVal, Len(ColVal), pcblen)
Describe = TrimStr(ColVal)
Else
Init
End If
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
Public Function In_DB(ByVal TmpClassId As Integer, ByVal TmpTitleName As String) As Boolean
DB_Connect
SqlStmt = "SELECT ExamId FROM Exams WHERE ClassId=" _
+ Trim(Str(TmpClassId)) + "and titlename= '" + Trim(TmpTitleName) + "'"
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) = SQL_NO_DATA_FOUND Then
In_DB = False
Else
In_DB = True
End If
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Function
'判断一个章节里是不是有题目
Public Function In_DB2(ByVal TmpClassId As Integer) As Boolean
DB_Connect
SqlStmt = "SELECT ExamId FROM Exams WHERE ClassId=" + Trim(Str(TmpClassId))
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) = SQL_NO_DATA_FOUND Then
In_DB2 = False
Else
In_DB2 = True
End If
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -