Xóa cùng một lúc 2 record ở 2 table khác nhau

  • Thread starter luisnghia
  • Ngày gửi
L

luisnghia

Guest
2/12/06
14
0
1
Đà Nẵng
Mình đang làm một đề tài cải tiến cho phòng mình. Tuy nhiên vì mới tìm hiểu ACCESS nên còn rất nhiều vướng mắc
Mình có một form nhập dữ liệu có cả subform. Nay mình muốn khi nhấn nút xóa bản ghi thì sẽ xóa một lúc record của cả 2 table: DSDOANH NGHIEP & cả record bên table DSHS CHUNG.
CẢM ƠN CÁC BẠN RẤT NHIỀU
 

Đính kèm

  • DE TAI FORM CHUNG.rar
    270.2 KB · Lượt xem: 150
Khóa học Quản trị dòng tiền
payment

payment

Trung cấp
18/11/09
122
1
0
BĐ->Tp. Hồ Chí Minh
Mình đang làm một đề tài cải tiến cho phòng mình. Tuy nhiên vì mới tìm hiểu ACCESS nên còn rất nhiều vướng mắc
Mình có một form nhập dữ liệu có cả subform. Nay mình muốn khi nhấn nút xóa bản ghi thì sẽ xóa một lúc record của cả 2 table: DSDOANH NGHIEP & cả record bên table DSHS CHUNG.
CẢM ƠN CÁC BẠN RẤT NHIỀU
File của bạn mình hiện tại mình mở không được cái bạn muốn xóa thì mình đã hiểu: đầu tiên bạn tạo ra 2 query xóa cho 2 bảng sau đó bạn tạo ra một Macro cho cả 2 query này. Bạn thể hiện macro lên menu hoặc thông qua nút lệnh trên forrm. Thế là bạn có thể kích vào xóa 2 bảng này. Chúc bạn thành công.
 
L

luisnghia

Guest
2/12/06
14
0
1
Đà Nẵng
Cảm ơn bạn đã payment quan tâm trả lời. Vậy bạn có thể cho mình xin câu lệnh macro & làm 1 file ví dụ cụ thể cho mình được ko.
MỘT LẦN NỮA CẢM ƠN BẠN:015::015:
 
H

haquocquan

Trung cấp
19/4/08
68
0
6
Bắc Giang
Mình đang làm một đề tài cải tiến cho phòng mình. Tuy nhiên vì mới tìm hiểu ACCESS nên còn rất nhiều vướng mắc
Mình có một form nhập dữ liệu có cả subform. Nay mình muốn khi nhấn nút xóa bản ghi thì sẽ xóa một lúc record của cả 2 table: DSDOANH NGHIEP & cả record bên table DSHS CHUNG.
CẢM ƠN CÁC BẠN RẤT NHIỀU
Bạn muốn xóa bản ghi thì phải có tham chiếu (điều kiện) đúng không a?
Bạn tạo một sub đặt dưới cmdclick. Mình chứ viết code, nhưng đại loại là:
Bạn set hai recordset cho hai table trên.
Tiếp tục tìm trong hai recordset đó, nếu gặp record nào phù hợp với điều kiện thì xóa.
 
payment

payment

Trung cấp
18/11/09
122
1
0
BĐ->Tp. Hồ Chí Minh
Bạn muốn xóa bản ghi thì phải có tham chiếu (điều kiện) đúng không a?
Bạn tạo một sub đặt dưới cmdclick. Mình chứ viết code, nhưng đại loại là:
Bạn set hai recordset cho hai table trên.
Tiếp tục tìm trong hai recordset đó, nếu gặp record nào phù hợp với điều kiện thì xóa.

haquocquan ơi, bạn luisnghia hỏi những cái mình nghĩ phần cơ bản của access thôi. Theo mình thì ko cần đặt dưới cmdclick chi cho phức tạp có thể người ta ko thể thực hiện được. Mình chỉ cần tạo query tham chiếu (điều kiện ) rồi tạo tiếp query xóa là được thôi. Mình gởi file mẫu qua Email cho luisnghia tham khảo.
 
H

haquocquan

Trung cấp
19/4/08
68
0
6
Bắc Giang
haquocquan ơi, bạn luisnghia hỏi những cái mình nghĩ phần cơ bản của access thôi. Theo mình thì ko cần đặt dưới cmdclick chi cho phức tạp có thể người ta ko thể thực hiện được. Mình chỉ cần tạo query tham chiếu (điều kiện ) rồi tạo tiếp query xóa là được thôi. Mình gởi file mẫu qua Email cho luisnghia tham khảo.
Kể cả tạo query, bạn muốn chạy query từ form, thì cũng phải cmdclick. Mình cũng học từ căn bản, nhưng có một vấn đề là trong DB phải tạo ra nhiều object. Cho nên mình có hướng dùng code.
Mình sẽ cố gắng gửi code để các bạn và PRO tham khảo
 
Sửa lần cuối:
L

luisnghia

Guest
2/12/06
14
0
1
Đà Nẵng
haquocquan ơi, bạn luisnghia hỏi những cái mình nghĩ phần cơ bản của access thôi. Theo mình thì ko cần đặt dưới cmdclick chi cho phức tạp có thể người ta ko thể thực hiện được. Mình chỉ cần tạo query tham chiếu (điều kiện ) rồi tạo tiếp query xóa là được thôi. Mình gởi file mẫu qua Email cho luisnghia tham khảo.

bạn hauocquan oi mình gửi mail reply cho bạn rồi bạn xem giúp mình với
 
H

haquocquan

Trung cấp
19/4/08
68
0
6
Bắc Giang
bạn hauocquan oi mình gửi mail reply cho bạn rồi bạn xem giúp mình với
Mình không nhận được email của bạn. Bạn làm thế này nhé: bạn có textbox trên form để làm điều kiện (bản ghi phù hợp điều kiện thì xóa),chẳng hạn điều kiện là masodn. Bạn viết code cho một nút lệnh:
Private Sub cmdXoa_Click()
Dim DB as database
Dim RS1 as recordset
Dim RS2 as recordset
Set DB = currentdb()
Set RS1 = DB.Openrecordset("DSDOANHNGHIEP", dbOpentable)
Set RS2 = DB.Openrecordset("DSHSCHUNG", dbOpentable)
' Xóa ở DSDOANHNGHIEP
Do until RS1.EOF
If RS1!masodn = me.textbox.value then
RS.Delete
Endif
Loop

' Xóa ở DSHSCHUNG
Do until RS2.EOF
If RS1!masodn = me.textbox.value then
RS.Delete
Endif
Loop
RS1.Close
Set RS1 = Nothing
RS2.Close
Set RS2 = Nothing
Db.Close
Set BD= Nothing
End Sub

Bạn thử nhé. Mình chưa thử (nhớ sao lưu trước khi thử)
 
L

luisnghia

Guest
2/12/06
14
0
1
Đà Nẵng
Mình không nhận được email của bạn. Bạn làm thế này nhé: bạn có textbox trên form để làm điều kiện (bản ghi phù hợp điều kiện thì xóa),chẳng hạn điều kiện là masodn. Bạn viết code cho một nút lệnh:
Private Sub cmdXoa_Click()
Dim DB as database
Dim RS1 as recordset
Dim RS2 as recordset
Set DB = currentdb()
Set RS1 = DB.Openrecordset("DSDOANHNGHIEP", dbOpentable)
Set RS2 = DB.Openrecordset("DSHSCHUNG", dbOpentable)
' Xóa ở DSDOANHNGHIEP
Do until RS1.EOF
If RS1!masodn = me.textbox.value then
RS.Delete
Endif
Loop

' Xóa ở DSHSCHUNG
Do until RS2.EOF
If RS1!masodn = me.textbox.value then
RS.Delete
Endif
Loop
RS1.Close
Set RS1 = Nothing
RS2.Close
Set RS2 = Nothing
Db.Close
Set BD= Nothing
End Sub

Bạn thử nhé. Mình chưa thử (nhớ sao lưu trước khi thử)

Cảm ơn bạn nhé. để mình thử xem:1luvu:
 
L

luisnghia

Guest
2/12/06
14
0
1
Đà Nẵng
Mình không nhận được email của bạn. Bạn làm thế này nhé: bạn có textbox trên form để làm điều kiện (bản ghi phù hợp điều kiện thì xóa),chẳng hạn điều kiện là masodn. Bạn viết code cho một nút lệnh:
Private Sub cmdXoa_Click()
Dim DB as database
Dim RS1 as recordset
Dim RS2 as recordset
Set DB = currentdb()
Set RS1 = DB.Openrecordset("DSDOANHNGHIEP", dbOpentable)
Set RS2 = DB.Openrecordset("DSHSCHUNG", dbOpentable)
' Xóa ở DSDOANHNGHIEP
Do until RS1.EOF
If RS1!masodn = me.textbox.value then
RS.Delete
Endif
Loop

' Xóa ở DSHSCHUNG
Do until RS2.EOF
If RS1!masodn = me.textbox.value then
RS.Delete
Endif
Loop
RS1.Close
Set RS1 = Nothing
RS2.Close
Set RS2 = Nothing
Db.Close
Set BD= Nothing
End Sub

Bạn thử nhé. Mình chưa thử (nhớ sao lưu trước khi thử)

Mình thử rồi mà sao cũng không được. bạn làm thử cho mình 1 file xem thử. mình làm nó bị lỗi hoài:wall:
 
H

haquocquan

Trung cấp
19/4/08
68
0
6
Bắc Giang
Mình thử rồi mà sao cũng không được. bạn làm thử cho mình 1 file xem thử. mình làm nó bị lỗi hoài:wall:
Xin lỗi nhé, lần trước mình post bị thiếu và chưa chuẩn. Bạn xem lại đoạn code dưới đây nhé:
Private Sub cmdXoa_Click()
Dim DB as database
Dim RS1 as recordset
Dim RS2 as recordset
Set DB = currentdb()
Set RS1 = DB.Openrecordset("DSDOANHNGHIEP")
Set RS2 = DB.Openrecordset("DSHSCHUNG")
' Xóa ở DSDOANHNGHIEP
RS1.movefirst
Do until RS1.EOF
If RS1!masodn = me.textbox.value then
RS1.Delete
Endif
RS1.MoveNext
Loop

' Xóa ở DSHSCHUNG
RS2.Movefirst
Do until RS2.EOF
If RS2!masodn = me.textbox.value then
RS2.Delete
Endif
RS2.MoveNext
Loop
RS1.Close
Set RS1 = Nothing
RS2.Close
Set RS2 = Nothing
Db.Close
Set DB= Nothing
End Sub
 
H

haquocquan

Trung cấp
19/4/08
68
0
6
Bắc Giang
mình làm thử rồi không được
Bạn giúp mình với
Lỗi như mình đã nói ở trên. "Methol and data member not found"
Bạn post lên để mọi người cùng giúp.
 
Sửa lần cuối:
A

anh phuong

Guest
15/5/07
60
2
8
Mien Tay
lổi ờ đoạn me.textbox.value!!
"Methol and data member not found"

Bạn phải thay cái từ textbox bằng tên textbox của bạn mới không bị lỗi

Dear haquocquan
Code của bạn vẫn còn dài, bạn nghiên cứu cải tiến lại xem có thể rút ngắn không?
Thân
 
M

mvp2006

Sơ cấp
16/10/08
36
0
0
TPHCM
Bạn phải thay cái từ textbox bằng tên textbox của bạn mới không bị lỗi

Dear haquocquan
Code của bạn vẫn còn dài, bạn nghiên cứu cải tiến lại xem có thể rút ngắn không?
Thân

Chỉ cần 2 dòng code thôi
Private Sub cmdXoa_Click()
CurrentDb.Execute "delete * from DSDOANHNGHIEP where masodn = " & “’” & textbox.value & “‘”
CurrentDb.Execute "delete * from DSHSCHUNG where masodn = " & “’” & textbox.value & “‘”
End sub
Nếu masodn là number thì bỏ các dấu "'"
 
H

haquocquan

Trung cấp
19/4/08
68
0
6
Bắc Giang
Chỉ cần 2 dòng code thôi
Private Sub cmdXoa_Click()
CurrentDb.Execute "delete * from DSDOANHNGHIEP where masodn = " & “’” & textbox.value & “‘”
CurrentDb.Execute "delete * from DSHSCHUNG where masodn = " & “’” & textbox.value & “‘”
End sub
Nếu masodn là number thì bỏ các dấu "'"
CurrentDb.Execute "delete * from DSDOANHNGHIEP where masodn = " & “’” & me.textbox.value & “‘”
 

Xem nhiều

Webketoan Zalo OA