تزامن الوصول إلى قاعدة البيانات مع Excel كواجهة مقدمة - قابلة للتنفيذ؟

StackOverflow https://stackoverflow.com/questions/2295225

  •  21-09-2019
  •  | 
  •  

سؤال

لنفترض أن لديك قاعدة بيانات تحتوي على أكبر الجداول التي تحتوي على حوالي 200.000 صف ، وغالبًا ما يتم تعديلها. يريد العميل من Excel الاتصال عبر ODBC بقاعدة البيانات ، والعمل كقاعدة أمامية لإدارة البيانات. يجب تعديل البيانات من قبل 25 مستخدمًا بشكل متزامن.

غريزتي الأولى هي التوصية بشيء آخر ، على سبيل المثال واجهة ويب. لكن لنفترض أن العميل يصر على حل Excel ، هل تعتبره قابلاً للتنفيذ ، وما هي المزالق التي تراها؟

سيكون شكوكي حول:

  1. تكامل البيانات (كيفية إدارة المستخدمين الذين يعدلون نفس البيانات في نفس الوقت)
  2. تم نقل كميات كبيرة من البيانات دون داع (عند فتح مصنف Excel ، أتصور أن قاعدة البيانات بأكملها يجب نقلها)
  3. الأمان (يوضح فقط أجزاء من البيانات للمستخدمين المناسبين بطريقة آمنة ، سيكون تحديًا - انظر النقطة السابقة)
  4. باستخدام أداة (Excel) لشيء ما ، لا يتفوق فيه (عفوا عن التورية)
هل كانت مفيدة؟

المحلول

أفعل هذا في كل وقت. لا ، ليس عليك إحضار قاعدة البيانات بأكملها أو حتى الجدول بأكمله. يمكنني استخدام ADO و VBA وأرسل عبارات SQL عبر كائن الأمر. على سبيل المثال ، لدي قاعدة بيانات ملكية مع واجهة Excel.

يقوم المستخدمون باختلاسك في رقم فاتورة وبيان SELECT إلى استرداد سجل واحد ويملأ بعض الفئات المخصصة. يقوم المستخدم بإدخال/يعدل بعض البيانات والنقرات "حفظ". ثم لدى الفصل طريقة تكتب السجل مرة أخرى إلى قاعدة البيانات مع وتحديث أو إدراج بناءً على الموقف.

في نهاية الشهر ، يدخل المستخدم نطاقًا تاريخًا ويسترجع بعض السجلات في تقرير ، مرة أخرى مجرد عبارة محددة تملأ بعض الفئات والإخراج إلى ورقة.

استخدم المعاملات حتى تتمكن من التراجع إذا ضربت أي مشاكل في قفل السجل ، ولكن مع 25 مستخدمًا ربما لن تفعل ذلك.

نصائح أخرى

للوهلة الأولى ، أود أن أقترح معاملة Excel مثل صفحة الويب ، أي فقط سحب البيانات المطلوبة واستخدم نموذجًا محددًا لتحرير سجل واحد في وقت واحد عبر ADO. تحتاج فقط إلى قفل سجل واحد وأنه بالنسبة إلى جزء من الوقت يستغرق التحديث. يمكنك التحقق مما إذا كان السجل قد تغير أم لا منذ فتحه للتحرير ويمكن إخبار المستخدمين بأنهم لا يستطيعون فتح سجل للتحرير ثم تركه جالسًا في نموذج التحرير أو قد يفقدون التغييرات.

من غير المرجح عادة أن تحتاج هذه المجموعة الصغيرة إلى تغيير السجل نفسه في نفس الوقت.

لا أعتقد أنك ستواجه مشكلة كبيرة مع 25 مستخدمًا متزامنًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top