اذهب الي المحتوي
أوفيسنا

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

قام بنشر (معدل)

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

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

 

If Dir("\\192.168.1.2\test\tbl.mdb") = "" Or Dir("\\192.168.1.2\test\tbl.mdb") = Null Then
        Me.Check_ConnectionGood.Value = False
        lbl_ResultConnect.Caption = "لم ينجح الاتصال بالشبكة المحلية ولن يتم الاتصال بقاعدة البيانات"
     Exit Sub
     Else
        Me.Check_ConnectionGood.Value = True
        lbl_ResultConnect.Caption = "تم الاتصال بقاعدة البيانات بنجاح"
End If

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

اولا : اطلب من اساتذتى الافاضل على استحياء ابداء ارائهم فى فاعلية هذه الفكرة بذلك الكود وان كان هناك طريق افضل مما سلكته

ثانيا : لو ان هناك احد الاشخاص يدخل على جهاز السيرفر من خلال الاي بي الاتى مثلا

\\192.168.1.2

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

هل يمكن عمل كود ليمرر اسم مستخدم محدد بكلمة المرور الخاصة به عند فتح قاعدة البيانات ؟!

على سبيل المثال بيانات الاتصال بالشبكة كالاتى

\\192.168.1.2

اسم الدخول للجهاز :    user

كلمــــــة المــــــرور :    user


-----------------------------------------------------------------------------------------------------------
نسيت أن أذكر ان القاعدة الامامية هى التى تحمل اسم  app.mdb  

وقاعدة الجداول هى التى تحمل اسم   tbl.mdb

 

 

test.rar

تم تعديل بواسطه ابا جودى
  • Like 2
قام بنشر

وعليكم السلام ورحمه الله وبركاته نسال الله العظيم ان يجعل هذا العمل بميزان حسناتك ويزيدك علما ويوفقك شكرا اليك على هذا العمل جزاك الله خير استاذنا ابا جودي 

تحياتي اليك اخي 

 

قام بنشر

ستكتمل باذن الله ما يقصرو ان شاء الله نتمنا لك التوفيق والنجاح اخي الكريم

قام بنشر

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

اخى الحبيب واستاذى الجليل استاذ @sandanet:fff:

تحية طيبه عطرة وبعد

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

يطلب اسم الدخول وكلمة المرور
0001.png.85b8e93495d7470d877aeff23cbbce61.png

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

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

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

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

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

اتمنى ان اكون قد استطعت توصيل الفكرة

 

كل الشكر والتقدير :fff:

  • Like 1
قام بنشر

نعم استاذي الكريم اباجودي هذا ماتكلمت عنه سابقاً لكن هنالك امر آخر وهو ماتفضلت به في التالي

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

اعتقد ان مسألة ظهور رسالة "القاعدة مفتوحة حصرياً لمستخدم آخر" متعلقة بخصائص قاعدة البيانات كما في الصورة التالية

 

بدون عنوان.png

  • Like 1
قام بنشر

طيب ممكن حد من اساتذتنا الكرام يتعطف ويتكرم ويشرح لنا الاكواد دى نشغلها ازاى ؟

Connect to server using vba
 

Dim objNetwork
Dim objDrivePath
Dim fl As Scripting.FileSystemObject
Dim fArchive As Object
Dim fWIP As Object
Dim [other variables]

strDriveLetter = "K:"
strRemotePath = [file location]
Set objNetwork = CreateObject("WScript.Network")
strUserName = [user name of "Service Account" logon credentials created by IT department]
strPassWord = [password for Service Account]

'---You cannot sign on to the same network drive under different logons at the same time, so you must disconnect any existing connections---
' Check for current connections, and disconnect if mapped to the target folder
Dim strCurrentDriveMap As String
Dim strCurrentDriveLetter As String
Set objDrivePath = CreateObject("WScript.Network")
Set oDrives = objDrivePath.EnumNetworkDrives
For i = 0 To oDrives.Count - 1
If oDrives.Item(i) Like "\\networkpath\foldername*" Then
strCurrentDriveMap = oDrives.Item(i)
strCurrentDriveLetter = oDrives.Item(i - 1)
objDrivePath.RemoveNetworkDrive strCurrentDriveLetter, True, False
'MsgBox oDrives.Item(i)
'MsgBox strCurrentDriveLetter & " = " & strCurrentDriveMap
Else
End If
Next

objNetwork.MapNetworkDrive strDriveLetter, strRemotePath, False, strUserName, strPassWord

Set fl = New Scripting.FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")

' Set the folder name
foldername1 = [variable]

'Set the current directory and destination directory
varCurrentDirectory = [folder location]
varNewDirectory = [folder location]

'If the destination folder does not exist, then create it
If Dir(varNewDirectory, vbDirectory) = "" Then
MkDir varNewDirectory
End If

'Set the file name
filename1 = [variable]
varOldFileName = varCurrentDirectory & filename1 & ".doc"
varNewFileName = varNewDirectory & filename1 & ".doc"
objDrivePath.RemoveNetworkDrive "K:", True, True
objNetwork.MapNetworkDrive strCurrentDriveLetter, strCurrentDriveMap, True

fl.MoveFile varOldFileName, varNewFileName

Set dbs = Nothing
Set qd = Nothing

objDrivePath.RemoveNetworkDrive "K:", True, True
'Check to see if there is a network drive that needs to be remapped
If strCurrentDriveLetter = "" Then
Else
objNetwork.MapNetworkDrive strCurrentDriveLetter, strCurrentDriveMap, True
End If
Set objDrivePath = Nothing
Set objNetwork = Nothing 

 

قام بنشر

هذه الشفرة طويلة جدا ولا يعنيك منها إلا ثلاثة سطور فقط..

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

بعد انتهاء العميل من الاتصال بقاعدة البيانات من الأفضل قطع الاتصال بمحرك الأقراص الشبكي..

لعمل محرك أقراص شبكي يجب إنشاء مكون التعامل مع موارد الشبكة بالصيغة التالية..

Dim NWO As Object,NwPath,UserName,PassWord,NwMap
'--  إنشاء مكون التعامل مع الشبكة المحلية
Set NWO=CreateObject("WScript.Network")

'-- تمرير اسم المستخدم وكلمة المرور للمتغيرات
UserName=[اسم المستخدم على اشبكة]
PassWord=[كلمة المرور على الشبكة]

'-- تمرير مجلد البيانات وسم الخادم لدليل الوصول للبيانات
NwPath="\\192.168.1.2\test"

'-- تكوين القرص الشبكي على جهاز العميل
'-- تعيين حرف لمحرك الأقراص الشبكي.. أفضل عدم تعيين حرف والاكتفاء بعلامة التنصيص
NwMap="Z:"
NWO.MapNetworkDrive NwMap,NwPath,False,UserName,PassWord 'بهذه الطريقة يتكون محرك الأقراص الشبكي على جهاز العميل

'--  الإتصال بقاعدة البيانات هنا
....

'-- قطع الاتصال بمحرك أقراص الشبكة.. أفضل أن يكون عند الخروج من قاعدة البيانات
NwMap="Z:" 
NWO.RemoveNetworkDrive NwMap, True, True

 من الأفصل إنشاء نموذج لهذا الغرض يحث العميل (المستخدم) بإدخال اسمه وكلمة المرور عند عدم وجود اتصال.. 

  • Like 2
قام بنشر

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

قام بنشر

أهلا بكم..

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

إذا كان الإجراء صحيح سوف يفتح نموذج إدخال البيانات.. 

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

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

app.zip

  • Like 2
قام بنشر

استاذي الفاضل ابو ابراهيم .. للأسف لم يتم تمرير اسم المستخدم وكلمة المرور وانما ظهرت لي رسالة السيرفر الطبيعية التي تطالب بادخال اسم المستخدم وكلمة مروره

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

 

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

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

 

تحياتي 

app.zip

قام بنشر

السلام عليكم ورحمة الله تعالى وبركاته
اولا جزاكم الله جمياع اساتذتى الكرام كل الخير والفضل :wub::fff::fff:

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

جزاكم الله خيرا :fff::fff::fff:

  • Like 1
قام بنشر

 هل تم إنشاء محرك أقراص شبكي أم لا؟ هذا هو المهم عندي الآن! فاذا تم ذلك فمعنى ذلك أن الإجراء صحيح.. أما ربط الجداول فيمكن معرفة السبب لاحقا..

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

  • Like 1
قام بنشر

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

نعم استاذي الكريم ابو ابراهيم تم انشاء محرك اقراص شبكي لكن ما الغرض منه؟؟ كما انه يبقى ولايتم ازالته عند اغلاق البرنامج الى ان قمت بعمل قطع اتصال له

 

  • Like 1
قام بنشر

الف الف مبروك استاذنا ابو احمد من مواليد السعاده يتربا بعزك ان شاء الله 

  • Like 1
قام بنشر

 

 

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

اعتذر لكم اساتذتى الكرام واخوانى الكرام على تأخرى فى الرد عليكم :fff::fff:

صرت الان اب لثلاث بنتان وولد وزاد الحمل اسال الله العون

  • Like 1
قام بنشر

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

اولا وقبل كل شئ انا جربت على ويندوز 10

لا يتم عمل قطاع Z

ولكن يتم الاتصال فقد يكون القطاع  Z مخفى

قبل الاتصال تظهر لى رساله وهذه صورتها  فهل من سبيل لالغاء هذه الرساله ؟!

ERR.png.0152c6b6d720cd54f1fc915d5471550f.png

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

 

app.rar

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