بروزرسانی نرم افزار اکسس ، ورژن جدیدی انتشار داده اید و می خواهید کاربران خود را از این برزورسانی باخبر سازید ، روشهای ذیل برای ان منظور پیشنهاد می شود .
رعایت این نکات ، برای ارائه آپدیت برنامه های اکسسی ضروریست.
- حتما در دیتابیس خود جدولی داشته باشید که اطلاعات ورژنهای مختلف به همراه تغییرات را در آن ذخیره کنید .
- جداول برنامه را از فرمها و گزارشات جدا کنید .
- سعی کنید اگر قراره اکتیو ایکس جدیدی اضافه کنید از همون نسخه اول اضافه کنید .
- سعی کنید که آپدیت کردن برای کاربران نیاز به نصب برنامه های جانبی نداشته باشد و آپدیت بی دردسر انجام شود .
- کاربران خود را از بروزرسانی نرم افزار اکسس مطلع کنید که در ادامه روشهای آن شرح داده شده .
آپدیت برنامه ای که کاربران محدود دارد
در این مورد نیازی به اطلاع رسانی نیست و می توانید به چند نفری که نصب کرده اند نرم افزار جدید را ارائه دهید .
نرم افزار اکسس که در شبکه ای با تعداد کاربران زیاد در حال اجراست
جدولی در برنامه ایجاد کنید با نام tblVersion .
فیلدهای versionNo (نسخه نرم افزار ) و versionDescription ( توضیحات آپدیت ) از نوع LongText یا Memo ایجاد کنید.
یک فرم ایجاد با نام frmVersion مانند تصویر زیر .
در یکی از فرمهای برنامه مانند فرم اصلی یا اسپلش فرم یا فرم لاگین نسخه فعلی را بنویسید.
فرض بر این است که در فرم لاگین مانند تصویر زیر یک کنترل دارید با نام lblVersion و ورژن کنونی را در آن نوشته اید.
در رویداد Onload فرم لاگین کد زیر را بنویسید.
Private Sub Form_Load() If Me.lblVersion.Caption <> DLast("versionNo", "tblVersion") Then DoCmd.OpenForm "frmVersion" End If End Sub
در بک اند نرم افزار در جدول tblVersion اطلاعات جدیدی وارد کنید .
وقتی کاربران نرم افزار را اجرا می کنند با پیغامی مواجه می شوند و فرم frmVersion باز می شود .
نکته مهم : در ورژن جدید خود کپشن lblVersion در فرم لاگین رو به شماره آخرین ورژن جدول tblVersion تغییر بدین.
بروزرسانی نرم افزار اکسس که کابران زیادی دارد .
- نرم افزار دفتر تلفن و مدیریت رویدادهای آفیس باز رو در نظر بگیرید.
- نزدیک 1700 بار دانلود شده و اگر 500 نفر هم در حال استفاده باشند ، مطلع کردن همه برای دریافت بروزرسانی کمی مشکل خواهد بود .
- اطلاع رسانی در کانال تلگرامی آفیس باز و ارسال ایمیل به کسای که دانلود کرده اند یکی از راه کارهاست .
- اما اگر کاربر به کانال سر نزند و یا ایمیل خود را چک نکند چگونه از انتشار نسخه جدید با خبر خواهد شد.
- کاربران محترم آفیس باز لطفا ویدیو زیر را ببنید و اگر راهکاری به نظرتون می رسه تو قسمت نظرات عنوان کنید .
به کسی که اولین نفر سناریوی کامل و کاربردی ارائه بده و یا توضیح بده که آفیس باز از چه روشی در ویدیو استفاده کرده 25000 تومان امکان خرید تقدیم خواهد شد.
چک کردن وجود فایل در آدرس اینترنتی و اطلاع رسانی آپدیت اکسس
کدهای زیر را به عنوان ماژول به برنامه خود اضافه کنید
Function URLExists(url As String) As Boolean Dim Request As Object Dim ff As Integer Dim rc As Variant Set Request = CreateObject("WinHttp.WinHttpRequest.5.1") With Request .Open "GET", url, False .Send rc = .StatusText End With Set Request = Nothing If rc = "OK" Then URLExists = True End Function
در رویداد OnLoad یکی از فرمهای خود کد زیر را بنویسید
If URLExists("https://officebaz.ir/Contacts-3.5.1.txt") = 0 Then DoCmd.OpenForm "frmUpdate" End if
با اجرای کد بالا اگر فایل Contacts-3.5.1 در مسیر اینترنتی وجود نداشته باشد فرم آپدیت باز خواهد شد.
راهنمایی: نویسنده نرم افزار می تواند در زمان انتشار نسخه جدید فایل تکست موجود در اینترنت را تغییر نام دهد.
نکته : فایل text می تواند حاوی لیست آپدیتهای ارائه شده باشد و می توان دکمه ای اضافه کرد تا کاربر لیست تغییرات را ببینید.
بررسی وجود فایل با استفاده از Web Browser Control
- در یکی از فرمهای خود یک کنترل Web قرار دهید
- دیتای آن را برابر با فایل عکسی در مسیر مشخص اینترنتی قرار دهید .
- با ارائه نسخه جدید می توانید عکس را عوض کرده و از این طریق به کاربر اطلاع رسانی کنید .
- مانند تصویر زیر که مربوط به بروزرسانی نرم افزار دفترچه تلفن می باشد.
با تشکر از کسانی که در این چالش شرکت کردن 🙂
سلام
چند نکته:
1. اینکار نیاز به دسترسی به اینترنت داره! یعنی سیستمی که میخواد اطلاعات مربوط به بروز رسانی رو دریافت کنه باید دسترسی به اینترنت داشته باشه.
2. طبق بند بالا، باید اطلاعات از اینترنت گرفته بشه!
3. گرفتن اطلاعات به چند نحو ممکن هست که خلاصه وار میگم:
3.1. دریافت اطلاعات شماره نسخه جدید فقط از روی نام یک فایل (که راحتترین روش هست) بدین معنی که شما یک آدرس فایل رو چک میکنید، اگر نام فایل موجود در آدرس اینترنتی مطابق با نسخه موجود شما بود که هیچ و الا پیام نسخه جدید رو نمایش میدین.
3.2. دریافت اطلاعات از محتویات یک فایل تکست. که شما باید محتویات فایل متنی رو در برنامه خودتون بخونید و نسخه ثبت شده در اون رو با نسخه برنامه خودتون مقایسه کنید و در صورت نیاز پیام آپدیت رو بدین
3.3. دریافت اطلاعات از فایل xml که کمی پیچیده هست و نیاز به آشنایی با این گونه فایل ها و دریافت اطلاعات داره که اگر اهلش بوده باشید قطعا در ایجاد ریبون اختصاصی با این فایل سر و کله زدین 🙂
به صورت کلی باید یک وبسرویس راه بندازین و اطلاعات رو به صورت آنلاین از یک هاست، سرور و یا مخزن هایی همچون درآپ باکس، گوگل درایو و یا وان درایو دریافت کنید.
امیدوارم که مورد توجه قرار بگیره
سلام
سناریو درسته ولی نحوه اجرا ؟
چجوری ما با اکسس بررسی کنیم ببینیم یک فایل با نامی خاص توی یه آدرس اینترنتی وجود داره یا نه ؟
با سلام و احترام:
میتونیم از Funktion در قالب یک مژول هم استفاده کنیم:
Function GetUserAddress() As Boolean
Dim strInput As String
On Error GoTo Error_GetUserAddress
( strInput = InputBox(“Enter a valid address”
Application.FollowHyperlink strInput, , True
GetUserAddress = True
Exit_GetUserAddress:
Exit Function
Error_GetUserAddress:
MsgBox Err & “: ” & Err.Description
GetUserAddress = False
Resume Exit_GetUserAddress
End Function
اگر از حالت inputbox استفاده کنیم بعد باید از دستور زیر آدرس یا فایل مورد نظر را چک کنیم:
() Sub CallGetUserAddress
If GetUserAddress = True Then
“. MsgBox “Successfully followed hyperlink
Else
MsgBox “Could not follow hyperlink
End If
End Sub
ولی اگر نخواهیم از inputbox استفاده کنیم باید بجای funktion و ماژول کد را با کمی تغییر در onload فرم اصلی یا splash بنویسیم . من همین روش inputbox را ازش جواب گرفتم.
با تشکر
میتونیم یه فایل تکست روی سرور درست کرده و مقدار آن را فراخوانی کنیم و با مقدار نرم افزار مقایسه کنیم
سلام
ممنون از نظر شما
نحوه فراخوانی فایل تکست از سرور آنلاین رو توضیح میدین
این کمکی می کنه؟
https://stackoverflow.com/questions/49866511/download-a-text-file-from-a-url-in-vba
سلام
یه چیزی تو همین مایه هاست
فردا پست رو تکمیل میکنم
به شخصه ترجیح میدم تا محتویات فایلی که برای کنترل نسخه در نظر گرفتم رو بخونم که یک فانکشن چند خطی نیاز داره. ولی برای دریافت نام فایل میشه از توابعی همچون InStr یا InStrRev و توابع دیگه نام فایل رو که مساوی با نسخه جاری هست مقایسه کرد که اگر مغایرت داشت پیام آپدیت رو نشون بده.
راههای رسیدن به خدا زیاده 😉
امیدوارم قانع کننده باشه
با سلام و احترام به تمامی اساتید و دانشجویان محترم :
آسانترین راهی که به نظر میرسه استفاده از ۱ فایل gif هستش. طراحی یک text box در فرم اصلی یا splash که آنرا به سایت اصلی لینک کرده باشیم . برنامه نویس فقط کافیه فایل gif رو در سایتش update کنه. هر وقت کاربر برنامه رو باز میکنه فایل gif از طریقه اتصال به اینترنت update میشه و کاربره پیغام مورده نظر برنامه نویس رو میبینه. فایل gif از این نظر بهتر بنظر میرسه که میتونیم با حالتی زیبا و جذاب طراحی کنیم که البته retraktiv هم باشه. البته با کمی کد نویسی در برنامه میتونیم این سناریو رو جذابتر ارایه کنیم. ولی اصول کار همین بود که به ذهن حقیر الان بلافاصه رسید.
روز خوبی داشته باشین.
دقیقا همون چیزی که توی نرم افزار دفتر تلفن ازش استفاده کردم 🙂
پیشنهاد خیلی خوبی بود امنیت این نوع استفاده هم خیلی بالا هست؟
سلام جناب آقای بحری ، ضمن سپاس فراوان از وقتی که جهت آموزش میگذارید
لطف کنید ؟ کدی که در ” دریافت به روز رسانی ” باید بنویسم تا نرم افزار آپدیت بشه؟
سلام جناب بحری:
جسارتا کد شما رو تکمیل کردم. فایل اکسس رو در تلگرام فرستادم لطفا چک بفرمایید. اگر مفید بود انشار بدین.
با تشکر از زحمات شما
سلام ممنون از شما حتما مطلب رو تکمیل می کنم
سلام کد مربوط به دکمه دریافت بروزرسانی در frmVersion چطور نوشته میشه؟
استاد کدی که بالا گفتید تو قسمت onload کپی میکنم ارور میده
لطفا جناب بحری گرامی یک فایل ویدئویی به همراه پروژه از این کار ارائه بدید تا ما علاقمندان بهتر متوجه بشیم
جناب بحری گرامی منم با نظر دوستمون موافقم ممنون میشم یک فایل ویدئویی به همراه پروژه از این کار ارائه بدید تا ما علاقمندان بهتر متوجه بشیم
با سلام
آیا میشه با استفاده از ایمیل هم این کار را کرد؟
یعنی به همه کاربران ایمیل گروهی آپدیت بدیم و اکسس به جای فراخوانی از سایت از ایمیل خود کاربر استفاده کنه؟
امکان پذیره؟
چون ممکنه برنامه نویسی یک وب سایت نداشته باشه!!!!
تو مثال اول که کپشن رو چک میکنه end if آخر نباید باشه چون else نداره برنامه خطا میده