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

أبو إبراهيم الغامدي

أوفيسنا
  • Posts

    707
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    13

كل منشورات العضو أبو إبراهيم الغامدي

  1. أهلا بك أبا عبدالرحمن.. كيف أستطيع أن أساعد؟ لم أجد في الملفات المرفقة ما أشرت إليه أدناه ولم استطع أن أفهم طلبك
  2. أستاذ @محمد طاهر لله ما أخذ وله ما أبقى.. فلتصبر ولتحتسب.. وتذكر.. "إنا لله وإنا إليه رجعون.. اللهم أجرني في مصبتي هذه واخلفني خيراً منها.." اللهم عافه واعف عنه.. واكرم نزله.. ونور له في قبره ووسع له فيه.. ونقه من الذنوب والخطايا كما ينقى الثوب الأبيض من الدنس.. اللهم اخلفه في عقبه في الغابرين.. واجعله من ورثة جنة النعيم.. واحشره في زمرة النبيين..
  3. أهلا بك.. غير نوع البيانات في الترقيم التلقائي من LongInteger إلى Replication ID إذا كانت نسخة أكسس لديك عربية أعتقد أنها (رقم طويل) والآخر أظنه (عشوائي)
  4. أهلا أ. أبا جودي.. المبهر أن جُل علماء مصر صعايدة.. كفاك فخر بنفسك!!! في أكسس: هناك فرق في الوصول إلى البيانات بين ماهو شائع بين المطورين وبين ماهو متقدم! وفي الغالب نحن لا نراعي النواحي التقنية في التعامل مع السجلات.. وبكلام مختصر: عند إضافة أو تحرير سجل.. أنت لست بحاجة إلى تحميل بيانات الجدول بالكامل! وبناءً عليه نستخدم وصلات الاستعلام للوصول للبيانات بشكل محدد.. ولو ذهبت مرة إلى أحد فروع شركة الشحن العملاقة FedEx وحشرت أنفك في شاشة تسجيل البيانات لن تجد ما يشبع فضولك! فضلاً راجع هذا الرابط (FSMS Developer Guide) لأخذ معلومة عن كيفية عمل نظام FedEx وطرق معالجة البيانات..
  5. أهلا أ. جعفر.. إجابتي السابقة كانت بناءً على سلوك الغالبية من الزملاء في التعاطي مع البيانات.. لكن لو سألتني عن سولكي الخاص فأنا أفضل وصلات الاستعلام عوضا عن الجداول في عرض البيانات وعمل الإجراءات عليها.. الفروقات الزمنية في التنفيذ تظهر أكثر على البيانات البعيدة التي لا تعمل على سيرفرات..
  6. طبعا تنشىء الاستعلام في قاعدة البيانات الخلفية.. ثم تشير إلى الاستعلام باسمه كما في الجدول.. إذا كنت تريد عمل استعلام يشير إلى محددات من قيم في حقول النموذج فيمكنك إنشاء جملة الاستعلام مكان اسم الجدول.. Set Me.Recordset=DBDAO.OpenRecordset("SELECT * FROM CUSTOMERS WHERE [CUSTOMER ID]=" & Me.CB_CUSTOMER_ID) في الحالة هذه تستطيع وضع جملة الاستعلام في حدث After_Update للحقل.. أو تعيد تنشيط النموذج باستخدام Me.Requery في نفس الحدث
  7. أهلا بك عزيزي أبا جودي.. لاحظ في المثال المرفق أن ألنموذج لا يعتمد على الجدول المرتبط بالطريقة المباشرة.. أبقيت على شفرة الربط الخاصة SQL SERVER للفائد.. LINKED DATA.ZIP
  8. السلام عليكم.. في الحقيقة أن ربط قاعدة البيانات الخلفية بالأمامية إنما هو لوصل البيانات بالنماذج والتقارير! عند استخدامنا لمعالج تقسيم البيانات أو معالج الربط فإن أكسس يقوم بإنشاء جداول نظام يخزن بها البيانات المتعلقة بربط البيانات ومصدرها وآلية ربطها.. الصورة التالية تبين مصدر البيانات وآلية الربط.. نلاحظ في السجل المحدد كيف قام المعالج بتعريف مصدر البيانات المتعلقة بجداول أكسس.. أرجو أن يكون بمقدوركم فهم العلاقة بين مصدر البيانات ومسميات الجداول في المصدر وقاعدة البيانات الأمامية.. لعمل الربط غير المباشر للبيانات عن طريق الشفرة بجداول بيانات أكسس نحتاج إلى الشفرة التالية.. نضع الشفرة التالية في وحدة نمطية عامة Public Function APP_PATH() As String APP_PATH = CurrentProject.Path End Function Public Function DBDAO() As DAO.Database Set DBDAO = OpenDatabase(APP_PATH & "\DB1.ACCDB", False, False, ";PWD=''")'ضع كلمة المررور إذا كانت مطلوبة End Function نضع الشفرة التالية في حدث عند الفتح في النموذج Set Me.Recordset = DBDAO.OpenRecordset("EMPLOYEES", dbOpenDynaset)
  9. انسخ الشفرة التالية وضعها في حدث عند النقر لزر الأمر Dim DB As DAO.Database Set DB = CurrentDb() '--- DB.Execute "SELECT * INTO [عناوين المرضى] IN'" _ & CurrentProject.Path & "\Patients.xlsx'[Excel 12.0;HDR=yes;READONLY=FALSE] FROM TABLE1 " '--- DB.Execute "SELECT * INTO [حالة العلاج] IN'" _ & CurrentProject.Path & "\Patients.xlsx'[Excel 12.0;HDR=yes;READONLY=FALSE] FROM TABLE2 "
  10. نعم.. الشفرة تنشيء ملف الأكسل في نفس مسار قاعدة البيانات.. قم بتغيير اسم الملف إذا أردت
  11. أهلا بك رضوان.. استخدم الشفرة التالية Sub EXPORT_TO_EXCEL() Dim DB As DAO.Database Set DB = CurrentDb() '--- DB.Execute "SELECT * INTO [عناوين المرضى] IN'" _ & CurrentProject.Path & "\Patients.xlsx'[Excel 12.0;HDR=yes;READONLY=FALSE] FROM TABLE1 " '--- DB.Execute "SELECT * INTO [حالة العلاج] IN'" _ & CurrentProject.Path & "\Patients.xlsx'[Excel 12.0;HDR=yes;READONLY=FALSE] FROM TABLE2 " End Sub
  12. أهلا سمير.. نعم يمكن..، لكن نريد عينة من البيانات وتحديد طريقة ادراج البيانات في الجدول مثلا: إضافة الجديد مع تحديث السابق..
  13. أرجو منك تحديد أفضل إجابة على مشاركتك؛ وذلك بالضغط على كلمة "اختر كأفضل إجابة" تحت المشاركة الأفضل بالنسبة لك..
  14. أهلا بك.. نعم.. الشفرة التالية تقوم بالتحديث والإدراج معاً! Sub UPDATE_FROM_EXCEL() '-- GET EXCEL FILE Dim XL_FILE As String XL_FILE = CurrentProject.Path & "\ITEMX.xlsx" '-- WRITE SQL STATEMENT Dim SQL As String SQL = SQL & "UPDATE TABLE1 AS T1 " SQL = SQL & "RIGHT JOIN " SQL = SQL & "(SELECT * FROM [SHEET1$] IN'" & XL_FILE & "'" SQL = SQL & "[EXCEL 12.0;HDR=YES;IMEX=1;]) AS T2 " SQL = SQL & "ON T1.[كود_الصنف] = T2.[كود الصنف] " SQL = SQL & "SET T1.[كود_الصنف] = T2.[كود الصنف]," SQL = SQL & "T1.[اسم_الصنف] = T2.[اسم الصنف]" '-- RUN SQL STATEMENT CurrentDb.Execute SQL End Sub ITEMX.accdb ITEMX.xlsx
  15. يجب عليك أو الانتهاء من إعدادات خادم الشيربوينت أولاً، ثم يمكنك تصميم قاعدة البيانات كما تريد
  16. أهلا بك رضوا.. هذا وصف مجمل! أرجو أن تبسط في الشرح قليلا.. مع مثال للبيانات
  17. لا.. كل ما عليك فعله هو إخراج الشفرة من حدث OnLoad ووضعها في إجراء جديد مع محدد غرضي واحد، ثم في حدث OnLoad تمرر إليه اسم النموذج.. هنا ملاحظة يجب التنبيه إليها، وهي تحديد عدد السجلات التي ترسلها لكل نموذح حتى لا تتكرر السجلات في النماذج.. Private Sub Form_Load() SET_EVENTS (Me.f1) End Sub Sub SET_EVENTS(F As Object) On Error Resume Next Dim pt Dim i Dim rst As Recordset Dim ctl As Control Set rst = CurrentDb.OpenRecordset("SELECT * FROM t1 WHERE d_f='1'") '-- IMAGE CONTROL rst.MoveFirst For Each ctl In F.Controls ' typefile = TypeFileFromPath(CurrentProject.Path & "\Image\" & rst(1)) If ctl.ControlType = acImage Then If Not rst.EOF Then ctl.Picture = "" ctl.Tag = rst(0): ctl.Visible = True: ctl.OnClick = "=halaby('" & ctl.Tag & "')" pt = CurrentProject.Path & "\Image\" & rst(0) & ".jpg" If Dir(pt) <> "" Then ctl.Picture = pt Else ctl.Picture = CurrentProject.Path & "\Image\Noimage.jpg" End If rst.MoveNext End If End If Next '-- COMMAND_BUTTON CONTEOL rst.MoveFirst For Each ctl In F.Controls If ctl.ControlType = acCommandButton Then If Not rst.EOF Then ctl.Tag = rst(0): ctl.Caption = rst(2): ctl.Visible = True: ctl.OnClick = "=halaby('" & ctl.Tag & "')" rst.MoveNext End If End If Next rst.Close Set rst = Nothing End Sub
  18. رحمك الله أ. حلبي.. ما أعتقد أني فعلت شيء.. كل ما في الأمر أني مررت رقم الصنف في الدالة خاصتك!
  19. مبارك عليك أ. @Khalf شارة الخبراء.. أتمنى لك مزيدا من التألق والعطاء، والتوفق والسداد..
  20. أهلا @حلبي عنصر تحكم الصورة في أكسس لا يقبل التركيز ولذا فإن (Screen.ActiveControl) لا يمكن أن يعيد قيمة الخصيصة (Tag) الخاصة بالصورة! نحن بحاجة إلى شيء يكون مقبولا مع جميع العناصر.. أجريت التعدل اللازم . الأصناف.zip تجربتي يمكن تعجبك! عند التقر على الصورة، إذا كانت المادة موجودة تزيد الكمية! PRODUCTS.zip
  21. أما أنا فأحمد الله أنك لم تفعل ذلك! لأن طريقتك أجود في نظري! أتمنى لك التوفيق
  22. كيف ستفعل بهذه العشرين أو أكثر! هل ستلجأ إلى فتح التصميم وإعادة رصف الصور في كل مرة؟! أقترح عليك استخدام النموذج المستمر؛ لتتخلص من العرض والطول الزائدين، خاصة وأنت ستخدم نموذج الأصناف داخل نموذج آخر..
  23. لكنك خالفت هذه النقطة! ولجأت إلى عنوان النافذة لتستخدمه كمحدد! (باراميتر).. بعد فحصك لعنوان النافذة المطابق لطلبك استخدمت المجمع (Dictionary) لتخزين مقبض النافذة المطابق لشرطك، وكان يالإمكان استخدام الدالة ShowWindow مباشرة مع ذلك المقبض، والاسنغناء كليا عن المجمع.. في كل الأحوال أنت بحاجة إلى محدد؛ سواءً استخدمت الطبقة أو العنوان كمحدد! وإلا سوف تقوم الدالة ShowWindow بتطبيق الإجراء على جميع النوافذ..
  24. أهلا الجميع.. في الحقيقة مشاركات متنوعة وجميلة لاستخدام دوال ويندوز WIN32API .. -- مشاركة أ. @Khalf : مبنية على البحث عن النوافذ المفتوحة في شريط المهام بواسطة الدالة EnumWindows مع استخدام دالة التغذية الراجعة EnumWindowCallback.. (تستخدم هذه الدالة لتطبيق بعض الإجراءات التي يحددها المستخدم في دالة التغذية الراجعة على النوافذ المفتوحة). ولهذا هي طويلة بعض الشيء. -- مشاركة أ. @jjafferr : هي أيضا لها علاقة بالنوافذ المفتوحة في شريط المهام؛ ولكنه استخدم الطبقة الرئسية للنوافذ المفتوحة، وهي هنا shell_traywnd، ثم مررها إلى الدالة FindWindow، لتعيد له هذه الدالة رقم صحيحا يسمى مقبض النافذة HWND. ثم مرر هذا الرقم إلى وظيفة أخرى PostMessage لتقوم بإرسال رسائل للطبقة الرئيسية: بالتصغير، أو العودة إلى الوضع الطبيعي.. ولهذا هي قصيرة جدا! لأنها محددة المهام أما مشاركتي فلا علاقة لها بالإجابة عن السؤال! عند تمرير مؤشر الفارة على النوافذ المفتوحة يعيد أكسس البيانات التي سألت عنها في الاقتباس أدناه! إذا لم تظهر البيانات بالشكل الصحيح ثبت أكسس فوق النافذة وحرك الفارة.. Windows Information.accdb
  25. أهلا حسين التعامل مع التطبيقات خارج أكسس له أسلوب خاص يتعلق بويندوز نفسه وبالتالي يطلب منك ويندوز معلومات تتعلق بالتطبيق الذي تريد أن ترسل الأمر إليه مثل الاسم البرمجي، عنوان التطبيق، من أين أقلع التطبيق من داخل أكسس أو خارجه، هل هو التطبيق النشط أم لا.. أشياء كهذه. هل يمكن أن توفر هذه المعلومات؟
×
×
  • اضف...

Important Information