-
Từ bảng TH chuyển thành 2 bảng con
daihoangtu > 23-06-14, 09:06 AM
Chào cả nhà!
Mình có 1 table TH muốn tách thành 2 bảng table đơn giản DS và CTDS từ bảng TH.
Hình đính kèm.
Cảm ơn !
Links file đính kèm :
http://www.mediafire.com/download/787bzv...6/Test.mdb -
RE: Từ bảng TH chuyển thành 2 bảng con
Minh Tiên > 23-06-14, 11:42 AM
Chào bạn !
Như dữ liệu của bạn Up thì ko thể thực hiện tách được, vì:
- Các trường tên thuốc trong table TH của bạn bạn gõ có dấu tiếng Việt + dấu phẩy (nên sẽ ko thể dùng code trong Access được;
Để làm được như yêu cầu của bạn, theo mình bạn tạo:
1. table Danhmucthuoc(stt, Mathuoc,Tenthuoc,DVT)
2. table DanhmucBenhnhan (stt,Mabenhnhan,Tenbenhnhan)
Khi thiết kế các trường trong table TH bạn thiết kế các Field theo như Mathuoc trong table Danhmucthuoc. Khi nhập thông tin vào table TH bạn nhập: Theo Mabenhnhan, số lượng thuốc, ...
3. Để tách danh sách như table DS bạn yêu cầu bạn chỉ việc lập query chọn các Field (ID, BABN,HOTEN) như trong qryDS trong File Demo đính kèm là OK !
4. Để tách thông tin như table CTDS bạn yêu cầu (Mình tạo CTDS_New), bạn tạo 1 sub trên Form1 như sau:
Gọi thực hiện sub này là OK !Mã:Private Sub Command0_Click()
Dim stt As Integer: stt = 0
Dim intSoluong As Integer
Dim strHoten As String
Dim strTenthuoc As String
Dim i As Integer
Dim j As Integer
Dim rst As Recordset
Dim db As Database
Set db = CurrentDb()
Set rst = db.OpenRecordset("CTDS_New")
If rst.RecordCount > 0 Then
db.Execute "Delete * from CTDS_New"
End If
For i = 1 To DMax("[ID]", "qryDS")
strHoten = DLookup("[Hoten]", "qryDS", "[ID]=" & i & "")
For j = 1 To DMax("[stt]", "Danhmucthuoc")
strTenthuoc = DLookup("[Mathuoc]", "Danhmucthuoc", "[stt]=" & j & "")
intSoluong = Nz(DLookup(strTenthuoc, "TH", "[Hoten]='" & strHoten & "'"), 0)
If intSoluong > 0 Then
stt = stt + 1
rst.AddNew
rst!ID = stt
rst!HOTEN = strHoten
rst!TENTHUOC = strTenthuoc
rst!SOLUONG = intSoluong
rst.Update
End If
Next j
Next i
DoCmd.OpenTable "CTDS_New"
rst.Close
Set db = Nothing
End Sub
Demo
Bạn biến tấu theo yêu cầu của bạn và Nhờ các Pro khác chỉ thêm.
Mong giúp được bạn !
Thân chào !