اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

تحديث البيانات في عدة جداول من عدة فورمات في امر واحد


hougar

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

السلام عليكم

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

تم تعديل بواسطه hougar
رابط هذا التعليق
شارك

وعليكم السلام ورحمة الله وبركاته

يمكن تنفيذ الامر في حدث قبل التحديث

Private Sub Form_BeforeUpdate(Cancel As Integer)
    ' ضع اوامر تنفيذ الاستعلامات هنا
End Sub

تحياتي

  • Like 1
رابط هذا التعليق
شارك

تفضل هذا الكود اخي الكريم

حدد البيانات المراد تحديثها و كذلك الجداول

 

Dim db As Database
Dim sSQL As String
On Error GoTo errorhandle

' الجدول الأول
Set db = CurrentDb
sSQL = "UPDATE Employees SET NameEmploye = '" & Text1 & "', StutesEmploye = '" & Text2 & "' WHERE [NoEmploye]=1;"
db.Execute sSQL
 
' الجدول الثاني
Set db = CurrentDb
sSQL = "UPDATE LeaveRequest SET StutesEmploye = '" & Text2 & "' WHERE [NoEmploye]=1;"
db.Execute sSQL
    
MsgBox "تم تحديث الجداول بنجاح", vbInformation + vbMsgBoxRight, "تأكيد"
errorhandleexit:
        Exit Sub
errorhandle:
        MsgBox Err.Description
        Resume errorhandleexit

 

تم تعديل بواسطه د.كاف يار
  • Like 2
رابط هذا التعليق
شارك

13 ساعات مضت, د.كاف يار said:

تفضل هذا الكود اخي الكريم

حدد البيانات المراد تحديثها و كذلك الجداول

 


Dim db As Database
Dim sSQL As String
On Error GoTo errorhandle

' الجدول الأول
Set db = CurrentDb
sSQL = "UPDATE Employees SET NameEmploye = '" & Text1 & "', StutesEmploye = '" & Text2 & "' WHERE [NoEmploye]=1;"
db.Execute sSQL
 
' الجدول الثاني
Set db = CurrentDb
sSQL = "UPDATE LeaveRequest SET StutesEmploye = '" & Text2 & "' WHERE [NoEmploye]=1;"
db.Execute sSQL
    
MsgBox "تم تحديث الجداول بنجاح", vbInformation + vbMsgBoxRight, "تأكيد"
errorhandleexit:
        Exit Sub
errorhandle:
        MsgBox Err.Description
        Resume errorhandleexit

 

في ٩‏/٩‏/٢٠٢٠ at 14:11, hougar said:

السلام عليكم

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

 

في ٩‏/٩‏/٢٠٢٠ at 15:19, محمد أبوعبدالله said:

وعليكم السلام ورحمة الله وبركاته

يمكن تنفيذ الامر في حدث قبل التحديث


Private Sub Form_BeforeUpdate(Cancel As Integer)
    ' ضع اوامر تنفيذ الاستعلامات هنا
End Sub

تحياتي

شكرا على المساعدة لكن ربما لم استطع نقل البيانات بشكل صحيح أو أنني لم أستطع توضيح المشكلة جيدا

مع العلم أن مشكلتي الاساسية هو تحديث لنفس الجدول (تحديث جدول الفواتير) انطلاقا من الفورم بمعني نقل بيانات عدة  سجلات في امر واحد لتحديث جدول الفواتير دون الحاجة لفتح كل سجل وتشغيل استعلام التحديث.

رابط هذا التعليق
شارك

4 ساعات مضت, hougar said:

أو أنني لم أستطع توضيح المشكلة جيدا

بالمثال يتضح المقال

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

تحياني

رابط هذا التعليق
شارك

لاحظ في الملف ان الفاتورة 18 تم تحديث بياناتها اما البقية فلم يتم التحديث (على افتراض أنني نسيت الضغط على تحديث البيانات) ولا تظهر المبالغ الاجمالية في الجدول والتقرير,,,,,,,,,,,,,,,,......,, هل يمكن كتابة امر يقوم بتحديث كل الفواتير مرة واحدة لأنني عند نسيان الضغط على تحديث البيانات أجد نفسي مضطرا للعودة لكل فاتورة وتحديثها. ملاحظة صممت معظم الاوامر بالماكرو لكن لا مشكلة إن كان كان حل الاشكال يتطلب الاعتماد على الاوامر بالكود

فواتير.rar

تم تعديل بواسطه hougar
رابط هذا التعليق
شارك

في ١٢‏/٩‏/٢٠٢٠ at 13:51, hougar said:

لاحظ في الملف ان الفاتورة 18 تم تحديث بياناتها اما البقية فلم يتم التحديث (على افتراض أنني نسيت الضغط على تحديث البيانات) ولا تظهر المبالغ الاجمالية في الجدول والتقرير,,,,,,,,,,,,,,,,......,, هل يمكن كتابة امر يقوم بتحديث كل الفواتير مرة واحدة لأنني عند نسيان الضغط على تحديث البيانات أجد نفسي مضطرا للعودة لكل فاتورة وتحديثها. ملاحظة صممت معظم الاوامر بالماكرو لكن لا مشكلة إن كان كان حل الاشكال يتطلب الاعتماد على الاوامر بالكود

فواتير.rar 70.09 kB · 8 تنزيلات

 

في ١٢‏/٩‏/٢٠٢٠ at 00:51, محمد أبوعبدالله said:

بالمثال يتضح المقال

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

تحياني

 

رابط هذا التعليق
شارك

السلام عليكم

لتحديث حقل Total amount في جميع الفواتير

يمكن انشاء استعلام تحديث لحقل Total amount كالتالي

DSum("(([price]*[number])-[discount])";"[subinvoices]";"[N invoice] =" & [N invoice])

لاحظ الاستعلام الجديد Query1

UPDATE invoices SET invoices.[Total amount] = DSum("(([price]*[number])-[discount])","[subinvoices]","[N invoice] =" & [N invoice]);

وفي حدث عند الخروج في نموذج افواتير = invoices ضع الكود التالي

Private Sub Form_Close()
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "Query1"
    DoCmd.SetWarnings True
End Sub

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

[Total amount]-[paid up]

او تستغني عن عن الحقل وستخدم العملية الحسابية في الاستعلام = Query2 كالتالي

Remaining_amount: Nz([Total amount])-Nz([paid up])
SELECT invoices.[Total amount], invoices.[paid up], Nz([Total amount])-Nz([paid up]) AS Remaining_amount FROM invoices;

 

فواتير.rar

تحياتي

رابط هذا التعليق
شارك

شكراجزيلا لك إأخي على حل المشكلة لقد حللت المشكلة بفكرة بسيطة لكنها رائعة شكرا لك مرة أخرى

في ١٣‏/٩‏/٢٠٢٠ at 22:32, محمد أبوعبدالله said:

السلام عليكم

لتحديث حقل Total amount في جميع الفواتير

يمكن انشاء استعلام تحديث لحقل Total amount كالتالي


DSum("(([price]*[number])-[discount])";"[subinvoices]";"[N invoice] =" & [N invoice])

لاحظ الاستعلام الجديد Query1


UPDATE invoices SET invoices.[Total amount] = DSum("(([price]*[number])-[discount])","[subinvoices]","[N invoice] =" & [N invoice]);

وفي حدث عند الخروج في نموذج افواتير = invoices ضع الكود التالي


Private Sub Form_Close()
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "Query1"
    DoCmd.SetWarnings True
End Sub

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


[Total amount]-[paid up]

او تستغني عن عن الحقل وستخدم العملية الحسابية في الاستعلام = Query2 كالتالي


Remaining_amount: Nz([Total amount])-Nz([paid up])

SELECT invoices.[Total amount], invoices.[paid up], Nz([Total amount])-Nz([paid up]) AS Remaining_amount FROM invoices;

 

فواتير.rar 64.77 kB · 7 تنزيلات

تحياتي

 

رابط هذا التعليق
شارك

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