chào các bạn,
Nhờ các bạn giúp mình viết code làm sao để lưu 1 record vào 2 tables. Mình cần các bạn giúp đỡ rất gấp vì sắp hết hạn nộp bài
Mình có table KY_THI (MA_KY_THI, TEN_KY_THI) và table MON_THI (MA_MON_THI, TEN_MON_THI). Do 2 tables này quan hệ n-n nên có table trung gian là KY_THI_CO_MON_THI(MA_MON_THI, MA_KY_THI).
Làm sao lúc thêm mới kỳ thi và môn thi rồi nhấn nút Lưu thì kỳ thi và môn thi sẽ lưu vào tables KY_THI, MON_THI, KY_THI_CO_MON_THI.
Đây là code của mình
Private Sub cmdLuukythi_Click()
Call SaveThongTin
End Sub
Private Sub CloseForm()
Dim strFormName As String
strFormName = Me.Name
DoCmd.Close acForm, "Capnhatthongtinkythi", acSaveYes
Forms!Dethi!Gridkythi.Requery
End Sub
Private Sub SaveThongTin()
Dim err As Integer
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
'Check entered data
txtMakythi.SetFocus
If txtMakythi.Text = "" Then
err = err + 1
MsgBox "Vui long nhap Ma ky thi!", vbInformation, "Thong bao"
Else
txtTenkythi.SetFocus
If txtTenkythi.Text = "" Then
err = err + 1
MsgBox "Vui long nhap Ten ky thi!", vbInformation, "Thong bao"
Else
txtNamhoc.SetFocus
If Len(txtNamhoc.Text) <> 4 And CInt(txtNamhoc.Text) > 1900 Then
err = err + 1
MsgBox "Nam hoc phai co 4 so!", vbInformation, "Thong bao"
Else
txtNamhoc.SetFocus
If CInt(txtNamhoc.Text) < 1900 Then
err = err + 1
MsgBox "Nam hoc phai lon hon hoac bang 1900!", vbInformation, "Thong bao"
Else
txtNamhoc.SetFocus
If txtNamhoc.Text = "" Then
err = err + 1
MsgBox "Vui long nhap Nam hoc!", vbInformation, "Thong bao"
End If
End If
End If
End If
End If
'Insert data
If err < 1 Then
' Open a connection
Set cnn = New ADODB.Connection
' Open table
Set rs = New ADODB.Recordset
rs.ActiveConnection = CurrentProject.Connection
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.Open "KY_THI"
On Error GoTo Loi
'Get the new record data
rs.AddNew
rs!MA_KY_THI = txtMakythi
rs!TEN_KY_THI = txtTenkythi
rs!NAM_HOC = txtNamhoc
rs.Update
' Show the newly added data.
MsgBox "Them ky thi " & rs!MA_KY_THI & " thanh cong", vbInformation, "Thong bao"
'Close connection
rs.Close
Call CloseForm
End If
Exit Sub
Loi:
MsgBox "Ma ky thi nay da ton tai. Vui long nhap ma khac!", vbInformation, "Thong bao"
txtMakythi.SetFocus
End Sub
+Theo như cách thiết kế của mình thì mình ko biết làm sao để lưu các môn thi thuộc 1 kỳ thi được.
+Hiện tại ở form Dethi mình chưa biết viết code để Sửa 1 record là khi chọn 1 record trên grid-> nhấn nút Sửa sẽ load lên 1 form con đồng thời load luôn dữ liệu của record chọn lên form con để sửa.
+Mình làm tương tự cho môn thi nhưng chạy bị lỗi, nhờ các bạn xem giúp mình luôn nhé.
+Code của nút xóa môn thi cũng chạy ko được
Private Sub cmdXoamonthi_Click()
Call DeleteARecord
End Sub
Function DeleteARecord()
If MsgBo"Ban co muon xoa mau tin nay khong?", vbYesNo + vbQuestion, "Thong bao") = vbYes Then
DoCmd.SetWarnings False
CurrentDb.Execute "DELETE FROM MON_THI " & _
"WHERE [MA_MON_THI]='" & [Gridmonthi].Form![MA_MON_THI] & "'"
End If
End Function
Đây là CSDL của mình
http://www.mediafire.com/?hft6i3w8kmwp0tt
xin cám ơn