ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 22569|回复: 11

[分享] 选择题库考试系统软件单机版

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-12-31 18:07 | 显示全部楼层 |阅读模式
本帖最后由 考试加油站 于 2017-1-9 12:55 编辑

说明:本软件为VB开发,只要你将试题做成我们模板格式电子表格,即可批量导入软件,现分享如下。
具体步骤如下。
1.在电子表格模板中加入试题,试题根据答案选项多少,自动判断为单项还是多项选择
2.在题库编辑器中一键导入试题,此时生成一个数据库文件TK.MDB
3.将上面生成的数据库文件复制到客户端就可以使用了
4.3个附件需同时下载方可解压哦

这是电子表格固定格式
conew_001.jpg
这是导入界面
conew_002.jpg
这是成品软件界面
conew_sa.jpg
请到以下地址更新下载
http://club.excelhome.net/thread-1322757-1-1.html









补充内容 (2018-3-10 11:29):
最新版下载地址
http://club.excelhome.net/thread-1397357-1-1.html

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-12-31 18:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
只能导入2003格式电子表格,不能导入其它格式,以下是代码,望高人指点或修改一下
  1. Private Sub Command7_Click() '题库导入

  2.     On Error GoTo err1
  3.    
  4.    
  5.     Dim ZJStr() As String '章节列表
  6.     Dim ZJId() As String
  7.    
  8.     Dim FileStr As String
  9.     CommonDialog1.FileName = ""
  10.     CommonDialog1.Filter = "Excel表格文件|*.xls"
  11.     CommonDialog1.Action = 1
  12.    
  13.     FileStr = CommonDialog1.FileName
  14.    
  15.     If FileStr = "" Then
  16.         Exit Sub
  17.     End If
  18.    
  19.    
  20.     Label1.Caption = "正在分析章节信息,请稍后!"
  21.    
  22.     Dim Sql As String
  23.     Dim MsgTxt As String
  24.     Dim Rs_Zj As ADODB.Recordset
  25.     Dim Rs As ADODB.Recordset
  26.    
  27.    
  28.     Sql = "select * from zjinfo "
  29.     Set Rs_Zj = ExecuteSQL(Sql, MsgTxt)
  30.    
  31.     If InStr(MsgTxt, "错误") Then
  32.         MsgBox MsgTxt
  33.         Exit Sub
  34.     End If
  35.    
  36.     ReDim ZJStr(0)
  37.     ReDim ZJId(0)
  38.     If Rs_Zj.RecordCount > 0 Then '========================获取章节信息 如果有
  39.    
  40.         For i = 1 To Rs_Zj.RecordCount
  41.             ReDim Preserve ZJStr(i)
  42.             ReDim Preserve ZJId(i)
  43.             
  44.             ZJStr(i) = Rs_Zj.Fields("zjname") & ""
  45.             ZJId(i) = Rs_Zj.Fields("zjid") & ""
  46.             Rs_Zj.MoveNext
  47.         Next i
  48.         
  49.         
  50.     End If
  51.    
  52.    
  53.     Sql = "select * from tminfo"
  54.     Set Rs = ExecuteSQL(Sql, MsgTxt)
  55.     If InStr(MsgTxt, "错误") Then
  56.         MsgBox MsgTxt
  57.         Exit Sub
  58.     End If
  59.    
  60.    
  61.    
  62.     Dim NewApp
  63.     Dim NewSheet
  64.     Dim NewBook
  65.    
  66.     Set NewApp = New Excel.Application
  67.     Set NewBook = NewApp.Workbooks.Open(FileStr, , , , "")
  68.     '第一位为路径,第五位为密码
  69.     Set NewSheet = NewBook.Worksheets(1)
  70.    
  71.     For i = 2 To NewSheet.Cells.Count
  72.         
  73.         Label1.Caption = "正在读取第" & i & 项
  74.         DoEvents
  75.         If Trim(NewSheet.Cells(i, 1)) = "" Then
  76.             Exit For
  77.         End If
  78.         
  79.         '先判断该章节是否已经添加
  80.         
  81.         For j = 1 To UBound(ZJId)
  82.             
  83.             If ZJStr(j) = Trim(NewSheet.Cells(i, 8)) Then
  84.                 Exit For
  85.             End If
  86.         Next j
  87.         
  88.         If j > UBound(ZJId) Then '没有找到
  89.             
  90.             Rs_Zj.AddNew
  91.             Rs_Zj.Fields("zjname") = Trim(NewSheet.Cells(i, 8))
  92.             Rs_Zj.Update
  93.             
  94.             ReDim Preserve ZJStr(j)
  95.             ReDim Preserve ZJId(j)
  96.             
  97.             ZJStr(j) = Trim(NewSheet.Cells(i, 8))
  98.             ZJId(j) = Rs_Zj.Fields("zjid") & ""
  99.         
  100.         End If
  101.         
  102.         
  103.         Rs.AddNew
  104.         
  105.         
  106.         RichTextBox2.TextRTF = Trim(NewSheet.Cells(i, 1))
  107.         Rs.Fields("TMStra") = jm(RichTextBox2.TextRTF)
  108.         
  109.         Dim a As String
  110.         
  111.         If Len(NewSheet.Cells(i, 2)) > 2 Then
  112.             a = Left(NewSheet.Cells(i, 2), 2)
  113.             If InStr(a, "A") Then
  114.                 NewSheet.Cells(i, 2) = Mid(NewSheet.Cells(i, 2), 2, Len(NewSheet.Cells(i, 2)))
  115.             End If
  116.         End If
  117.         
  118.         
  119.         If Len(NewSheet.Cells(i, 3)) > 2 Then
  120.             a = Left(NewSheet.Cells(i, 3), 2)
  121.             If InStr(a, "B") Then
  122.                 NewSheet.Cells(i, 3) = Mid(NewSheet.Cells(i, 3), 2, Len(NewSheet.Cells(i, 3)))
  123.             End If
  124.         End If
  125.         
  126.         
  127.         If Len(NewSheet.Cells(i, 4)) > 2 Then
  128.             a = Left(NewSheet.Cells(i, 4), 2)
  129.             If InStr(a, "C") Then
  130.                 NewSheet.Cells(i, 4) = Mid(NewSheet.Cells(i, 4), 2, Len(NewSheet.Cells(i, 4)))
  131.             End If
  132.         End If
  133.         
  134.         
  135.         If Len(NewSheet.Cells(i, 5)) > 2 Then
  136.             a = Left(NewSheet.Cells(i, 5), 2)
  137.             If InStr(a, "D") Then
  138.                 NewSheet.Cells(i, 5) = Mid(NewSheet.Cells(i, 5), 2, Len(NewSheet.Cells(i, 5)))
  139.             End If
  140.         End If
  141.         
  142.         
  143.         
  144.         If Len(NewSheet.Cells(i, 6)) > 2 Then
  145.             a = Left(NewSheet.Cells(i, 6), 2)
  146.             If InStr(a, "E") Then
  147.                 NewSheet.Cells(i, 6) = Mid(NewSheet.Cells(i, 6), 2, Len(NewSheet.Cells(i, 6)))
  148.             End If
  149.         End If
  150.         
  151.         
  152.         
  153.         
  154.         
  155.         
  156.         
  157.         
  158.         Rs.Fields("XXA") = jm(Trim(NewSheet.Cells(i, 2)))
  159.         Rs.Fields("XXB") = jm(Trim(NewSheet.Cells(i, 3)))
  160.         Rs.Fields("XXC") = jm(Trim(NewSheet.Cells(i, 4)))
  161.         Rs.Fields("XXD") = jm(Trim(NewSheet.Cells(i, 5)))
  162.         Rs.Fields("XXE") = jm(Trim(NewSheet.Cells(i, 6)))
  163.         Rs.Fields("ZJID") = ZJId(j)
  164.         Rs.Fields("STJX") = jm(Trim(NewSheet.Cells(i, 9)))
  165.         
  166.         
  167.         
  168.         If Len(Trim(NewSheet.Cells(i, 7))) = "1" Then
  169.                     
  170.                 If Trim(UCase(NewSheet.Cells(i, 7))) = "A" Or Trim(UCase(NewSheet.Cells(i, 7))) = "B" Or Trim(UCase(NewSheet.Cells(i, 7))) = "C" Or Trim(UCase(NewSheet.Cells(i, 7))) = "D" Or Trim(UCase(NewSheet.Cells(i, 7))) = "E" Then
  171.                     Rs.Fields("TMtype") = "单选"
  172.                     
  173.                     Select Case Trim(NewSheet.Cells(i, 7))
  174.                         Case "A"
  175.                            Rs.Fields("TMDA") = 0
  176.                         Case "B"
  177.                             Rs.Fields("TMDA") = 1
  178.                         Case "C"
  179.                             Rs.Fields("TMDA") = 2
  180.                         Case "D"
  181.                             Rs.Fields("TMDA") = 3
  182.                         Case "E"
  183.                             Rs.Fields("TMDA") = 4
  184.                     End Select
  185.                     
  186.                     
  187.                     
  188.                 End If
  189.                
  190.                 If Trim(NewSheet.Cells(i, 7)) = "0" Or Trim(NewSheet.Cells(i, 7)) = "1" Then
  191.                     Rs.Fields("TMtype") = "判断"
  192.                     Rs.Fields("TMDA") = Trim(NewSheet.Cells(i, 7))
  193.                     
  194.                     
  195.                 End If
  196.                
  197.             Else
  198.                 Rs.Fields("TMtype") = "多选"
  199.                
  200.                 Dim DXStr As String
  201.                
  202.                 DXStr = ""
  203.                     
  204.                     If InStr(Trim(NewSheet.Cells(i, 7)), "A") Then
  205.                         DXStr = DXStr & "0"
  206.                     Else
  207.                         DXStr = DXStr & "8"
  208.                     End If
  209.                     
  210.                     
  211.                     If InStr(Trim(NewSheet.Cells(i, 7)), "B") Then
  212.                         DXStr = DXStr & "1"
  213.                     Else
  214.                         DXStr = DXStr & "8"
  215.                     End If
  216.                     
  217.                     
  218.                     If InStr(Trim(NewSheet.Cells(i, 7)), "C") Then
  219.                         DXStr = DXStr & "2"
  220.                     Else
  221.                         DXStr = DXStr & "8"
  222.                     End If
  223.                     
  224.                     
  225.                     If InStr(Trim(NewSheet.Cells(i, 7)), "D") Then
  226.                         DXStr = DXStr & "3"
  227.                     Else
  228.                         DXStr = DXStr & "8"
  229.                     End If
  230.                     
  231.                     If InStr(Trim(NewSheet.Cells(i, 7)), "E") Then
  232.                         DXStr = DXStr & "4"
  233.                     Else
  234.                         DXStr = DXStr & "8"
  235.                     End If
  236.                     
  237.                
  238.                
  239.                  Rs.Fields("TMDA") = jm(DXStr)
  240.             End If
  241.             
  242.             Rs.MoveNext
  243.             
  244.         
  245.         
  246.     Next i
  247.    
  248.     Label1.Caption = "读取完毕!共读取" & i - 2 & "个记录"
  249.    
  250.     Rs.MoveFirst
  251.    
  252.     Label1.Caption = "正在重新分配题目号码!"
  253.    
  254.     For i = 1 To UBound(ZJId)
  255.         DoEvents
  256.         Sql = "select * from tminfo where zjid=" & ZJId(i)
  257.         Set Rs = ExecuteSQL(Sql, MsgTxt)
  258.         Label1.Caption = "正在重新分配题目号码 ID:" & ZJId(i)
  259.         
  260.         If Rs.RecordCount > 0 Then
  261.             
  262.             
  263.             For j = 1 To Rs.RecordCount
  264.                 DoEvents
  265.                 Rs.Fields("TMNum") = j
  266.                 Rs.Update
  267.                
  268.                 Label1.Caption = "正在重新分配题目号码 ID:" & ZJId(i) & " 题目号码:" & j
  269.                 Rs.MoveNext
  270.             Next j
  271.             
  272.             
  273.             
  274.             
  275.             
  276.         End If
  277.         
  278.         
  279.         
  280.    
  281.     Next i
  282.    
  283.    
  284.    
  285.    
  286.    
  287.    
  288.    
  289.    
  290.    
  291.     MsgBox "题目导入完毕!", vbInformation, "消息提示"
  292.    
  293.    
  294.     RichTextBox1.Text = ""
  295.     Main.add_zj
  296.     ListView2.HideSelection = False
  297.     ListView1.HideSelection = False
  298.    
  299.     If ListView2.ListItems.Count > 0 Then
  300.    
  301.         Call ListView2_ItemClick(ListView2.ListItems.Item(1))
  302.     End If
  303.    
  304.    
  305. err1:
  306.     If Err.Number > 0 Then
  307.         MsgBox Err.Description, vbCritical, "错误提示"
  308.         Exit Sub
  309.     End If
  310.     END SUB
复制代码


TA的精华主题

TA的得分主题

发表于 2016-12-31 23:07 | 显示全部楼层
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2016-12-31 23:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

发表于 2017-3-8 11:07 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-3-21 20:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这楼主真是神了,在网上看了一会就晕的不行

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-29 10:58 | 显示全部楼层
分享新版附件如下

考试软件制作工具通用精华版8.0.part1.rar

1.8 MB, 下载次数: 4767

考试软件制作工具通用精华版8.0.part2.rar

1.8 MB, 下载次数: 1995

考试软件制作工具通用精华版8.0.part3.rar

474.17 KB, 下载次数: 244

TA的精华主题

TA的得分主题

发表于 2017-7-18 12:31 | 显示全部楼层
考试加油站 发表于 2016-12-31 18:19
只能导入2003格式电子表格,不能导入其它格式,以下是代码,望高人指点或修改一下

工程引用的时候 不要引用03 代码里创建application的时候 用后期绑定个 就可以自动适应系统安装的版本了

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-19 11:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
后期绑定如何操作,不太会。

TA的精华主题

TA的得分主题

发表于 2018-12-8 16:17 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 23:01 , Processed in 0.050254 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表