• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

tạo chương trình thi trắc nghiệm có tính tgian bằng access

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Điều hành viên: tungblt

jecssica
Thành viên chính thức
Thành viên chính thức
Bài viết: 24
Ngày tham gia: T.Sáu 07/11/2008 2:28 pm

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi jecssica » T.Ba 18/11/2008 9:01 am

Minh khong hieu cau lenh ket noi:
cn.Open "Provider=Microsoft.Jet.oledb.4.0;Persist Security Info=False;User ID=Admin;Data Source=" & App.Path & "\QlyTTN.mdb;Mode=Share Deny None;Extended Properties=';COUNTRY=0;CP=1252;LANGID=0x0409';Jet OLEDB:System database='';Jet OLEDB:Registry Path='';Jet OLEDB:Database Password=;Jet OLEDB:Global Partial Bulk Ops=2"

Sao lại phải dài dữ vậy?
Mình tuởng chỉ cần như thế này thui chứ:
Cn.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & "Data Source = "& App.path&"\QLyTTN.mdb"

Còn cái chuyện mình chưa khai báo bảng mà cứ gọi câu lệnh là vì mình chưa kết nối đươc CSDL nhưng lại làm trong trường hợp đã kết nối được rồi...hihi...đến lúc sửa lại thì lung tung hết cả lên...ngố thật



Hình đại diện của người dùng
lanlan
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 310
Ngày tham gia: T.Năm 05/06/2008 8:49 am
Been thanked: 1 time

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi lanlan » T.Ba 18/11/2008 9:29 am

jecssica đã viết:Minh khong hieu cau lenh ket noi:
cn.Open "Provider=Microsoft.Jet.oledb.4.0;Persist Security Info=False;User ID=Admin;Data Source=" & App.Path & "\QlyTTN.mdb;Mode=Share Deny None;Extended Properties=';COUNTRY=0;CP=1252;LANGID=0x0409';Jet OLEDB:System database='';Jet OLEDB:Registry Path='';Jet OLEDB:Database Password=;Jet OLEDB:Global Partial Bulk Ops=2"

Sao lại phải dài dữ vậy?
Mình tuởng chỉ cần như thế này thui chứ:
Cn.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & "Data Source = "& App.path&"\QLyTTN.mdb"

Còn cái chuyện mình chưa khai báo bảng mà cứ gọi câu lệnh là vì mình chưa kết nối đươc CSDL nhưng lại làm trong trường hợp đã kết nối được rồi...hihi...đến lúc sửa lại thì lung tung hết cả lên...ngố thật

Cái này là câu lệnh kết nối đầy đủ kể cả khi data có pass có thể dùng cho sql server cũng được :-?
"•´¨*•.¸¸.*..^_^ one love-one heart ^_^..*.¸¸.•*¨."
_______"•´`•.(¸.•´(¸.•* *•.¸)`•.¸).•´`•"
________________*(¨`•.•´¨)*
__________________`•.¸.•’

Hình đại diện của người dùng
hoangthu1974
Guru
Guru
Bài viết: 813
Ngày tham gia: T.Năm 09/03/2006 9:30 am
Đến từ: Hà Nội --> Tp. Hồ Chí Minh
Been thanked: 13 time
Liên hệ:

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi hoangthu1974 » T.Ba 18/11/2008 9:55 am

Tôi đã sửa lại bài của bạn theo ý khác, không hẳn đúng ý bạn nhưng thử chạy xem sao.
Bài đã được test.
Tập tin đính kèm
New Folder.zip
(31.14 KiB) Đã tải 316 lần

jecssica
Thành viên chính thức
Thành viên chính thức
Bài viết: 24
Ngày tham gia: T.Sáu 07/11/2008 2:28 pm

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi jecssica » T.Ba 18/11/2008 11:34 am

em hieu roi, cũng tại chưa kết nối được csdl mà em cứ viết code, đợi viết hết code rồi mới kết nối...huhu...ngố thật....đến lúc sửa thì lung tung hết cả lên... :(( ...em đang làm lại...cảm ơn các bác.

jecssica
Thành viên chính thức
Thành viên chính thức
Bài viết: 24
Ngày tham gia: T.Sáu 07/11/2008 2:28 pm

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi jecssica » T.Ba 18/11/2008 12:41 pm

Em cũng đang làm, sắp được rồi, hihi...lập trình mà nó chạy được vui thật đây...hihi...cám ơn bác hoangthu1974 nhé..:D
Bài của bác sẽ có ich cho em...hihi

jecssica
Thành viên chính thức
Thành viên chính thức
Bài viết: 24
Ngày tham gia: T.Sáu 07/11/2008 2:28 pm

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi jecssica » T.Ba 18/11/2008 3:45 pm

Bài của Bác Hoangthu1974 em chạy nhưng mà nếu đang ở câu 10( hoặc câu 1 )mà next tiếp nó sẽ báo lỗi ở chỗ:
Private Sub CmdTruoc_Click()
If rs Is Nothing Then Exit Sub
If Not rs.BOF And rs.RecordCount > 0 Then rs.MovePrevious
For I = 0 To 3 Step 1
opttraloi.Item(I).Value = False
Next I
If rs!DapAnDuocChon > 0 Then opttraloi(rs!DapAnDuocChon - 1).Value = True
End Sub
à nếu muốn ép nó vào như 1 chương trình ứng dụng thì phải làm thế nào ạ?

Hình đại diện của người dùng
hoangthu1974
Guru
Guru
Bài viết: 813
Ngày tham gia: T.Năm 09/03/2006 9:30 am
Đến từ: Hà Nội --> Tp. Hồ Chí Minh
Been thanked: 13 time
Liên hệ:

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi hoangthu1974 » T.Ba 18/11/2008 3:57 pm

jecssica đã viết:Bài của Bác Hoangthu1974 em chạy nhưng mà nếu đang ở câu 10( hoặc câu 1 )mà next tiếp nó sẽ báo lỗi ở chỗ:
Private Sub CmdTruoc_Click()
If rs Is Nothing Then Exit Sub
If Not rs.BOF And rs.RecordCount > 0 Then rs.MovePrevious
For I = 0 To 3 Step 1
opttraloi.Item(I).Value = False
Next I
If rs!DapAnDuocChon > 0 Then opttraloi(rs!DapAnDuocChon - 1).Value = True
End Sub
à nếu muốn ép nó vào như 1 chương trình ứng dụng thì phải làm thế nào ạ?

:)) Không ngoài dự đoán là bạn đã mắc lỗi ở đó.

Mã: Chọn hết

  1. Private Sub CmdTruoc_Click()
  2.     If rs Is Nothing Then Exit Sub
  3.     If Not rs.BOF And rs.RecordCount > 0 Then 'Nếu không là bản ghi đầu và số bản ghi nhiều hơn không
  4.         rs.MovePrevious
  5.         For I = 0 To 3 Step 1
  6.             opttraloi.Item(I).Value = False
  7.         Next I
  8.         If rs!DapAnDuocChon > 0 Then opttraloi(rs!DapAnDuocChon - 1).Value = True
  9.     Else ' Còn lại Bản ghi là đầu và số bản ghi lớn hơn không
  10.         Exit Sub
  11.     End If
  12. End Sub

jecssica
Thành viên chính thức
Thành viên chính thức
Bài viết: 24
Ngày tham gia: T.Sáu 07/11/2008 2:28 pm

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi jecssica » T.Ba 18/11/2008 4:04 pm

em vua sửa đc xong.
hihi

jecssica
Thành viên chính thức
Thành viên chính thức
Bài viết: 24
Ngày tham gia: T.Sáu 07/11/2008 2:28 pm

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi jecssica » T.Ba 18/11/2008 4:14 pm

Của Bác, em chạy vẫn lỗi chỗ đấy, em sửa thế này:

Private Sub Cmdtruoc_Click()
If rs Is Nothing Then Exit Sub
If Not rs.BOF And rs.RecordCount > 0 Then
For I = 0 To 3 Step 1
opttraloi.Item(I).Value = False
Next I
If rs!DapAnDuocChon > 0 Then opttraloi(rs!DapAnDuocChon - 1).Value = True
rs.MoveNext
End If
End Sub

à, theo code của bác thì lúc tính điểm là tính số câu đúng, VD như 20 câu làm đúng 14 thì sẽ là 14 điểm, nhưng em muốn là nó sẽ hiện ra là 7 điểm tức là tính theo thang điểm 10 ý
em làm thế này nhưng mà sao nó cứ báo lỗi:

Private Sub cmdKetqua_Click()
Dim socaudung As Byte
Dim s As Double
socaudung = 0
With rs
If Not .BOF And .RecordCount > 0 Then .MoveFirst
While Not .EOF
DoEvents
socaudung = socaudung + IIf(!DapAnDuocChon = !DapAnDung, 1, 0)
s = socaudung * (10 / nSoLuongCau)
.MoveNext
Wend
End With
MsgBox "Qua trinh lam bai thi cua ban da ket thuc. Tong so diem ban dat duoc la: " & s, vbInformation, Me.Caption
Unload Me
End Sub

Báo lỗi ở dòng: s = socaudung * (10 / nSoLuongCau) là sao ạ?

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4758
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 513 time

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi truongphu » T.Ba 18/11/2008 8:05 pm

Từ trưa chiều khu vực tôi bị mất điện, nên tôi đi ...
giờ về, tôi quan tâm đến cặp hoangthu1974 và jecssica
Chúc mừng jecssica nhanh nhạy, tiếp thu điều mới tốt; chúc mừng hoangthu1974 có học trò giỏi
jecssica đã viết:Báo lỗi ở dòng: s = socaudung * (10 / nSoLuongCau) là sao ạ?

s bạn đã định nghĩa: Dim s As Double
socaudung cũng thế: Dim socaudung As Byte
vậy thì s = socaudung * (10 / nSoLuongCau) là phép toán thông thường, không có lý do báo lỗi. Mà lỗi vẫn xẩy ra. . .có thể là nSoLuongCau chưa khai báo, thành ra phép tính chia cho zero. trường hợp nầy phải khai báo nSoLuongCau là xong. :)
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

jecssica
Thành viên chính thức
Thành viên chính thức
Bài viết: 24
Ngày tham gia: T.Sáu 07/11/2008 2:28 pm

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi jecssica » T.Ba 18/11/2008 9:13 pm

em sửa được lỗi đấy rồi,bây giờ chương trình chạy được, nhưng mà có 1 số vấn đề thế này:
1. là em thử làm bài với các câu trả lời như đáp án (tức là tích vào ô option như đáp án trả lời trong bảng Dethivaketqua), nhưng mà trong trường Dapanduocchon của bảng Dethivaketqua lại gán kết quả khác. Thành ra lúc tính điểm bị sai.
em biết lỗi này là do cái opttraloi cua em sai, nhưng lại chẳng biết sửa sao.
2. là VD em đang ở câu 4 mà ko chuyển về câu 3 được, cái nút < bị đơ. :((
2 bác giúp em!!!
Tập tin đính kèm
QlyTTN.rar
(23.72 KiB) Đã tải 273 lần

Hình đại diện của người dùng
hoangthu1974
Guru
Guru
Bài viết: 813
Ngày tham gia: T.Năm 09/03/2006 9:30 am
Đến từ: Hà Nội --> Tp. Hồ Chí Minh
Been thanked: 13 time
Liên hệ:

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi hoangthu1974 » T.Tư 19/11/2008 4:00 pm

1. là em thử làm bài với các câu trả lời như đáp án (tức là tích vào ô option như đáp án trả lời trong bảng Dethivaketqua), nhưng mà trong trường Dapanduocchon của bảng Dethivaketqua lại gán kết quả khác. Thành ra lúc tính điểm bị sai.
Xem lại index của Option Button vì nó gán kết quả vào bằng cái Index. Chỉ việc vào Properties rồi sửa lại Index là được.

2. là VD em đang ở câu 4 mà ko chuyển về câu 3 được, cái nút < bị đơ.
Anh thấy em trình bày phần cmdTruoc không đúng, có thể cái cmdSau cũng bị lỗi. Kiểm tra kỹ lại đi
cmdTruoc thì kiểm tra BOF và MovePrevious, cmdSau thì kiểm tra EOF và MoveNext. Và dòng Move phải được đặt ngay sau lệnh kiểm

Chú em này sau một hồi coding, loạn xạ lên không biết trước hay sau nữa. :D

jecssica
Thành viên chính thức
Thành viên chính thức
Bài viết: 24
Ngày tham gia: T.Sáu 07/11/2008 2:28 pm

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi jecssica » T.Sáu 21/11/2008 4:42 pm

Bài của em cũng tương đối hoàn thành rồi, em đang edit lại chút xíu nữa là xong. Xong em up lên cho các bác xem nha...hihi...Cám ơn các bác nhìu nhìu...:x

dohuy_13121990
Bài viết: 2
Ngày tham gia: T.Năm 17/05/2012 1:42 pm

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng acce

Gửi bàigửi bởi dohuy_13121990 » T.Sáu 08/06/2012 6:15 pm

Mọi ng giúp mình cái này với. Minh tính điểm khi thi sinh nộp bài nó cứ lưu cái điểm lúc thi xong làm thế nào để Reset điểm nó về 0 đc sau khi kết thúc bài thi:

Dim rs As New ADODB.Recordset
Dim tt As Byte
Dim n As Integer
Dim i As Long
Sub ketnoi()

End Sub

Private Sub cmdthoat_Click()
Unload Me
End Sub

Private Sub Form_Load()
Me.Picture = LoadPicture("D:\y2.jpg")
If rs.State = 1 Then rs.Close
Dim sql As String
sql = " select * from tblCau_Hoi,tblDap_An Where tblDap_An.Ma_Cau_Hoi = tblCau_Hoi.Ma_Cau_Hoi"
rs.Open sql, cn, 0, 3
If (rs.BOF And rs.EOF) = False Then
Call hienthi
End If
tt = 0
End Sub
Sub hienthi()
txtmacauhoi.Text = rs("tblDap_An.Ma_Cau_Hoi")
txtcauhoi.Text = rs("Noi_Dung_Cau_Hoi")
txttraloi1.Text = rs("Dap_An_1")
txttraloi2.Text = rs("Dap_An_2")
txttraloi3.Text = rs("Dap_An_3")
txttraloi4.Text = rs("Dap_An_4")
End Sub



Private Sub Label2_Click()

End Sub

Private Sub Option1_Click()
If Option1.Value = 1 Then
Option2.Value = 0
Option3.Value = 0
Option4.Value = 0
End If
If Option1 = True Then
txtdapan.Text = "a"
End If
End Sub

Private Sub Option2_Click()
If Option2.Value = 1 Then
Option1.Value = 0
Option3.Value = 0
Option4.Value = 0
End If
If Option2 = True Then
txtdapan.Text = "b"
End If
End Sub

Private Sub Option3_Click()
If Option3.Value = 1 Then
Option1.Value = 0
Option2.Value = 0
Option4.Value = 0
End If
If Option3 = True Then
txtdapan.Text = "c"
End If
End Sub
Private Sub Option4_Click()
If Option4.Value = 1 Then
Option1.Value = 0
Option2.Value = 0
Option3.Value = 0
End If
If Option4 = True Then
txtdapan.Text = "d"
End If
End Sub
Private Sub cmdpre_Click()
ss
If rs.AbsolutePosition > 1 Then
rs.MovePrevious

Else
MsgBox "Mau tin dau tien roi", , "Chu y nha"
End If
Call hienthi
End Sub
Private Sub cmdnext_Click()
ss
If rs.AbsolutePosition < rs.RecordCount Then
rs.MoveNext

Else
MsgBox "Mau tin cuoi cung khong the toi", , "Chu y ne"
End If
Call hienthi
End Sub
Sub ss()
rs("diem") = 0
diem = 0
If txtdapan.Text = rs("dad") Then
rs("diem") = rs("diem") + 1
End If
End Sub
Private Sub cmdnop_Click()
Dim tongdiem As Integer
tongdiem = 0
rs("diem") = 0
If Not (rs.BOF And rs.EOF) Then
rs.MoveFirst
Do While Not rs.EOF
tongdiem = tongdiem + rs("diem")
rs.MoveNext
Loop
End If
txtcauhoi.Locked = True
Option1.Enabled = False
Option2.Enabled = False
Option3.Enabled = False
Option4.Enabled = False
cmdpre.Enabled = False
cmdnext.Enabled = False
MsgBox "Tong so diem: " & tongdiem

End Sub

quangnbt
Bài viết: 3
Ngày tham gia: CN 29/04/2018 7:15 am

Re: tạo chương trình thi trắc nghiệm có tính tgian bằng access

Gửi bàigửi bởi quangnbt » T.Hai 04/06/2018 4:52 pm

Anh jecssica cho em xin file hoàn chỉnh của anh với. em đang rất cần file này. xin cảm ơn anh.


Quay về “Visual Basic 6 và Visual Basic Script (VB & VBS)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.8 khách