با سلام
چگونه ميتوان براي كاربراني كه در حال حاضر در حال كار با نرم افزار هستند (تحت شبكه) پيغام فرستاد كه به صورت يك هشدار بر روي صفحه ظاهر شده و كاربر آن را ببيند.
تشكر
با سلام
چگونه ميتوان براي كاربراني كه در حال حاضر در حال كار با نرم افزار هستند (تحت شبكه) پيغام فرستاد كه به صورت يك هشدار بر روي صفحه ظاهر شده و كاربر آن را ببيند.
تشكر
خيلي راحته شما برنامه كه تحت شبكه كار مكنه بزار تا درست كنيم برات با دوستان
اگه بشه خیلی جالب هست...
آقا راهشو بگو... مرسی
دوستان لطفاً اين سوال را پاسخ دهيد تا ديگران نيز از دانسته هاي شما استفاده لازم را ببرند.
فكر كنم اگر مي خواين كه بلافاصله پيغام مشاهده بشه. بهتره يك جدول داشته باشي كه هر كس Login كرد IP دستگاهش رو توش بذاري و هر كس Logout كرد هم ركورد IP ش رو حذف كني.
بعدش با دستورات Command (احتمالا تابع API براش هست) به IP ها موجود در جدول پيام بفرستين.
اگر هم كه الزامي به پيغام OnTime ندارين ميتونيد يك جدول بسازسن و پيام مورد نظر رو توش ذخيره كنيد و يك ساب جدول داشته باشين كه بگين چه اشخاصي بايد اين پيام رو ببينن. بعد توي فرم اصلي برنامتون چك كنيد كه اگر شخصي هست كه پيغام رو نديده ، واسش پيغام رو نشون بدين و د رجدول ساب هم ذخيره كنيد كه پيغام رو ديد.
اين عمل رو در On Timmer فرم اصلي تكرار كنيد و به طور مثال هر 5 دقيقه يكبار چك كنيد
سلام
راهنمايي خوبي بود. من ip را دارم ولي اگه بخوام بلافاصله پيام را مشاهده كنه ميشه بيشتر راهنمايي كني.
ممنون
سلام
در ارتباط با پيشنهاد محمد آقا و مورد IP شما مي تونيد با استفاده از نمونه اي كه در اين تاپيكتقديم شد اين مورد رو به اجرا بذاريد و همونطور محمد عزيز اشاره كردن با استفاده از روال On Timer فرم اصلي برنامه يا يك فرمي كه بطور Hiden در تمام طول باز بودن برنامه باز هست با زمان 1000 ميلي ثانيه اقدام به ارسال پيام كنيد براي اين منظور در نمونه تقديمي روال كار بر اين منوال بود كه شخص وقتي وارد برنامه مي شد اطلاعات IP , UserNmae و نام كامپيوترش در جدولي بصورت موقت ثبت مي شد و بعد از ترك برنامه توسط اون شخص اين ركورد ثبت شده حذف مي شد حالا براي موضوع پيام شما بايد يك جدول ديگه داشته باشيد كه اطلاعات فوق در اون ثبت دائم باشه و يك فيلدي مثلاً تحت عنوان Text_Msg داشته باشه و ادمين بواسطه فرمي متصل به اين جدول فرد رو انتخاب و متني روكه بايد در قالب پيام براي كاربر مورد نظر ارسال بشه رو بفرسته در اين مرحله در فرم Hiden كه صحبتش شد در همون رويه On Timer ميتونيم بگيم كه بررسي بشه چنانچه كاربري پيامي داره اين پيام در قالب MsgBox براش نمايش داده بشه و البته بعد از اينكه كاربر پيام رو OK كرد فيلد Text_Msg هم خالي بشه يك نكته ديگه اينكه شما مجبور نيستيد فقط از IP استفاده كنيد بلكه مي تونيد از UserName يا ComputerName هم بهره بگيريد . اگر خيلي متوجه مراحل نشديد بفرمائيد نمونه رو تكميل كنم .
سلام
يك نكته هست و ان اينكه ايا بعد از ok كردن يك msgbox چيزي بر ميگرده كه بشه روي اون عملي انجام داد؟
جواب مثبته ،به عنوان نمونه اين تابع MsgBox رو ببنيد :
If MsgBox("پيام مورد نظر" vbCritical + vbMsgBoxRight + vbOkOnly, _
"پيغام سيستم") = vbOk Then
DoCmd.OpenForm "form1"
Form_Form1.Combo2.SetFocus
Form_Form1.Combo2.Dropdown
End If
آخرین ویرایش به وسیله مهدی قربانی : سه شنبه 30 مهر 1387 در 16:03 عصر
سلام
به نظر من اگه یک نمونه آزمایشی رو تست کنیم راحت تر به جواب میرسیم .
مشکل اصلی در اینجاست که وقتی نرم افزاری روی یک واحد باز است وفرم های دیگری روی فرم start up بصورت باز وجود دارد فرمان ها روی on timer - پیام خطا میدهد.
سلام
دوستان عزيز مدتي روي اين نمونه كه قبلاً در اين تاپيك ارائه شد كاركردم و مطابق با موضوع بحث اين تاپيك تغييرات و اضافاتي رو روش اعمال كردم .
توضيحات :
1 . در زمان اجراي فايل ، اطلاعات كاربر وارد شده شامل : آدرس IP ، نام كاربري User Name يا Account Name و Computer Name در 2 جدول مشابه يعني tb_log_users ( كه در اصل اين اطلاعات رو بطور موقت ذخيره مي كنه و بعد از خروج كاربر اين ركورد ثبت شده حذف ميشه ) و tb_arc ذخيره ميشه ، جدول دوم همون جدوليه كه قراره براي ارسال پيام به كاربران استفاده بشه يعني علاوه بر فيلدهاي فوق الذكر داراي 2 فيلد Msg_Title عنوان پيام و Msg_Txt متن پيام هست .
2 . بعد از ورود كاربر اطلاعات ا طريق رخداد On Load فرم startup در هر دو جدول ذخيره ميشه ( با ماهيت ذكر شده در بند 1 ) البته در صورتي كه اطلاعات جاري قبلاً در جدول arc ثبت شده باشه از ثبت مجددش جلوگيري ميشه
3 . براي ارسال پيام كامند باتوني روي فرم تعبيه شده كه فرم Frm_msg رو باز ميكنه
4 . در فرم Frm_mg كه Unbound هست يك كامبو كه نقشش انتخاب كاربره و 2 تسكست باكس كه يكي براي ثبت عنوان و دومي براي ثبت متن پيام در نظر گرفته شده و همينطور يك Fream مخصوص دو Option Box كه نقش اين دو تعيين ارسال پيام براي يك كاربر خاص و يا براي همه كاربران هست و نهايتاً يك كامند باتون كه عمليات ارسال پيام رو انجام ميده .
5 . در رخداد On Timer فرم startup هم با Interval 1000 ميلي ثانيه با استفاده از ركوردست متصل به كد SQL بررسي ميشه در صورتيكه كاربري پيامي داشته باشه اين پيام رو براي اون كاربر نمايش مي ده و بعد از پاسخ كاربر به پيام ، فيلدهاي عنوان و متن پيام اون كاربر در جدول arc حذف ميشن .
6 . در تمام عملياتها عمدتاً از ابزارهايي مثل ركوردست DAO ، كدهاي SQL استفاده شده .
لازم به ذكر هست كه نمونه حاضر داراي اشكالي بود كه در پست شماره 30 همين تاپيك نسخه اصلاح شده تقديم شده .
آخرین ویرایش به وسیله مهدی قربانی : سه شنبه 17 فروردین 1389 در 16:34 عصر
دوستان نظرشون رو در مورد اين نمونه بدن ، من شخصاً هنوز اين برنامه رو تحت شبكه تست نكردم ، آيا به مشكل و يا نقصي در عملكرد اين نمونه برخورد كرديد ؟
من هم در شبكه تست نكردم اما با توجه به كدهاي نوشته شده هيچ Error ي ديده نميشه و بالاي 90% درست جواب خواهد داد. اما كار خوب و جالبي كردي و نيازهاي بسياري رو ميتونيم با اين پروسيجر و احيانا تغييرات جزئي در اون با توجه به ماهيت پروژه ها برطرف كنيم. يك راه ديگه هم اين بود كه جهت نمايش پيام به جاي استفاده از MSGBOX از يك فرم استفاده بشه و احيانا كاربر هم بتونه سوالاتشو توش بنويسه و با تاييد اون يك پيغام ايندفعه براي DBA نشون داده بشه و DBA هم جواب بده. (فقط خواستم بگم دوستان چه كارها و اكشن هايي ميتونن با اين برنامه بسيار خوب آقاي مدير انجام بدن)
سلام
من اينكار را كردم و جواب داد ولي يك مشكلي كه وجود داره اينكه من ميخام يك ليستي از كاربران را انتخاب كنم و پيام گروهي بفرستم. براي انتخاب كاربران بايد يه ليست Temp از كاربران اصلي تهيه كنم كه براي انها به صورت گروهي ارسال بشه. اين ليست اگه دو نفر در يك زمان بخواهند پيام ارسال كنند مشكل ساز ميشه. راه حلي اگه به فكرتون ميرسه بيان كنيد.
ممنون
سلام
البته اگر بخوايم براي چند كاربر بصورت انتخابي پيام بفرستيم يه راهش استفاده از ليست باكسه ، ميشه درستش كرد برام مهم اين بود كه برنامه تحت شبكه بتونه كار كنه بقيه كارا قابل اجراست .
منم فكر ميكنم كه جناي آقاي مدير بهتره كه ادامه ندن كار روي اين قسمت رو. يك Sample گذاشتن و دوستاني كه ميخوان تغييرات ايجاد كنن و دوباره آپلود كنن كه همه ببينن. اينجوري بهتره چون تا زماني كه خود شخص دست به كاري نزنه روي مطلب Expert نمي شه.
سلام
محمد جان ممنون از پيشنهادت ، موافقم اين موضوع و كلاً موضوعات شبكه اي يكي از موارد مبتلا به اكثر برنامه نويساي اكسس هست مي طلبه كه در يك همچين مباحثي دوستان شركت و هر يك ايده ها ونظراتشون رو در قالب شرح مطلب و يا مثالهاي عملي طرح كنن تا هم باعث ارتقا سطح كيفي مبحث و هم ارتقاء ارتقاء تجربه همگي ما بشه . پس با اجازه دوستان بنده با اين كه به جواب رسيدم تامل مي كنم تا ببينيم ساير عزيزان چه راهكاري ارائه ميدن .
سلام
دوستان ايده اي ندارن ؟؟
سلام . حالا اگه بخواهیم یک کاربر آنلاین رو که برنامه رو باز کرده برنامش رو ببندیم میشه . بعضی از مواقع مدیر سیستم برای اعمال تغیرات احتیاج داره کاربران برنامشون رو ببندند.
دوستان کسی می تونه کمک کنه؟
سلام خدمت دوستان عزيز
ميخواستم از اساتيد خواهش كنم برنامه رو جوري اصلاح كنند كه برااساس نام كامپيوتر پيغام رو بفرسته
خواهش ميكنم كه دوستان بعداز اصلاح فايل يه توضيحي راجع به تغييراتي كه در فايل ايجاد كردند ارائه كنند.
آيا دوستان ميتونند لطف كنند و يمقدار امكانات اين برنامه رو ارتقاء بدند.
مثلاً اينكه ليست كل كاربرها باز بشه و من با انتخاب هر چندتا كاربر دلخواه با تيك زدن كنار آنها به آنها پيام ارسال كنم.
ممنون
آخرین ویرایش به وسیله مهدی قربانی : دوشنبه 18 آبان 1388 در 07:12 صبح
مهدي جان منظورتان رو از مراحل تست متوجه نميشم. اما ما با 8 تا كاربر كار كرديم و هيچ مشكلي نبود/ يعني به محض ورود / خروج كاربرا تو جدول مربوطه اطلاعات لازم ثبت ميشد و در فرم هم اطلاعات IP و نام كاربري و باقي چيزا نمايش ميشد.
قسمت ارسال پيام هم به هر دو حالت به تمام اعضا / يك كاربر خاص تست شد و مشكلي نبود.
بسيار متشكرم
مدير عزيز، ي راهنمايي كوچيك مي كني كه چه جوري نام كاربري رو بتونم در حالت New Record فرم در فيلدي داشته باشم؟ (بيشتر مورد نظرم در Default Value است)
سلام جناب آقای قربانی
اولا دستتون واقعا درد نکنه بسیار جالب و مبتکرانه بود.من نمونه رو تست کردم.یکی از مواردی که فکر میکنم باید اصلاح بشه اینه که در حالتی که شما بصورت گروهی پیام میفرستید ، پیام ها بصورت سریال یکی بعد از دیگری روی صفحه نمایش ظاهر میشه و تا کاربر اول ok نکنه پیام برای کاربر بعدی نشان داده نمیشه.امکان حل این مشکل وجود داره که همه کاربرا باهم پیام رو ببینن؟
با تشکر
سلام
ببخشید که مجبور شدم بازم این تاپیک رو بیارم اول.
یک بار دیگه از دوستان خواهش میکمن اگه روش حل این مشکل رو پیدا کردند بیان کنند
سلام
دوست گرامي soroush_k12 ضمن تشكر از كشف اين ايراد ظريف بايد عرض كنم كه شخصاً اين مورد رو تست كردم و اشكال مورد نظر محقق شد بنابراين كدهاي رخداد On Timer فرم frm_startup رو تغييراتي دادم كه اين نقيصه برطرف شد و نمونه اصلاحي رو براي استفاده دوستان تقديم مي كنم .
سلام
مي تونيد بگويد چطور مي شه به جاي استفاده از نام userName از IP كامپيوترها استفاده شود
با تشكر
سلام
دوست گرامي نمونه حاضر IP رو هم ذخيره مي كنه بنابراين شما با انجام تغييراتي در كدها و كنترلها فيلد IP رو جايگزين فيلد username كنيد ولي به نظر مياد استفاده از User Nameبه نوعي بهتر باشه چرا كه كاربر ممكنه از دستگاههاي مختلفي به شبكه متصل بشه در اينصورت به مشكل برخورد خواهد كرد .
سلام آقاي قرباني
لطفاً بگويد كه كدم كدها را بايد تغير بدام يا يك نمونه بزاريد. آخه من هر چه تلاش كرم سيستم بهم پيغام خطا مي دهد و بر نامه قفل مي شه
با تشكر
ضمناً ما يك گروه وچند نفره هستيم كه در شبكه و فقط يك user name داريم
با سلام به همه دوستان
با خوبی و خوشی داشتیم از این کد استفاده میکردیم و درست هم کار میکرد
متاسفانه ویندوز64 بیت ، به این کدها ایراد میگیره
و نمیتونه اجراشون کنه
کسی هست که برای ویندوز 64هم راه حلی داشته باشه؟
باتشکر فراوان
با سلام در این برنامه امکان این هست که اگه روی سایر سیستم ها این نرم افزار نصب نباشه و کاربرها با این نرم افزار کار نکنن باز بشه براشون پیغام فرستاد؟ اگه جواب منفی است چطور میشه چنین امکانی به این نرم افزار اضافه کرد؟
سلام
متاسفانه روی ویندوز های ۶۴ بیتی کار نمیکنه
و با این نرم افزار هم https://barnamenevis.org/showthread....57#post2261957
هم تست کردم بازم جواب نمیده و درست نمیشه و بعد از کلمه Declare
PtrSafe هم تایپ میکنم جواب نمیده.
امکانش هست برای ویندوز ۶۴ بیتی هم درست کنید؟
سپاس