Chỉ cách lấy dữ liệu nhiều query đưa vào table (2 người xem)

  • Thread starter Thread starter uyvu
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

uyvu

Thành viên mới
Tham gia
5/10/08
Bài viết
29
Được thích
0
Chào các bạn diễn đàn, mình có viết 1 chương trình Access mà đang gặp khó khăn chỗ này mong các bạn chỉ giúp mình tý.
- MÌnh có 1 table danh mục vật tư có các cột : số lượng xuất trả (SLXUATTRA), số lượng xuẩt bán (SLXUATBAN), số lượng xuất tặng (SLXUATTANG), số lượng phế liệu (SLPHELIEU), số lượng nhập (SLNHAP), tồn đầu (TONDAU), tồn cuối (TONCUOI).
- Tương ứng với mỗi cột như vậy mình đã làm xong 1 query số liệu tồng hợp theo từng tháng rồi, bây giờ mình muốn thay vì dự liệu nó nằm tương query riêng rẽ như vậy, mình tạo 1 from với record source là table danh mục vật tư để tổng hợp số liệu các query lại vào 1 table ở trên : khi mở ra nó sẽ tự động lấy số liệu tương ứng theo mã vật tư của từng query để đưa vào từng cột tương ứng của table danh mục vật tư, theo tháng cho trước.
ví dụ như : mình muốn coi số liệu tháng 5/2011, mình sẽ đánh vào tháng 5/2011 ở 1 texbox trong form rồi nhấp nút xem, lúc này nó sẽ lấy số liệu của cột 05/2011 của query xuất trả để đưa vào cột SLXUATTRA của table danh mục vật tư, với điều kiện là tìm đúng mã vật tư để đưa đúng số liệu vào
- Mình có viết code như sau, mà sao nó chỉ đưa số liệu của record đầu tiên của các query để đưa vào danh mục vật tư thôi, các bạn xem và chỉ giúp mình nha (trong code ở dưới mình chỉ làm ở cho cột phế liệu trước, chứ yêu cầu là đưa tất cả các cột luôn):

Private Sub Form_Open(Cancel As Integer)
Dim TB1, TB2, TB3, TB4, TB5, TB6 As DAO.Recordset, TAM, luu As String, N, M As Integer
Set TB1 = CurrentDb.OpenRecordset("T01 - DANH MUC VAT TU", dbOpenTable)
Set TB2 = CurrentDb.OpenRecordset("Q07 - TONG HOP VAT TU PHE LIEU_THEO THANG_Crosstab")
Set TB3 = CurrentDb.OpenRecordset("Q07 - TONG HOP VAT TU XUAT BAN_THEO THANG_Crosstab")
Set TB4 = CurrentDb.OpenRecordset("Q07 - TONG HOP VAT TU XUAT SUA_THEO THANG_Crosstab")
Set TB5 = CurrentDb.OpenRecordset("Q09 - TONG HOP VAT TU NHAP_THEO THANG_Crosstab")
Set TB6 = CurrentDb.OpenRecordset("Q09 - TONG HOP VAT TU TANG_THEO THANG_Crosstab")
luu = Format(Year(Date), "0000") & "-" & Format(Month(Date), "00")
For N = 0 To TB1.RecordCount - 1
For M = 0 To TB2.RecordCount - 1
TB1.Index = "PrimaryKey"
TB1.Seek "=", TB2!MAVATTU
If Not TB1.NoMatch Then
If TB1!MAVATTU = TB2!MAVATTU Then
TB1.EDIT
TB1!SLPHELIEU = TB2.Fields(luu)
TB1.Update
End If
TB2.MoveNext
Next
TB1.MoveNext
Next
TB1.Close: TB2.Close: TB3.Close: TB4.Close: TB5.Close: TB6.Close
Set TB1 = Nothing: Set TB2 = Nothing: Set TB3 = Nothing: Set TB4 = Nothing: Set TB5 = Nothing: Set TB6 = Nothing
End Sub
 
Mình đã làm được rồi mà lại gặp khó khăn khác

MÌNH LÀM 1 QUERY LẤY TỪNG CỘT CỦA TỪNG QUERY TRÊN, MÀ BÂY GIỜ LẠI CÓ KHÓ KHĂN KHÁC LÀ CỘT CỦA CÁC QUERY LÀ MÌNH LẤY CHẾT TÊN, CÓ CACH NÀO LẤY ĐỘNG KHÔNG, CHỈ MÌNH VỚI. TỨC LÀ KHI MỞ QUERY LÊN NÓ SẼ KÊU MÌNH CHO VÀO THÁNG NĂM, RỒI NÓ SẼ ĐẾN CÁC QUERY CON ĐỂ LẤY CỘT THEO THÁNG NĂM MÌNH MỚI CHO VÀO
CÂU LỆNH SQL CỦA MÌNH ĐÂY CÁC BẠN XEM THỬ COI :

SELECT [T01 - DANH MUC VAT TU].MAVATTU, [T01 - DANH MUC VAT TU].TENVATTU, [Q07 - TONG HOP VAT TU PHE LIEU_THEO THANG_Crosstab].[2011-06] AS PHELIEU, [Q07 - TONG HOP VAT TU XUAT BAN_THEO THANG_Crosstab].[2011-06] AS XUATBAN, [Q07 - TONG HOP VAT TU XUAT SUA_THEO THANG_Crosstab].[2011-06] AS XUATSUA, [Q09 - TONG HOP VAT TU TANG_THEO THANG_Crosstab].[2011-06] AS XUATTANG, [Q09 - TONG HOP VAT TU NHAP_THEO THANG_Crosstab].[2011-06] AS NHAP
FROM (((([Q07 - TONG HOP VAT TU PHE LIEU_THEO THANG_Crosstab] RIGHT JOIN [T01 - DANH MUC VAT TU] ON [Q07 - TONG HOP VAT TU PHE LIEU_THEO THANG_Crosstab].MAVATTU = [T01 - DANH MUC VAT TU].MAVATTU) LEFT JOIN [Q07 - TONG HOP VAT TU XUAT BAN_THEO THANG_Crosstab] ON [T01 - DANH MUC VAT TU].MAVATTU = [Q07 - TONG HOP VAT TU XUAT BAN_THEO THANG_Crosstab].MAVATTU) LEFT JOIN [Q09 - TONG HOP VAT TU NHAP_THEO THANG_Crosstab] ON [T01 - DANH MUC VAT TU].MAVATTU = [Q09 - TONG HOP VAT TU NHAP_THEO THANG_Crosstab].MAVATTU) LEFT JOIN [Q07 - TONG HOP VAT TU XUAT SUA_THEO THANG_Crosstab] ON [T01 - DANH MUC VAT TU].MAVATTU = [Q07 - TONG HOP VAT TU XUAT SUA_THEO THANG_Crosstab].MAVATTU) LEFT JOIN [Q09 - TONG HOP VAT TU TANG_THEO THANG_Crosstab] ON [T01 - DANH MUC VAT TU].MAVATTU = [Q09 - TONG HOP VAT TU TANG_THEO THANG_Crosstab].MAVATTU
ORDER BY [T01 - DANH MUC VAT TU].TENVATTU;
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom