• 0
غرّام العقول

التقاط الصور ومشاركتها عبر شبكة محلية

سؤال

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

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

هذا المثال -للأسف- قبل التقسيم .. لأنني أعاني من مشكلة صغيرة بعد التقسيم سيتم معالجتها لاحقاً.

أقدم شكري وعظيم امتناني للأستاذة الفاضلة/ زهرة العبدالله على ما قدمته لي من مساعدة سابقة تتعلق بهذا المثال المرفق.

za-RegLib.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

10 إجابة على هذا السؤال .

  • 0

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

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

هذا المثال -للأسف- قبل التقسيم .. لأنني أعاني من مشكلة صغيرة بعد التقسيم سيتم معالجتها لاحقاً.

أقدم شكري وعظيم امتناني للأستاذة الفاضلة/ زهرة العبدالله على ما قدمته لي من مساعدة سابقة تتعلق بهذا المثال المرفق.

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

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

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله خير استاذ عصام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

أتمنى أن توضح ذلك بتفصيل أكثر -أستاذ عصام- لو سمحت

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سأوضح المطلوب بشكل أكثر دقة.

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

Private Function GetImageFolder() As String
Dim DBFullPath As String
Dim I As Integer
DBFullPath = CurrentDb().Name
For I = 1 To Len(DBFullPath)
If Mid(DBFullPath, I, 1) = "\" Then
GetImageFolder = Left(DBFullPath, I) & "Images\"
End If
Next
End Function

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي الفاضل : غرام العقول

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

اولا : اذا كان المجلد الخاص بالصور موجود على شبكة محلية فيجب عليك اولا عمل مشاركة لهذا المجلد لكل المستخدمين واعطاء هذا كل الصلاحيات

ثانيا : سوف نستخدم هذا الكود البرمجي الذي سوف يقوم بإظهار الصور سواء على الجهاز المحلي ( كمبيوتر شخصي وحيد ) او على شبكة متعددة المستخدمين


Option Compare Database
Option Explicit

Public Function DisplayImage(ctlImageControl As Control, strImagePath As Variant) As String
On Error GoTo Err_DisplayImage

Dim strResult As String
Dim strDatabasePath As String
Dim intSlashLocation As Integer

With ctlImageControl
If IsNull(strImagePath) Then
.Visible = False
strResult = "No image name specified."
Else
If InStr(1, strImagePath, "\") = 0 Then
' Path is relative
strDatabasePath = CurrentProject.FullName
intSlashLocation = InStrRev(strDatabasePath, "\", Len(strDatabasePath))
strDatabasePath = Left(strDatabasePath, intSlashLocation)
strImagePath = strDatabasePath & strImagePath
End If
.Visible = True
.Picture = strImagePath
strResult = "Image found and displayed."
End If
End With

Exit_DisplayImage:
DisplayImage = strResult
Exit Function

Err_DisplayImage:
Select Case Err.Number
Case 2220 ' Can't find the picture.
ctlImageControl.Visible = False
strResult = "Can't find image in the specified name."
Resume Exit_DisplayImage:
Case Else ' Some other error.
MsgBox Err.Number & " " & Err.Description
strResult = "An error occurred displaying image."
Resume Exit_DisplayImage:
End Select
End Function

اذا كان مسار المجلد على الجهاز الشخصي سيكون بهذه الطريقة


Dim strImagePath As Variant
'على الجهاز المحلي او الكمبيوتر الشخصي
strImagePath= "C:\Windows\Zapotec.bmp"

بإمكانك تعديل المسار حسب مكان موضع مجلد الصور

اما اذا كان على شبكة او سيرفر فيجب ان يكون المسار بهذه الطريقة


Dim strImagePath As Variant
'على مجلد في الشبكة او السيرفر
strImagePath= \\Servername\FolderShareName\Zapotec.bmp"

\\Servername ( اسم السيرفر ) لا تنسى \\ في البداية

FolderShareName مجلد الصور على السيرفر وقد تم عمل مشاركة وصلاحيات كاملة له لكل المستخدمين

لإستدعاء الدالة السابقة ستكون بهذه الطريقة


Private Sub CallDisplayImage()
Me!txtImageNote = DisplayImage(Me!ImageFrame, Me!txtImageName)
End Sub

في حدث بعد التحديث للنموذج


Private Sub Form_AfterUpdate()
CallDisplayImage
End Sub

في حدث الحالي للنموذج


Private Sub Form_Current()
CallDisplayImage
End Sub

لا تنسانا من التقييم بارك الله بك

بالتوفيق

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أستاذتي الكريمة/ زهرة العبدالله

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

وبارك الله بكم ونوّر أبصاركم وبصائركم وأفئدتكم بنور الإيمان والتقوى.

سيدتي الفاضلة ..

كما تعلمين فإنه توجد لدينا الدالة GetImageFolder -(في مشاركة رقم 5 في هذا الموضوع)- فهل نستطيع الاستغناء عنها وحذفها ؟!! .. أم أنها ستظل كما هي في البرنامج, ولن يحصل تعارض معها ؟!! .. مرة أخرى أكرر شكري وامتناني لكم, وأسأل الله أن يحفظكم -وجميع أهليكم- من كل مكروه.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يفضل الإستغناء عن الدالة السابقة والبدء بالعمل بالدالة الجديده

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

بالتوفيق

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أتمنى أن توضح ذلك بتفصيل أكثر -أستاذ عصام- لو سمحت

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

أولا أسف لعدم ردي نظرا لنشغالي الشديد وعدم مشاهدتي للردكم

ثانيا خالص الشكر والتقدير للدكتورة أم عهود فهي هكذا عودتنا دائما على الردود القاطعة العميقة والتي تؤدي الغرض بكل دقة

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

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

والمسألةبسيطة جدا ولا تحتاج لأية أكواد نهائية سوى كود بسيط في الفورم بحدث الحالي وهو على سبيل المثال بفرض أن إسم مربع الصورة هو img1 وأن الفورم به مربع نص مخفي موضحا به مسار الصورة بفرض أن إسمه path1 حيث أن النموذج الذي يعرض الصور يعتمد على جدول الصور الذي به مسارتها والكود هو

 If IsNull(Me.img1) Then
Me.img1.Picture = ""
Else
Me.img1.Picture = Me.path1
End If

تم تعديل بواسطه essam_abboud
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يفضل الإستغناء عن الدالة السابقة والبدء بالعمل بالدالة الجديده

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

بالتوفيق

أشكركم أستاذتي ومعلمتي الفاضلة/ أم عهود

ووالله إني لأخجل من مدى جهلي بالكود السابق وكيفية ربطه بالحدث التالي:

Private Sub DBPix204_ImageModified()
Dim ImageFilename As String
Me!mPath = ""
If DBPix204.ImageBytes < 1 Then
DBPix204.ImageViewBlob (Null)
Else
If DBPix204.ImageFormat = 2 Then
ImageFilename = Me!pID & "_" & Me!id & ".png"
Else
ImageFilename = Me!pID & "_" & Me!id & ".jpg"
End If
If DBPix204.ImageSaveFile(GetImageFolder & ImageFilename) Then
Me!mPath = ImageFilename
End If
End If
End Sub

وهذا الحدث:

Private Sub Form_Current()
Dim Path As String
Path = GetImageFolder
If IsEmpty(Me!mPath) Or IsNull(Me!mPath) Then
DBPix204.ImageViewBlob (Null)
Else
DBPix204.ImageViewFile (Path & Me!mPath)
End If
End Sub

اللذين يربطان أداة أكتيف اكس بمسار الصورة.

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

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

شكراً مرة أخرى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .