Liberty Crown Infotech Ответов: 0

Вставка нескольких записей с несколькими таблицами, имеющими один и тот же идентификатор, в таблицу с помощью DAO in access


(1) у меня есть 4 таблицы (A-Sched,B-Trans,(C-ItemRecep и D-ItemPharm)) с одной таблицей поиска под названием D-TransDetail. Ниже приведена диаграмма отношений и набор записей DAO для хранения записей.

[Изображение 1][^]

Эта модель работает идеально, когда это только " ItemRecep "(таблица C), но подформы не сообщали правильно о родительской форме в тот момент, когда я ввожу новую"ItemPharm" (таблица D).
Я ожидал, что форма отобразит новую подформу transaction Itempharm. (с идентификатором diff, т. е. 4), содержащим его собственные подпункты с промежуточным итогом цены. И общая сумма из приведенного выше рисунка складывается из 2 подытогов.

P. S-пожалуйста, дайте мне знать, если мое объяснение не будет понято, я готов предоставить более подробную информацию

Что я уже пробовал:

[Изображение 1][^]

[Изображение 2][^]

[Изображение 3][^]


Public Sub RecpSchedule1()
    'Consultation ONLY
    Dim db As DAO.Database
    Dim rs As DAO.Recordset, rt As DAO.Recordset, rd As DAO.Recordset, ri As    DAO.Recordset
    Dim lngTransId As Long
    Dim lngItemRecepId As Long


    Set db = CurrentDb
    Set rs = db.OpenRecordset("Sched")
    Set rt = db.OpenRecordset("Trans")
    Set ri = db.OpenRecordset("ItemRecep")
    Set rd = db.OpenRecordset("TransDetail")
    
    lngItemRecepId = Nz(DMax("ID", "ItemRecep"), 0) + 1 'Next ItemRecep ID
    lngTransId = Nz(DMax("ID", "Trans"), 0) + 1 'Next Trans ID
    
        With rs
            .AddNew
            !SDate = Me.txtSchedDate
            !PatientName = Me.cmbPatientName
            !RegNo = Me.txtRegNo
            !DateOfBirth = Me.txtAge
            !Gender = Me.txtGender
            !PatientClass = Me.PatientClass
            !RecepSchedule = True
            .Update
        End With
        

        With rt
            .AddNew
            !ID = lngTransId
            !SchedRegNo = Me.txtRegNo
            ![Total_RecepFee] = Me.txtConsFee + ![Total_RecepFee]
           .Update
        End With

        With ri
            .AddNew
            !ID = lngItemRecepId
            !ItemName = "ConsFee"
            !Price = Me.txtConsFee.Value
            !Dept = "Reception"
            .Update
        End With

        With rd
            .AddNew
            !TransID = lngTransId
            !TransID = DMax("ID", "Trans")
            !ItemRecepID = DMax("ID", "ItemRecep")
            .Update
        End With



        rs.Close
        rt.Close
        ri.Close
        rd.Close
        
     Set rs = Nothing
     Set rt = Nothing
     Set rd = Nothing
     Set ri = Nothing
     Set db = Nothing

     End Sub



     Public Sub RecpSchedule2()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset, rt As DAO.Recordset, rd As DAO.Recordset, ri As    DAO.Recordset
    Dim lngTransId As Long
    Dim lngItemRecepId As Long


    Set db = CurrentDb
    Set rt = db.OpenRecordset("Trans")
    Set ri = db.OpenRecordset("ItemRecep")
    Set rd = db.OpenRecordset("TransDetail")

    lngItemRecepId = Nz(DMax("ID", "ItemRecep"), 0) + 1 'Next ItemRecep ID
    lngTransId = Nz(DMax("ID", "Trans"), 0) + 1 'Next Trans ID

        With ri
            .AddNew
            !ID = lngItemRecepId
            !ItemName = "IOPFee"
            !Price = Me.txtIOPFee.Value
            !Dept = "Reception"
            .Update
        End With

        With rd
            .AddNew
            !TransID = lngTransId
            !TransID = DMax("ID", "Trans")
            !ItemRecepID = DMax("ID", "ItemRecep")
            .Update
        End With

        rt.Close
        ri.Close
        rd.Close

     Set rt = Nothing
     Set rd = Nothing
     Set ri = Nothing
     Set db = Nothing
     End Sub



(2) я создал 2 запроса ("TransQry" и "SubTransQry") из приведенных выше таблиц.

(3)Наконец, я создал родительскую форму (frmAccount), содержащую дочернее "преобразование", которое также является родителем собственного дочернего "Субтрансформа".

0 Ответов