الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ماهي طريقة جلب وعرض صورة أو صور مخزنة بمجلد معين عند البحث عنها بالفيجول؟!

بدأه المدمر007 في 6 مايو 2008 · 11 رد · 4,867 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يعطيكم الله العافية أخوتي الأحبة :wub:

عندي سؤال هو عبارة عن مشروع صادر ووارد .. وقصته الحزينة كالتالي

مطلوب ادخال بيانات عن الرسائل الصادرة والواردة بفورم خاص لهالشيء، بما فيها حفظ صورة من الرسالة نفسها بمجلد معين ( تم تحديده مسبقاً .. مثلاً اسم المجلدPIC بمحرك C مباشرة )

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

السؤال الآن كيف يمكنني ربط كل رسالة مصورة ببياناتها بشكل صحيح Link وبدون أي مشاكل مستقبلية؟!!

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

سؤالي الآخر: هل توجد طريقة أن يقوم أكثر من مستخدم بالعمل على قاعدة البيانات الخاصة بالصادر والوارد بنفس الوقت، وتحديث البيانات بدون حدوث أي تعارض؟

اسمحوا لي إذا سويت لكم ثقل كبير وأشكركم أخوتي مقدماً :wub:

تم تعديل هذه المشاركة بواسطة المدمر007 في 6 مايو 2008 في 13:21

#2
اقتباس
علماً بأني لا أريد أن يتم حفظ الصورة بقاعدة البيانات نفسها، حتى لا تثقل أو تتضخم القاعدة مستقبلاً، لهذا وضعت الصور بمجلد مخصص لذلك.

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

أما بخصوص موضوع ربط الصورة مع برنامجك حسب سجل معين بقاعدة بيانات ، فمن المفضل أن الصورة تأخذ إسم تحت رقم المفتاح الرئيسي للجدول بحيث ضمان عدم تكرار إسم الملف ، مثال :

لدينا هذا الجدول :

Create Table Employee
(
  Employee_ID	   Country,
  Employee_Code   VarChar(20) Not Null Default(''),
  Employee_Name  VarChar(50) Not Null Default(''),
  Constraint PK_Employee Primary Key(Employee_ID),
  Constraint UQ_Employee_Code Unique(Employee_Code),
  Constraint UQ_Employee_Name Unique(Employee_Name)
)

حيث يحتوي علي 3 حقول ، الأول Employee_ID هو مفتاح رئيسي ومرقم ترقيم تلقائي وغير متكرر !!!

علي أساس هذا الحلق يتم تخزين الصورة بإسمة كما يلي :

1.jpg, 2.jpg, ........ , N.jpg

وهكذا

أما بخصوص عملية الربط ، فبمجرد جلب السجل يمكنك جلب قيمة المفتاح الرئيسي PK من حقل Employee_ID ، ومن ثم تحميل الصورة علي أساسها كما يلي :

If(Dir("C:\PIC\" & RS!Employee_ID & ".jpg") <> "")Then
   Image1.Picture = LoadPicture("C:\PIC\" & RS!Employee_ID & ".jpg")
End If

شكراً

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#3

يعطيك الله العافية أخوي {MMA_EG_Cairo}

وأشكرلك تفاعلك الإيجابي هذا

قاعدة البيانات اللي عندي هي عبارة عن Microsoft Office Access 2003

وكما تعرف بأن Microsoft Office Access تقريباً أكبر حجم يقدر يتحمله هو 2 جيجابايت من البيانات.

فإذا أنا وضعت الصور بهالقاعدة ( وكما تعرف أن حجم الصور متفاوتة وتكون كبيرة خاصة عندما تقوم بمسحها عن طريق Scanner )

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

وأنا ماعرف أتعامل مع قاعدة بيانات أخرى مثل SQL أو الأوركل :S

لقد لفت انتباهي لمشكلة لم انتبه لها .. وهي أن المستخدم سيقوم بتصوير الرسالة عبر السكانر ومن ثم سيحفظها Save as برقم معين داخل مجلد PIC، بس كيف سيتعرف البرنامج على هذا الرقم الذي تم حفظه دون أن نقوم بتعريف هذا الرقم أو اسم الصورة ضمن بيانات الرسالة التي قمنا بحفظها بقاعدة المعلومات؟!!!!

علماً بأن هذا التعريف هو اللي راح يكون الرابط لفتح الصورة .. أليس ذلك صحيحاً ؟!!

لهذا وكما أشرت أنت أريد المستخدم يحفظ الصورة بناء على الرقم التلقائي الذي سيظهر له.. بس كيف نضبط هذه العملية أكثر؟!!

تم تعديل هذه المشاركة بواسطة المدمر007 في 6 مايو 2008 في 11:20

#4

صراحتاً أخي أنا حتي الآن لم أتعامل مخع الماسح الضوئي ، لذلك لا أفيدك !!!

لكن أخي سؤال ، لماذا ترغب في الربط المباشر من علي الماسح الضوئي ، فيمكنك مسح الصور كما تشاء وأخذ نسخة منها الي البرنامج بإختيار ملف الصورة مباشرتاً ، كما يلي :

FileSystem.FileCopy CommonDialog.Path, App.Path & "\Data\Pics\" & rs!Emp_ID & ".jpg"

بحيث أن يتم تحديد الصورة يدوياً ( ShowOpen ) ، بدلاً من جلب الصورة مباشرتاً من علي الماسح الضوئي

شكراً

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#5

بارك الله فيك أخوي الحبيب على أهتمامك وتفاعلك الطيب

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

أتفق معك .. بأن عملية مسح الصورة وحفظها ستكون بالطريقة العادية بدل إذافة ذلك بالبرنامج (تجنباً لأي مشكلات برمجية )

بس قصدت بردي السابق، بأن الاسم الذي سيتم حفظ الصورة به، سيكون حسب الرقم التلقائي الذي أشرت إليه.

#6

يا أخوان لم تنجح معي الأكواد السابقة (ربما لأني أخطأت في وضعها بالمكان المناسب) :cry: ..

هل ممكن أن يسعفني أحدكم بالحل المطلوب مماسبق

أتفقنا بناء على الترقيم التلقائي لكل سجل يتم ادخال بياناتها بقاعدة البرنامج، سيتم بنفس هذا الرقم التلقائي حفظ صورة الرسالة عبر السكانر في مجلد Pic على القرص C

1- عند البحث عن الرقم الذي تم حفظ الرسالة به، اريد من برنامجي عندما يقوم بإظهار كافة بيانات الرسالة، أن يقوم بإظهار صورة مصغرة للرسالة بمربع Image جانب المحتويات، عندما اضغط عليه يفتح لي صورة الرسالة.

2- كون قاعدة البيانات موجودة على السيرفر، وأكثر من مستخدم يقوم باستخدامها.. هل توجد طريقة أن يقوم أكثر من مستخدم بالعمل على قاعدة البيانات الخاصة بالصادر والوارد بنفس الوقت، وتحديث البيانات بدون حدوث أي تعارض؟

كيف يمكنني فعل ذلك ؟!!!!!

#7

السلام عليكم

بالنسبه للتعامل مع الأسكانر أنا مجربتهوش بس بالنسبه للتعامل مع الصور

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

أدخل على برنامج الأنديه الرياضيه او المبيعات والمخازن وشئون الموظفين

=========================================================================

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

وأزاى أكتر من واحد يستخدم البرنامج فى نفس الوقت دى عن طريق كود ربط البرنامج بالجداول فى الأدو

سبحان الله وبحمده سبحان الله العظيم

s.gif

#8

يا أخوان .. بإختصار شديد

ما هو الكود الذي يقوم بجلب صورة من مكان معين عند ادخال اسمه ( رقمه ) بمربع تكست والضغط على زر البحث ؟!!!

#9
Private Sub Command1_Click()
	If (Dir(Text1.Text) <> "") Then Image1.Picture = LoadPicture(Text1.Text)
End Sub

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#10

بارك الله فيك أخوي الحبيب {MMA_EG_Cairo}

اشكرلك تفاعلك ومساعدتك لي..

جربت الكود .. بس ما نفع :(

راح أحاول ابسط الفكرة.. ولو أني واثق أن معظم من قراء الموضوع فهمها على الطاير

هل يمكن ايجاد كود يقوم باستدعاء صورة( بغض النظر عن امتدادها ) من مجلد PIC على مسار ثابت

أرجو وضع الكود في ملف تجريبي

مع خالص محبتي وأجل التقدير لكم :wub:

تم تعديل هذه المشاركة بواسطة المدمر007 في 23 مايو 2008 في 13:55

#11

أخي الكريم ، انا فاهمك ، وذكرت لك من قبل أنك تحتاج الي دالة تجلب لك آخر قيمة رقمية او آخر إسم تم إدراجة بفولدر PIC !!!

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

اما بخصوص الطريقة السابقة ، فالدالة LoadPicture تستخدم في تحميل صورة من مسار معين الي برنامجك ، يعني لو مثلاً لدينا صورة في المسار C:\Pics\Pic1.jpg يمكننا تحميلها كما يلي :

Image1.Pictue = LoadPicture("C:\Pics\Pic1.jpg")

وهكذا

شكراً

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#12

مرحباً .. نظراً لأن الموضوع لم يتم حله حتى الآن رغم مساعدتك الطيبة لي أخوي الحبيب

فإنني أعيد رفعها أخوتي الكرام

فقاعدة البيانات أكسس مرتبطة بالبرنامج بـAdo Code وليس بالربط المباشر Adoc

ربما أكثرت في التفسير والتحليل .. ولكن لم أتوصل للحل بأس شكل والأمثلة الموجودة على هالرابط المشابهة

لم تستطع خدمة طريقة الربط التي استخدمها ، بالإضافة إلى أن الصورة يتم حفظها بقاعدة البيانات بينما أسعى أنا إلى أن

حفظ رابط الصورة وليس الصورة نفسها

كيفية اظهار صورة عن طريق الرقم المسلسل

فهل يمكن الحصول على كود أو طريقة لحل هذه الإشكالية ؟!!!!!!!!!!!!

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…