Đánh giá chủ đề:
  • 2 Votes - 2 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Cần các Pro giúp: Tự động thêm các record vào table!
#1
Chào các Pro!
Qua tìm hiểu trên diễn đàn này tôi có làm một chương trình quản lý như sau:
http://www.mediafire.com/?rbmmrdl7jqdb76x
http://www.mediafire.com/?rbmmrdl7jqdb76x
Tình hình là nhờ các bạn chỉ giúp khi tôi thêm mới một record trên table TUYENQUANG ( qua frmTTVT1) thì tương ứng với bao nhiêu sợi quang trong trường SOSOI thì sẽ tạo ra bấy nhiêu record trong table QLSUDUNG (qua frmTTVT1sub).
Cảm ơn các bạn nhiều!
Chữ ký của Txgroup Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#2
Xem qua bài của bạn, mình có gợi ý thế này để bạn thực hiện nhé.
SOSOI: bạn nhập vào khi thêm tuyến mới và cũng có thể nhập lại khi bạn sửa.
Phải phân biệt bạn nhập SOSOI là trong trường hợp thêm mới hay là trong trường hợp bạn sửa dữ liệu (vì đôi khi sẽ bị lặp lại)
Đối với trường hợp thêm mới, bạn sửa sự kiện AfterUpdate của SOSOI như sau:

Mã:
Private Sub SOSOI_AfterUpdate()
Dim SLSOI, i As Integer
Dim RS As Recordset
Set RS = CurrentDb.OpenRecordset("QLSUDUNG", dbOpenDynaset)
SLSOI = SOSOI.Value
For i = 1 To SLSOI
    RS.AddNew
    RS!MATT = Forms!frmTTVT1!MATT
    RS!MATUYEN = Forms!frmTTVT1!MATUYEN
    RS!SOI = i
    RS.Update
Next
Set RS = Nothing
frmTTVT1sub.Requery
End Sub
Chữ ký của haquocquan Guest, you are welcome!
ღღღღღTài sản của haquocquan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname
#3
Cảm ơn gợi ý của bạn haquocquan nhiều nhé!
Quy.
Chữ ký của Txgroup Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#4
Chào bạn haquocquan và các Pro!
hôm trước nhờ haquocquan giúp tôi đã suy nghĩ và làm như thế này:http://www.mediafire.com/download.php?z1uy3590d1na2r4
Nhờ các bạn xem lại giúp tôi nhé:
01/ khi đặt quan hệ gữa hai bảng hì khi thêm record mới bên TUYENQUANG thì không thể thêm bên QLSUDUNG. BÁO LỖI "không add không charge. . .)
02/ Để xóa record trong TUYENQUANG thì trước tiên phải kiểm tra xem trong trường SUDUNG bên bảng QLSUDUNG có rỗng hay không ( tức là không có sợi nào đang dùng).
thì mới cho xóa.
Cảm ơn các bạn nhiều


Chữ ký của Txgroup Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#5
Mình xem qua thì hình như bảng TUYENQUANG của bạn đặt khóa chưa ổn. Nếu Mã Tuyến là duy nhất thì chỉ set nó làm khóa của bảng đó thôi!

Nếu trong liên kết 1-n, bạn không chọn Cascade update related fields, và cascade delete related field
thì bạn phải xóa hết record liên quan, nó mới cho xóa ở khóa chính. Có như vậy nó mới toàn vẹn dữ liệu.

Nếu bạn cho chọn 2 ý trên, khi bạn xóa hay thay đổi ở khóa chính, tất cả record liên quan ở QLSUDUNG sẽ bị xóa/thay đổi theo!
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#6
"Nếu bạn cho chọn 2 ý trên, khi bạn xóa hay thay đổi ở khóa chính, tất cả record liên quan ở QLSUDUNG sẽ bị xóa/thay đổi theo! "
Đúng là như vậy đó bạn!
- Mình muốn khi tuyến quang này bị xóa (tức là 01 record trong TUYENQUANG bị xóa), thì tất cà các sợi trong tuyến này tồn tại trong QLSUDUNG cũng phải bị xóa theo.
- nhưng phải kiểm tra trường SUDUNG có Null hay không!
Nhờ Noname xem lại giúp mình nhé !


Chữ ký của Txgroup Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#7
Nếu vậy thì bạn phải ràng buộc bằng code rồi. Relationship không giải quyết được vấn đề đâu!
Đại loại như QLSUDUNG
Mã:
If isnull(dlookup("[sudung]","QLSUDUNG","[matuyen]='" & Forms![frmTTVT1]![MATUYEN]  & "'" then
' gọi code xóa
else
msgbox " tuyen da su dung, khong the xoa duoc"

end if
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#8
Hoặc bạn cho run query sau:
Mã:
DELETE TUYENQUANG.*, QLSUDUNG.MATUYEN, QLSUDUNG.SUDUNG
FROM TUYENQUANG INNER JOIN QLSUDUNG ON TUYENQUANG.MATUYEN = QLSUDUNG.MATUYEN
WHERE (((QLSUDUNG.MATUYEN)=[Forms]![frmTTVT1]![MATUYEN]) AND ((QLSUDUNG.SUDUNG) Is Not Null Or (QLSUDUNG.SUDUNG)<>""));
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn haquocquan
#9
Dùng code:
Khi record đầu tiên ( sợi 1) trong trường SUDUNG <>Null thì không cho xóa, nhưng nếu sợi 1 không sử dụng (=Null), các sợi còn lại có dùng thì nó cũng cho xóa tuốt bạn ơi!
Nhờ bạn xem lại đoạn code này giúp mình nhé!

Private Sub CmdDelete_Click()
Dim SLSOI, i As Integer
Dim RS As Recordset
Dim varX As Variant
Set RS = CurrentDb.OpenRecordset("QLSUDUNG Query", dbOpenDynaset)
SLSOI = SOSOI.Value
varX = Null
For i = 1 To SLSOI
If varX <> Null Then
Exit For
End If
varX = DLookup("SUDUNG", "QLSUDUNG Query", "MATUYEN='" & Forms![frmTTVT1]!MATUYEN & "'")
RS.MoveNext
Next
Set RS = Nothing

If IsNull(varX) Then
If MsgBox(" BAN MUON XOA MAU TIN NAY " & Chr(13) & Chr(10) & "Neu muon thi chon YES nguoc lai chon No", vbYesNo, "Thong Bao") = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
'DoCmd.GoToRecord , , acPrevious
End If
Else
MsgBox "Ban khong the xoa tuyen nay" & Chr(13) & Chr(10) & "Boi vi tuyen con su dung", , "Chu Y!"
Exit Sub
End If
Exit Sub
End Sub
Chữ ký của Txgroup Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#10
Hỏi thêm bạn một chút nhé:
Ý bạn là khi bạn bấm xóa:
- Record trong TUYENQUANG sẽ bị xóa,
- Các record trong QLSUDUNG nếu null, sẽ bị xóa.

Cho hỏi thêm một chút về ý của bạn:
- Nếu có 1 record trong QLSUDUNG không null (đã sử dụng), có xóa trong TUYENQUAN không,
- Nếu có 1 record trong QLSUDUNG không null (đã sử dụng), có xóa các record chưa sử dụng không.
Chữ ký của haquocquan Guest, you are welcome!
ღღღღღTài sản của haquocquan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Cách thêm dữ liệu vào form Main_Sub NganNguyen 1 37 Hôm qua, 02:23 AM
Bài mới nhất: maidinhdan
  Tự động hiện Form khi loading hết thời gian ChiMai 1 49 02-12-16, 08:59 PM
Bài mới nhất: ongke0711
  [Help] Chỉnh giúp Form thống kê hoanghai902 2 124 28-10-16, 06:15 PM
Bài mới nhất: hoanghai902
  [Hỏi] Lỗi khi dùng CSDL qua Link Table xndt 5 229 28-09-16, 08:22 AM
Bài mới nhất: xndt
  Xin giúp tạo 1 trường trong table đánh số tự động thay cho autonumber trungminh 7 450 16-09-16, 05:17 PM
Bài mới nhất: maidinhdan

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ