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

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

بدأه غرّام العقول في 30 أكتوبر 2012 · 10 رد · 864 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

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

za-RegLib.rar

#2
غرّام العقول كتب:

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

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

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

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

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

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

1
#3

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

مع تحياتي

اخـوكـم bakoraus

#4
essam_abboud كتب:

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

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

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

#5

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

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

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
#6

للرفع

#7

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

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

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

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

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
#8

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

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

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

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

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

#9

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

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

بالتوفيق

1
#10
غرّام العقول كتب:

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

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

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

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

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

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

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

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

تم تعديل هذه المشاركة بواسطة essam_abboud في 1 نوفمبر 2012 في 22:21

#11
zahrah كتب:

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

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

بالتوفيق

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

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

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

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

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

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

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

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

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

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

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

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