اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

السلام عليكم 

عندي جدولين اريد ان اقوم بفرض تكامل مرجعي برمجيا بينهم بحيث هناك عمود في الجدول الاول يجب ان يسجل في اربع اعمدة في الجدول الثاني وفرض تكامل مرجعي بين الجداول هل يمكن ان نقوم بفرض تكامل المرجعي بينهم برمجيا بدول الرجوع الى العلاقات 

 

  • Like 1
قام بنشر

نعم ممكن

وياليت مرفق اخ عبدالله

كما ياليت ايضاح اكثر بهل تريد انشاء العلاقة مع التكامل ام ان العلاقة موجودة وتريد فقط اضافة التكامل

كما انه ياليت ايضاح هل التكامل فقط ام كذلك تتالي التحديث والحذف

بالتوفيق

  • Like 2
قام بنشر (معدل)

السلام عليكم

اخي الكريم رمهان

يجب ربط العمود AccCode من جدول tblaccount  ب

العمود delCashTransfer  ,  delCashComm ,  delaccComm

على ان يكون الربط فرض تكامل مرجعي مع تتالي التحديث 

الهدف من هذه العملية هي تتالي التحديث

accurate 29.rar

في ٢٥‏/١١‏/٢٠١٦ at 16:38, رمهان said:

كما ياليت ايضاح اكثر بهل تريد انشاء العلاقة مع التكامل ام ان العلاقة موجودة وتريد فقط اضافة التكامل

كما انه ياليت ايضاح هل التكامل فقط ام كذلك تتالي التحديث والحذف

 

تم تعديل بواسطه عبد الله قدور
قام بنشر

جميل اخ عبدالله

ممكن تعمل العلاقة يدوي في المرفق السابق ؟ وتعيد الارفاق لكي ارى العلاقة المطلوبة من نافذة العلاقات !!

تحياتي

  • Like 1
قام بنشر

السلام عليكم 

اخواني واحبتي :

كنت قد اعددت درسا لم يكتمل بعد عن العلاقات عامة ومن ضمنها امكانية صنع الجداول والعلاقات برمجيا

وحيث ان الغرض هو نشر المعلومة

هذا مثال بضغطة زر لعمل الجداول وعلاقاتها وتتالي تحديث الحقول وتتالي الحذف 

Option Compare Database
Function CreateTableScripts()
CurrentProject.Connection.Execute "CREATE TABLE [categories]([categoryid] LONG IDENTITY(1,1)  , [categoryname] VARCHAR(15)  NOT NULL  , [description] LONGTEXT  , [picture] IMAGE   , PRIMARY KEY ( [Categoryid]))"
CurrentProject.Connection.Execute "CREATE TABLE [customers]([customerid] VARCHAR(5)  , [companyname] VARCHAR(40)  NOT NULL  , [contactname] VARCHAR(30)  , [contacttitle] VARCHAR(30)  , [address] VARCHAR(60)  , [city] VARCHAR(15)  , [region] VARCHAR(15)  , [postalcode] VARCHAR(10)  , [country] VARCHAR(15)  , [phone] VARCHAR(24)  , [fax] VARCHAR(24)   , PRIMARY KEY ( [Customerid]))"
CurrentProject.Connection.Execute "CREATE TABLE [employees]([employeeid] LONG IDENTITY(1,1)  , [lastname] VARCHAR(20)  NOT NULL  , [firstname] VARCHAR(10)  NOT NULL  , [title] VARCHAR(30)  , [titleofcourtesy] VARCHAR(25)  , [birthdate] DATETIME  , [hiredate] DATETIME  , [address] VARCHAR(60)  , [city] VARCHAR(15)  , [region] VARCHAR(15)  , [postalcode] VARCHAR(10)  , [country] VARCHAR(15)  , [homephone] VARCHAR(24)  , [extension] VARCHAR(4)  , [photo] VARCHAR(255)  , [notes] LONGTEXT  , [reportsto] LONG   , PRIMARY KEY ( [Employeeid]))"
CurrentProject.Connection.Execute "CREATE TABLE [orderDetails]([orderid] LONG  , [productid] LONG  NOT NULL  , [unitprice] MONEY  NOT NULL  DEFAULT 0 , [quantity] INTEGER  NOT NULL  DEFAULT 1 , [discount] SINGLE  NOT NULL  DEFAULT 0  , PRIMARY KEY ( [Orderid], [Productid]))"
CurrentProject.Connection.Execute "CREATE TABLE [orders]([orderid] LONG IDENTITY(1,1)  , [customerid] VARCHAR(5)  , [employeeid] LONG  , [orderdate] DATETIME  , [requireddate] DATETIME  , [shippeddate] DATETIME  , [shipvia] LONG  , [freight] MONEY  DEFAULT 0 , [shipname] VARCHAR(40)  , [shipaddress] VARCHAR(60)  , [shipcity] VARCHAR(15)  , [shipregion] VARCHAR(15)  , [shippostalcode] VARCHAR(10)  , [shipcountry] VARCHAR(15)   , PRIMARY KEY ( [Orderid]))"
CurrentProject.Connection.Execute "CREATE TABLE [products]([productid] LONG IDENTITY(1,1)  , [productname] VARCHAR(40)  NOT NULL  , [supplierid] LONG  , [categoryid] LONG  , [quantityperunit] VARCHAR(20)  , [unitprice] MONEY  DEFAULT 0 , [unitsinstock] INTEGER  DEFAULT 0 , [unitsonorder] INTEGER  DEFAULT 0 , [reorderlevel] INTEGER  DEFAULT 0 , [discontinued] YESNO  DEFAULT =No  , PRIMARY KEY ( [Productid]))"
CurrentProject.Connection.Execute "CREATE TABLE [shippers]([shipperid] LONG IDENTITY(1,1)  , [companyname] VARCHAR(40)  NOT NULL  , [phone] VARCHAR(24)   , PRIMARY KEY ( [Shipperid]))"
CurrentProject.Connection.Execute "CREATE TABLE [suppliers]([supplierid] LONG IDENTITY(1,1)  , [companyname] VARCHAR(40)  NOT NULL  , [contactname] VARCHAR(30)  , [contacttitle] VARCHAR(30)  , [address] VARCHAR(60)  , [city] VARCHAR(15)  , [region] VARCHAR(15)  , [postalcode] VARCHAR(10)  , [country] VARCHAR(15)  , [phone] VARCHAR(24)  , [fax] VARCHAR(24)  , [homepage] LONGTEXT   , PRIMARY KEY ( [Supplierid]))"
CurrentProject.Connection.Execute "CREATE  UNIQUE INDEX idx_Categoryname_Categories ON [Categories]([CategoryName])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Categoryid_Products ON [Products]([CategoryID])"
CurrentProject.Connection.Execute "CREATE INDEX idx_City_Customers ON [Customers]([City])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Companyname_Customers ON [Customers]([CompanyName])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Companyname_Suppliers ON [Suppliers]([CompanyName])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Customerid_Orders ON [Orders]([CustomerID])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Employeeid_Orders ON [Orders]([EmployeeID])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Lastname_Employees ON [Employees]([LastName])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Orderdate_Orders ON [Orders]([OrderDate])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Orderid_OrderDetails ON [OrderDetails]([OrderID])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Postalcode_Customers ON [Customers]([PostalCode])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Postalcode_Employees ON [Employees]([PostalCode])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Postalcode_Suppliers ON [Suppliers]([PostalCode])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Productid_OrderDetails ON [OrderDetails]([ProductID])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Productname_Products ON [Products]([ProductName])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Region_Customers ON [Customers]([Region])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Shippeddate_Orders ON [Orders]([ShippedDate])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Shippostalcode_Orders ON [Orders]([ShipPostalCode])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Shipvia_Orders ON [Orders]([ShipVia])"
CurrentProject.Connection.Execute "CREATE INDEX idx_Supplierid_Products ON [Products]([SupplierID])"
CurrentProject.Connection.Execute "ALTER TABLE [orderDetails] ADD CONSTRAINT Fk_orderidorderDetails FOREIGN KEY  ( [Orderid] ) REFERENCES [Orders]([Orderid])  ON DELETE CASCADE "
CurrentProject.Connection.Execute "ALTER TABLE [orderDetails] ADD CONSTRAINT Fk_productidorderDetails FOREIGN KEY  ( [Productid] ) REFERENCES [Products]([Productid]) "
CurrentProject.Connection.Execute "ALTER TABLE [orders] ADD CONSTRAINT Fk_customeridorders FOREIGN KEY  ( [Customerid] ) REFERENCES [Customers]([Customerid])  ON UPDATE CASCADE "
CurrentProject.Connection.Execute "ALTER TABLE [orders] ADD CONSTRAINT Fk_employeeidorders FOREIGN KEY  ( [Employeeid] ) REFERENCES [Employees]([Employeeid]) "
CurrentProject.Connection.Execute "ALTER TABLE [orders] ADD CONSTRAINT Fk_shipviaorders FOREIGN KEY  ( [Shipvia] ) REFERENCES [Shippers]([Shipperid]) "
CurrentProject.Connection.Execute "ALTER TABLE [products] ADD CONSTRAINT Fk_categoryidproducts FOREIGN KEY  ( [Categoryid] ) REFERENCES [Categories]([Categoryid]) "
CurrentProject.Connection.Execute "ALTER TABLE [products] ADD CONSTRAINT Fk_supplieridproducts FOREIGN KEY  ( [Supplierid] ) REFERENCES [Suppliers]([Supplierid]) "
With DoCmd
        .RunCommand 133    'acCmdRelationships
        .RunCommand 149    'acCmdShowAllRelationships
        .RunCommand 20     'acCmdSave
        .RunCommand 58     'acCmdClose
End With
Application.RefreshDatabaseWindow
MsgBox (" The tables have been create. Please view the table object window")
End Function
Private Sub zer1_Click()
Call CreateTableScripts
End Sub

 

 

انشاء الجداول والعلاقات برمجيا.rar

قام بنشر (معدل)

السلام عليكم

اخي الكريم رمهان واخي الكريم ابو خليل جزاكم الله عنا كل خير

استطعت انشاء العلاقة بهذا الشكل ولكن هل هي صحيحة أم انني سأواجه مشاكل في المستقبل بسببها 

Ashampoo_Snap_2016.11.27_11h15m04s_004_.png

 

accurate 29.rar

تم تعديل بواسطه عبد الله قدور
قام بنشر

اخي عبدالله

موضوع ان العلاقة صحيحية ام لا يجب ان يفهم ماهو الغرض اصلا ؟ نظريا انت عملتها صح ! ولكن ناتي عمليا فهنا لابد ان نفهم انت تريد ان تصل لايه بالعلاقة !

ملاحظة : اشك انك تريد ان العلاقة تكون متغيرة في لحظة ما ثم ترجع زي ماهي وذلك للاستفادة من تتالي التحديث ؟ وهنا نرجع مرة اخرى وشرح فكرتك او انت عايز توصل لايه فانا اشك ان لديك فكرة يمكن ان نستفيد منها جميعا

بالتوفيق

 

قام بنشر

السلام عليكم

اخي الكريم رمهان

الفكرة هي ان جدول tblaccount هو جدول تعريف الحسابات أو ما يسمى محاسبيا بشجرة الحسابات 

ثانيا الجدول الثاني tbltarndel هو جدول دفع حوالة لزبون ما محاسبيا يجب كتابة قيود محاسبية لعميلة دفع الحوالة وقبض عمولة التحويل منها فهنا نحن بحاجة الى ان نستخدم أربع حسابات من جدول الحسابات ويجب ربطها مع اربع اعمدة من جدول دفع الحوالة وهي حساب الصندوق الذي خرجت منه الحوالة و حساب الفرع الذي اتت منه الحوالة وحساب الصندوق الذي دخلت له الحوالة وحساب الحوالة وبالتالي فأنا بحاجة الى هذه الاعمدة المرتبطة بشجرة الحسابات tblaccount ويجب ان تكون كلها ذات تكامل مرجعي وتتالي تحديث

قام بنشر

تمام اخ عبدالله

انا لست محاسب ولكن تحليل النظم علمنا قليلا منها

الان يبدو ان هناك حاجة للتحليل محاسبيا ويتوجب توسعة صدرك قليلا حتى نصل للمراد

هنا اقتراحين :

1. امشي انا واياك في كيفية عمل القيد المركب بالاكسس وخصوصا لوكان اكثر من دائن ومدين في نفس الحركة او العملية . 

2. اعمل لك المطلوب كما طلبت وبالكود وهنا : 

           - انك اخي عبدالله مازلت تسال عن صحة العلاقة وانت قد قمت بها يدوي فهنا افهم اننا بحاجة الى التناقش حتى نصل للتصمبم الجيد لطلبك

           - بما انك عملتها يدويا فمالحاجة لعملها بالكود بالتحديد

 

تحياتي

 

قام بنشر
10 ساعات مضت, رمهان said:

بما انك عملتها يدويا فمالحاجة لعملها بالكود بالتحديد

بما أننا حصلنا على العلاقة التي نريدها فلسنا بحاجة اليها برمجيا الا لزيادة العلم والمعرفة 

وقد كنت اظن ان العلاقة التي لم تبنى بشكل الحالي يمكن بناؤها برمجيا بشكل افضل 

مثل ما يعجز عن القيام به الماكرو يمكن ان يقوم به الفيجول بيسك بسهولة 

تحياتي لك اخي رمهان على مشاركتك 

قام بنشر
7 ساعات مضت, عبد الله قدور said:

بما أننا حصلنا على العلاقة التي نريدها فلسنا بحاجة اليها برمجيا الا لزيادة العلم والمعرفة 

تفضل اخي عبدالله 

For i = 1 To 3
Set rel = CurrentDb.CreateRelation("rel" & i, "TblAccount", "TblTranDel")
rel.Attributes = dbRelationUpdateCascade
Set fld = rel.CreateField("AccCode")
fld.ForeignName = Choose(i, "DelAccComm", "DelCashComm", "DelCashTranfer")
rel.Fields.Append fld
CurrentDb.Relations.Append rel
Next

تحياتي

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information