سؤال

أحاول إنشاء جدول داخل قاعدة بيانات يقوم بتخزين جميع المستندات المتعلقة بقاعدة البيانات "الموجودة بها".ما أريد فعله حقًا هو تحميل ملف والحصول على كود vba الذي ينسخ الملف إلى موقع على الشبكة، ويعيد تسمية الملف عن طريق ربط حقلين من نموذج جدول المستندات (القضاء على مشكلة أسماء الملفات المكررة في الموقع الخارجي)، ثم يقوم بتخزين اسم الملف ومسار الملف في حقل مسار الملف في الجدول.أنا جديد جدًا في الوصول إلى وvba لذا أواجه صعوبة في تشغيل كل شيء.الكود الموجود لدي حاليا هو أدناه:

Option Compare Database

Private Sub Command15_Click()
Dim f As Object

Set f = Application.FileDialog(3)

f.AllowMultiSelect = False

If f.Show Then
    For i = 1 To f.SelectedItems.Count
        sFile = Filename(f.SelectedItems(i), sPath)
        MsgBox sPath & "---" & sFile
    Next
End If

End Sub

Public Function Filename(ByVal strPath As String, sPath) As String
    sPath = Left(strPath, InStrRev(strPath, "\"))
    Filename = Mid(strPath, InStrRev(strPath, "\") + 1)
End Function

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

الوصول إلى MS تصفح الملف والحصول على اسم الملف والمسار

VBA لنسخ ملف من دليل إلى آخر

أستخدم حاليًا Microsoft Access 2010، ولا أرغب في استخدام نوع حقل مرفق الملف بسبب قيود حجم قاعدة البيانات.أقوم حاليًا بالضغط على زر وسيظهر مستكشف الملفات للانتقال إلى الملف الذي يتم تحميله، ويتم إدخال المسار واسم الملف في سلاسل.بعد هذه النقطة أنا ضائعة.إذا كانت هناك حاجة إلى أي معلومات أخرى واسمحوا لي أن أعرف.شكرا مقدما على المساعدة.

هل كانت مفيدة؟

المحلول

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

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

يمكن أن يصبح الأمر صعبًا إذا كنت لا تستخدم بعض الوظائف المساعدة لتشريح وإعادة تركيب الأجزاء المختلفة من المسارات.

لقد قمت بإنشاء قاعدة بيانات نموذجية التي لديها عدد قليل من الوظائف.قد لا يتماشى تمامًا مع ما تحتاجه ولكن يمكنك بسهولة اللعب به ليناسب حالتك الخاصة.

تتضمن قاعدة البيانات النموذجية أ Tools وحدة VBA التي تحتوي على بعض الوظائف المفيدة لتقسيم المسار إلى مكوناته.

في الأساس، تحتوي قاعدة البيانات على نموذجين.

يسمح لك النموذج الرئيسي بتعيين مسار الشبكة حيث سيتم حفظ الملفات.يمكنك بعد ذلك تحديد رقم حساب محدد مسبقًا (مدرج في ملف Account الجدول) المرتبط بمستند، ثم انقر فوق زر التحميل.

Main Form

وهذا يخلق رقما قياسيا جديدا في Document الجدول ويفتح نموذجًا يمكنك من خلاله تحرير عنوان المستند والنقر فوق زر لتحميل ملف إلى الخادم.

Document Upload form

يتم نسخ الملف الذي حدده المستخدم إلى الخادم بعد تحويل مساره.لقد افترضت أن الملف سيحتفظ بامتداده الأصلي، وستتم إعادة تسمية اسم الملف إلى ID التابع Document سجل مكان حفظ معلومات الملف (مثل 5845.pdf) وأن المجلد الذي يتم حفظ الملف فيه على الخادم سيكون رقم الحساب، بحيث يتم تحديد الملف المصدر من قبل المستخدم

C:\Users\user\Desktop\SuperSecretFile.pdf

سيتم حفظها كـ، على سبيل المثال:

\\docserver\files\123-55547\5845.pdf

يسمح لك النموذج الرئيسي أيضًا بتحديث سجل موجود، أو فتح الملف من الخادم، أو فتح مجلد الخادم حيث يوجد الملف، أو حتى نسخ ملف الخادم مرة أخرى إلى كمبيوتر المستخدم بالاسم الأصلي للملف.

سأدعك تلعب بها.دعني أرى إن كان هناك حل.

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