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

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

قام بنشر

السلام عليكم 

اخواني واساتذتي

اذا كان عندي قاعدة اكسس تم تغيير صيغتها الى msi مثلا

اريد كود عند تحديد مسارها يحدد ان هذا الملف هو قاعدة اكسس او لا

بمعنى لوكان هذا  المسار "E:\SYSTEMES\SYSTEM_COPY\alkdsiaden2021-2021.msi" لقاعدة اكسس مغير الصغية 

اريد كود يحدد هل هي قاعدة اكسس او لا

ارجو ان يكون طلبي واضح

قام بنشر

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

لمعرفة امتداد الملف استخدم الكود التالي

    Dim File_Type As String
    Dim DB_Full_Name As String
    DB_Full_Name = CurrentProject.Path & "\" & CurrentProject.Name
    File_Type = Mid(DB_Full_Name, InStrRev(DB_Full_Name, ".") + 1)
    
    Debug.Print File_Type

ولمعرفة مسار الملف استخدم الكود التالي

Debug.Print CurrentProject.Path

ولمعرفة اسم قاعدة البيانات

CurrentProject.Name

ولمعرفة اسم قاعدة البيانات مع المسار كاملا استخدم الكود التالي

Debug.Print CurrentProject.Path & "\" & CurrentProject.Name

تحياتي

  • Like 1
قام بنشر

اشكرك استاذ محمد

ولاكن لعلك ما فهمت طلبي

اريد كود يحدد لي هل الملف الموجود في المسار هي قاعدة اكسس او لا

"E:\SYSTEMES\SYSTEM_COPY\alkdsiaden2021-2021.msi"

مع العلم ان القاعدة هي اكسس ولاكن مغير الصيغة الى .msi

 

قام بنشر

أعتقد لا يمكن معرفة الملفات داخل الامتداد msi إلا بعد فك تجميعه 

باستخدام أوامر في الدوس CMD

لو أمكن إرفاق ملف msi والملف الذي تريد وضع الكود فيه للتجربة عليه

قام بنشر

استاذي العزيز محمد هذا مرفق لقاعدة اكسس قمت بتغيير صيغته الى msi

من باب حماية القاعدة 

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

فاذا لم يكن بعطينا خطا ان هذه ليست قاعدة اكسس

testdata.rar

  • Like 1
قام بنشر

فكرة بفكرة يمكن تنفيذها وهي :

اولا نحتاج تغيير امتداد ملفك الى ملف امتداد ملف اكسس

ثانيا نفحص هذا الملف هل هو ملف اكسس صالح فيعطي رسالة بذلك او معطوب فيعطي رسالة ايضا بذلك 

.
.
.
.
افكر في تنفيذها إن اردت .... جاري العمل على ذلك ..............

 

  • Like 4
  • أفضل إجابة
قام بنشر

وعليكم السلام محمد..

الملفات الثنائية لها معرفات نصية في أول سطر من الملف! يمكن الاستفادة من هذه الميزة للتعرف على الملف الأصلي حتى لو غُيرت اللاحقة!

افتح الملف بواسطة محرر النصوص التقليدي للحصول على معرف الملف ثم استخدم هذا المعرف في فحص القيمة..

في أكسس الشفرة التالية تفي بالغرض إن شاء الله

Sub TestData()
   On Error Resume Next
   Dim fn, ft
   fn = CurrentProject.Path & "\testdata\testdata.msi"
   Open fn For Input Access Read As #1
   Line Input #1, ft
   Close #1
   
   If ft Like "*Standard ACE DB*" Then
    Name fn As Replace(fn, ".msi", ".accdb")
   End If

End Sub

 

  • Like 7
  • Thanks 1
قام بنشر

اولا اشكرك استاذي @kanrya على تعاونك ولا مانع من اي فكرة نتعلم منها

وثانبا اشكرك استاذي @أبو إبراهيم الغامدي على هذه الشفرة

وانا اشهد استاذي انك مبدع وهو المطلوب استاذي العزيز

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

قام بنشر

ظننت الأمر أكبر من ذلك

من الواضح أن ملف msi المرفق ليس إلا عملية إعادة تسمية لقاعدة البيانات accdb كما اقترح أ / @أبو إبراهيم الغامدي

لأنه عند فك تجميع الملف بكود فك تجميع ملفات msi في الدوس ظهرت هذه الرسالة

1489112154_extractmsi.jpg.3fd75a1374afe725c1ee259879077c44.jpg

وهذا يعني أنه ليس ملف msi صحيح ولا يحتوي على تحزيم لمجموعة من الملفات داخله

بالتوفيق

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