Xuân Thanh > 23-04-15, 06:50 PM
(21-04-15, 12:22 PM)maidinhdan Đã viết: Tác giả câu hỏi: phuoc_bhxhbl
Yêu cầu: Tạo code có sự liên kết giữa 4 cột A B C D
Trong đó A B C D bị trói buộc bởi tb khai báo là chỉ được sắp xếp tối đa số lượng đã ghi
A phụ thuộc B-->C-->D
Hình minh họa
tbkhaibao là số cố định buộc cột D chỉ tăng đến 5, rồi lại bắt đầu từ 1 cư thế đến hết Record, Trong khi cột D đã nhảy đến hết 5 thì cột C lại tăng 2... cho đến khi hết giá trị được khai báo trong tbkhaibao. Đến khi C tăng đến hết 10 thì cột B sẽ bắt đầu là 2....
Khi dùng code sẽ ra kết quả như vậy.
Rất mong các cao thủ đóng góp về code này.
Sub Ghi()
Dim rsh As Recordset, rsk As Recordset, i As Integer, k As Integer, j As Integer
Dim x As Integer, y As Integer, z As Integer
Set rsh = CurrentDb.OpenRecordset("tblHoSo", dbOpenTable)
Set rsk = CurrentDb.OpenRecordset("tblKhaiBao", dbOpenTable)
x = rsk.Fields(1): y = rsk.Fields(2): z = rsk.Fields(3)
i = 1: j = 1: k = 1
rsh.MoveFirst
Do Until rsh.EOF
rsh.Edit
rsh.Fields(4) = k
rsh.Fields(3) = j
rsh.Fields(2) = i
rsh.Fields(1) = 1
k = k + 1
If k = z + 1 Then j = j + 1: k = 1
If j = y + 1 Then i = i + 1: j = 1
If i = x + 1 Then i = 1
rsh.Update
rsh.MoveNext
Loop
End Sub
tranthanhan1962 > 23-04-15, 06:57 PM
(23-04-15, 03:38 PM)phuoc_bhxhbl Đã viết:Bạn không nên dồn chung 2 tbhoso và hosotokhai thành 1. Hai tbhoso (quản lý số tứ tự vị trí) và hosotokhai (quản lý số thứ tự hồ sơ) thực chất là 2 table không liên kết. Chúng chỉ liên kết khi gọi query. Các record Table tbhoso chỉ thay đổi khi ta thiết đặt lại giá trị tbkhaibao và xử lý qua form. Table hosotokhai là do bạn nhập dữ liệu các hồ sơ của bạn, bạn cho STT của các record là bao nhiêu thì thông qua query nó sẽ tìm đến vị trí của nó tại table tbhoso (có STT giống như nó). Vì vậy vấn đề tăng của trường STT của hosotokhai không liên quan gì đến tbhoso cả. Bạn muốn xử lý kiểu gì trên table này tùy thích (Ví dụ bạn đổi vị trí hồ sơ ABC trên ngăn của tbhoso thì bạn chỉ cần đổi STT của record ABC trên hosotokhai là xong)(23-04-15, 02:59 PM)tranthanhan1962 Đã viết:(23-04-15, 09:39 AM)phuoc_bhxhbl Đã viết: cám ơn anh rất nhiều, a rãnh xem cái này dùm e. mục đích của e là như ví dụ bên dưới.
http://www.mediafire.com/download/ffho1k...9/heps.rar
Cái này dễ mà bạn. Đưa table hosotokhai vào ứng dụng. Bạn cập nhật table tbkhaibao theo ý bạn, tạo lại giá trị lại table tbhoso. thiết đặt STT trên table hosotokhai theo ý mình. Xong tạo 1 query tạo một Select query với 2 table (hosotokhai và tbhoso) có liên kết quan hệ 2 trường STT với nhau. Nên tạo quan hệ trong query chứ không cần tạo quan hệ trong relationships (Vì nếu tạo quan hệ trong relationships bạn cần phải đặt khóa chính cho trường STT của table tbhoso mà ứng dụng của bạn không cần đều này). Bạn cần sử dụng field nào trong query thì cứ lấy ra xài thôi. Các trường A, B, C, D của query mới tạo chính là nhà kệ tầng hộp. Lưu ý: Bạn không cần field STTtam đâu. Khi STT của các record mà bạn tạo trên table hosotokhai có quan hệ với STT của các record trên table tbhoso trên query nó sẽ đặt đúng hồ sơ của hosotokhai vào vị trí kệ, tầng, hộp...của tbhoso. Dễ thôi mà. Mình nghĩ bạn dư sức làm việc này theo đúng ý của bạn. Chúc bạn thành công.
hihihi e hiểu ý a rồi. nhưng vấn đề ở đây là khi "định vị lưu trữ" những mẫu tin nào được chọn mới tự động tăng. còn những mẫu tin không được chọn thì sẽ giữ nguyên.a nghiên cứu thử xem, làm phiền a nhiều rồi hihiih. ah a có cách nào tạo nút "check all" không? khi đánh vào nó sẽ chọn hết những mẫu tin.
cảm ơn a nhiều lắm.
tranthanhan1962 > 23-04-15, 09:18 PM
(23-04-15, 06:50 PM)Xuân Thanh Đã viết:(21-04-15, 12:22 PM)maidinhdan Đã viết: Tác giả câu hỏi: phuoc_bhxhbl
Yêu cầu: Tạo code có sự liên kết giữa 4 cột A B C D
Trong đó A B C D bị trói buộc bởi tb khai báo là chỉ được sắp xếp tối đa số lượng đã ghi
A phụ thuộc B-->C-->D
Hình minh họa
tbkhaibao là số cố định buộc cột D chỉ tăng đến 5, rồi lại bắt đầu từ 1 cư thế đến hết Record, Trong khi cột D đã nhảy đến hết 5 thì cột C lại tăng 2... cho đến khi hết giá trị được khai báo trong tbkhaibao. Đến khi C tăng đến hết 10 thì cột B sẽ bắt đầu là 2....
Khi dùng code sẽ ra kết quả như vậy.
Rất mong các cao thủ đóng góp về code này.
Tham gia một đoạn code như sau :
Mã PHP:Sub Ghi()
Dim rsh As Recordset, rsk As Recordset, i As Integer, k As Integer, j As Integer
Dim x As Integer, y As Integer, z As Integer
Set rsh = CurrentDb.OpenRecordset("tblHoSo", dbOpenTable)
Set rsk = CurrentDb.OpenRecordset("tblKhaiBao", dbOpenTable)
x = rsk.Fields(1): y = rsk.Fields(2): z = rsk.Fields(3)
i = 1: j = 1: k = 1
rsh.MoveFirst
Do Until rsh.EOF
rsh.Edit
rsh.Fields(4) = k
rsh.Fields(3) = j
rsh.Fields(2) = i
rsh.Fields(1) = 1
k = k + 1
If k = z + 1 Then j = j + 1: k = 1
If j = y + 1 Then i = i + 1: j = 1
If i = x + 1 Then i = 1
rsh.Update
rsh.MoveNext
Loop
End Sub
Thân mến
phuoc_bhxhbl > 24-04-15, 01:56 PM