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

جلب التاريخ من السيرفر وليس من جهاز المستخدم


إذهب إلى أفضل إجابة Solved by jjafferr,

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

الله يسعدك ويعطيك الف عافيه 
مبدع كالعاده ماشالله تبارك الله
طبعا نزلته وجربته على جهازين موصل بينهم شبكه
الجهاز الرئيسي SALMAN1
الجهاز الفرعي SALMAN2
 
لمى اختار ادخل اسم السيرفر تظهر لي الرساله الموجوده بالمرفق 
على انه طلب الاذن مرفوض


لمى اغيره الى SALMAN1
يعمل صحيح

2020-03-07_00-48-36.png

رابط هذا التعليق
شارك

السلام عليكم 🙂

 

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

نضع هذه الوحدة النمطية فيه:


Public Function Server_Date_Time() As Date

    Server_Date_Time = Now()
End Function

.

 

ثم في برنامج الواجهة FE نضع هذه الوحدة النمطية :

Public Function Call_Server_F()

    Dim apAccess As New Access.Application
     
    apAccess.OpenCurrentDatabase (DLookup("[Database]", "MSysObjects", "[Flags]=2097152"))
    Call_Server_F = apAccess.Run("Server_Date_Time")
    
End Function

 

ثم من النموذج ننادي هذه الوحدة النمطية :

me.Server_Time = Call_Server_F

 

جرب المرفق:

ضع BE على السيرفر ، والـ FE على كمبيوتر آخر ، ثم شغّل FE 🙂

 

جعفر

 

Server Time.mdb.zip

  • Like 1
رابط هذا التعليق
شارك

وعليكم السلام 🙂

 

الطريقة الجديدة اللي توصلت لها هي عمل وحدة نمطية ، في برنامج الواجهة (ليس على السيرفر) تقوم بالتالي:

- عمل ملف txt صغير على جهاز السيرفر،

- قراءة الوقت الذي تم فيه عمل الملف (من اعدادات الملف) ، وهو الوقت الذي نريده ،

-حذف الملف

Public Function Make_File()

    Dim BE_Path, PauseTime, Start
    
    'get the server path
    BE_Path = DLookup("[Database]", "MSysObjects", "[Flags]=2097152")   'Path and BE name
    BE_Path = Mid(BE_Path, 1, InStrRev(BE_Path, "\"))
    BE_Path = BE_Path & "dummy.txt"
    
    'make the dummy txt file
    Open BE_Path For Output As #1
        Print #1, "No text required"
    Close #1
    
    'pasue for a second, until file is recognized, for slow networks
    PauseTime = 1    ' Set duration.
    Start = Timer    ' Set start time.
    Do While Timer < Start + PauseTime
        DoEvents    ' Yield to other processes.
    Loop
    
    'get the date created
    Make_File = FileDateTime(BE_Path)
    
    'clean up, delete the file
    Kill BE_Path

End Function

.

وننادي هذه الوحدة النمطية هكذا:

Me.srver_Time = Make_File()

.

وبما ان ملف الجداول يكون في مجلد يسمح فيه بإنشاء/تعديل/حذف ملف ، فهذه الطريقة المفروض انها تشتغل 🙂

 

طريقة العمل هي ان تضع ملف my_BE.mdb على السيرفر ، وملف my_FE.mdb على كمبيوترك ، ثم تربط جدول الواجهة مع جدول الخلفية (سيسألك البرنامج عن فتحه) 🙂

 

جعفر

Server Time.zip

  • Like 3
  • Thanks 1
رابط هذا التعليق
شارك

  • 2 weeks later...

سهله 🙂

 

بدل ما نأخذ اسم ملف الجداول ومساره من
BE_Path = DLookup("[Database]", "MSysObjects", "[Flags]=2097152")   'Path and BE name
  
انت اكتبه يدويا، هكذا
BE_Path = "D:\myDB\my_BE.mdb"   'Path and BE name  
  
	او

BE_Path = application.currentdb.path & "\myDB\my_BE.mdb"   'Path and BE name    

 

جعفر

  • Like 3
رابط هذا التعليق
شارك

السلام عليكم اخوي سلمان 🙂

الحمدلله 🙂
بس الآن خلينا نجرب نعمل الكود تلقائي ،

لوسمحت تجرب هذا الكود في البيئة اللي عندك ، علشان يكون مرجع لبقية الاعضاء 🙂

 

ضع هذا الكود في وحدة نمطية :

Public Function Get_DB_Path_2()

    Dim rst As DAO.Recordset
    
    Set rst = CurrentDb.OpenRecordset("SELECT Database FROM MSysObjects WHERE (MSysObjects.Database) Is Not Null")
    Get_DB_Path_2 = rst(0)
    
    rst.Close: Set rst = Nothing
End Function

.

وبعدين في النافذة اللي تحت (immediate)  اكتب التالي (تأكد ان الكيبورد انجليزي ، وعلامة الاستفهام بالانجليزي) ، وارفق لنا صورة بالنتيجة :

?Get_DB_Path_2

.

هذه نتيجة العمل على كمبيوتري :

image.png.6e4bbb093f8c43df6c75f7b1a009a154.png

.

جعفر

  • Like 1
رابط هذا التعليق
شارك

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