برگزیده های پرشین تولز

تاريخ شمسي و Sharing در نرم‌افزار Access

sara_h1382

کاربر تازه وارد
تاریخ عضویت
1 جولای 2008
نوشته‌ها
17
لایک‌ها
0
سلام :)
من يك پايگاه داده در Access‌ ايجاد كردم كه در يكي از Text box ها كاربر بايد تاريخ فارسي وارد كند. تا قبل از اين كه عضو اين forum‌ بشوم براي حل اين مشكل يك Mask تعريف كرده بودم به صورت 1387/00/00. اما چون بيس اين روش تاريخ ميلادي است تاريخي مثل 1387/02/29 را قبول نمي‌كند چون در ماه 2 ميلادي اين تاريخ وجود ندارد.
در يكي از پست‌ها يك فايل zip‌ شده بود به نام ُShamsi.dll كه اين فايل را ُُSystem32 كپي كردم. بعد هم يك ماژول ايجاد كردم و در rerrences آدرس آن فايل DLL را دادم. اما حالا نمي‌دانم براي اين كه كاربر بتواند در Text‌ box‌ تاريخ فارسي وارد كند چه كار بايذ بكنم. من چندان هم با VB آشنا نيستم. كسي مي‌تواند من را راهنمايي كند؟:rolleyes:
سوال دوم من درباره Share كردن يك Database‌ براي كاربرهاي يك شبكه ٌWorkgroup‌اي است.براي اين كار من database‌ را به دو بخش Front End و Back End تقسيم (SPLIT‌) كردم اما همچنان بيشتر از 2 تا كاربر نمي‌توانند همزمان از database استفاده كنند. در ضمن من به كاربرها براي دسترسي به فايل و فولدري كه فايل در آن قرار دارد ّّFull Access Permission‌ دادم اما مشكل حل نشده و وفتي كاربرهاي بيشتري به پايگاه داده وصل مي شوند، دسترسي شان به صورت Read Only است. كسي پيشنهادي دارد؟:cool:
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
در مورد تاریخ:
تا زمانی که تاریخ شمسی در سطح سیستم عامل پیاده نشده باشه این مشکلات هست. راههای مختلفی استفاده میشه و هر برنامه نویسی راه خودش رو میره. من شخصا با دستکاری سیستم (مثل نصب shamsi.dll) موافق نیستم و از همون masked textbox استفاده میکنم ولی مشکلی هم باهاش ندارم. اگر همین روش مورد نظرتون هست مشخص کنین تا راهنمایی کنم . البته کدنویسی vba هم لازم هست!

در مورد دسترسی تحت شبکه:
بار اول هست چنین چیزی رو میشنوم. اما اگر برای هر کامپیوتر یک front-end داشته باشین که با اطلاعاتback-end بصورت linked-table ارتباط داشته باشه هیچ مشکلی پیش نمیاد. فکر نمیکنم مشکل از sharing باشه.
 

sara_h1382

کاربر تازه وارد
تاریخ عضویت
1 جولای 2008
نوشته‌ها
17
لایک‌ها
0
بالاخره مشكل تاريخ حل شد.
اما درباره sharing هنوز مشكل وجود داره. من در گروههاي google‌ هم خيلي searchكردم. اتفاقا اين مشكل , مشكلات مشابه آن خيلي متداول است. اما برايش هيچ راه حلي نتوانستم پيدا كنم. شما خودتون تحت شبكه از data base برنامه Access‌ استفاده كردين؟;)
 

sara_h1382

کاربر تازه وارد
تاریخ عضویت
1 جولای 2008
نوشته‌ها
17
لایک‌ها
0
خب در طراحي آن data base كار خاصي انجام ندادين؟ مثلا من در فرمي كه طراحي كردم text box هاي Bounded‌دارم. ممكنه اين موضوع باعث مشكل شده باشه؟ مي‌شه يك data base اي كه شما دارين تحت شبكه ازش استفاده مي‌كنيد را برايم upload كنيد كه من هم تستش كنم؟ اگه نه يك data base آزمايشي كه مي‌شه در شبكه ازش استفاده كرد لطف مي‌كنين برام بذارين؟:)
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
اتفاقا یکی از مزیتهای اکسس نسبت به برنامه هایی که فرضا با وی بی نوشته میشه همین سهولت کار با فرمها و کنترلهای bound هست.

مشکل از خود sharing نیست - حدس میزنم در Record locking هست یا اینکه کاربری دیتابیس رو exclusive باز میکنه. شما از user level security استفاده میکنین؟ مشکل در سطح فرم پیش میاد یا رکورد یا اصلا کل دیتابیس؟

در مورد دیتابیس نمونه که مشکلی نداشته باشه بهترینش روی کامپیوتر خودتون هست : northwind

یک سئوال دیگه : هر کامپیوتر Front-end خودش رو داره یا اینکه front-end رو هم اشتراکی استفاده میکنین؟
 

sara_h1382

کاربر تازه وارد
تاریخ عضویت
1 جولای 2008
نوشته‌ها
17
لایک‌ها
0
هيچ كاربري به صورت exclusive ديتابيس را باز نمي‌كند. من از User Level Security هم استفاده نكردم.

ديتا بيس باز مي‌شه اما وقتي تعداد كاربرها بيش‌تر از 2 تا ميشه براي بقيه فرم طوري باز مي‌شه كه دكمه اضافه كردن ركورد جديد در آن غيرفعال است.يعني read only‌ است. البته جالب اينجاست كه 2 تا از كاربرها و كاربري كه فايل اصلي روي سيستم اون هست مي تونن 3 تايي هم استفاده كنن. در ضمن هر كدام از كاربرها هم يك كپي از Front End رو روي سيستم‌هاشون دارن. در ضمن من براي همه كاربرها هم تيك open databases using record-level locking رو هم برداشتم.
جالب اينجاست كه وقتي دوباره خواستم ديتا بيس را split كنم با اين كه هم براي فولدر مورد نظر و هم براي فايل access دسترسي full دادم پيغام File already in use‌ مي‌دهد. من كه كاملا گيج شدم.:wacko:​
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
ظاهر کار مشکلی نداره - بهتر هست که متن کامل خطا و موقعیت بروز اون رو اینجا بگذارین.

چند سئوال :
از چه ورژن access استفاده میکنین؟
mde هست یا mdb ؟
احتمالا بجای sharing از web sharing استفاده نکردین؟

اگر در همون فولدری که backend قرار یک دیتابیس جدید بسازین و تمام tableهای backend رو به اون import و از این دیتابیس جدید بجای دیتابیس اصلی استفاده کنین آیا باز هم این خطا ظاهر میشه؟

اگر بتونین یک کپی از backend که فقط یک جدول تستی با 10 رکورد توش باشه اینجا ضمیمه کنین بهتر هست. کافی هست یک کپی ازش بگیرین و بعد تمام جدولها بغیر از یکی رو پاک کنین. تمام رکوردهای این جدول رو هم پاک و فقط حدود 10 رکورد با دیتا تستی وارد کنین.
 

sara_h1382

کاربر تازه وارد
تاریخ عضویت
1 جولای 2008
نوشته‌ها
17
لایک‌ها
0
من كاملا گيج شدم. :wacko: در جايي كه اين ديتا بيس استفاده مي شه كلا 7 تا سيستم وجود داره كه 4 تا از اونها با يك هاب به شبكه وصل بودن و بقيه به صورت معمولي. امروز كه front end ها رو كپي كردم ديدم 5 تا سيستمي كه به هاب وصل هستند و يك سيستم ديگه كه به هاب وصل نيست مي‌تونن همزمان باز شن ولي يك سيستم ديگه كه به هاب وصل نيست نمي تونه و كلا read only‌ باز مي شه. جالب اينجاست كه همين ديتا بيس روز قبل كلا روي همه سيستم ها به صورت read only باز مي شد:eek:. در هر صورت من به جز جدول اصلي بقيه جدول‌هاي data base رو حذف كردم و upload كردمش. به نظرم اصلا حساب و كتاب خاصي نداره!
در ضمن در شبكه هم access 2003 و هم 2007 نصب هست. من چه طوري مي شه web sharing كرد.​
 

فایل های ضمیمه

  • Test.rar
    207.1 KB · نمایش ها: 52

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
فردا (امیدوارم فرصت بشه) برنامه شما رو روی یک شبکه تست میکنم. حداقل خاصیتش این هست که مشخص میکنه ایراد از دیتابیس هست یا شبکه.

منظور شما از "معمولی" برای اون 3 تا سیستم دیگه که به هاب وصل نیستن چی هست؟ متوجه نشدم چجوری به شبکه وصل شدن!

اگر web sharing فعال نیست بهتره فعلا بحثش رو کنار بگذاریم. بطور خلاصه مربوط به زمانی هست که iis روی سیستم شما نصب باشه و بخواین دسترسی به فایلها و فولدرها رو برای web app هاتون تنظیم کنین. اونجا این قضیه دسترسی و read only بیشتر اهمیت داره.
 

sara_h1382

کاربر تازه وارد
تاریخ عضویت
1 جولای 2008
نوشته‌ها
17
لایک‌ها
0
ممنون مي شم.
منظورم به طور معمولي اين بود كه به طور مستقيم وصل است به switch اصلي اما بقيه از طريق هاب وصل هستند به همون سويچ.:)
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
برنامه شما را دادم روی 2 شبکه مختلف یکی workgroup و دیگری با دومین (تحت active directory) تست کردن. هیچ مشکلی نبوده.
فعلا فقط یک نکته به ذهن من میرسه که شاید بعضی از یوزرها روی شاخه ای که frontend خودشون قرار داره دسترسی create ندارن. در اینصورت چون اکسس نمیتونه فایل lda مربوط رو بسازه این مشکل ظاهر میشه.

ضمنا دیدم اسم جدولها و فیلدها فارسی است. البته نه اکسس مشکلی با این مورد داره و نه اینکه ارتباطی با مشکل فعلی شما داره ولی اگر یک زمانی بخواین کدنویسی انجام بدین مشکل هست.
بهتر هست اسامی کلیه ابجکتها و فیلدها رو انگلیسی (و بدون فاصله) بگذارین و بجاش از caption استفاده کنین. این فقط یک پیشنهاد هست.
 

fozool

Registered User
تاریخ عضویت
29 می 2004
نوشته‌ها
895
لایک‌ها
36
محل سکونت
تهران
سلام :)
من يك پايگاه داده در Access‌ ايجاد كردم كه در يكي از Text box ها كاربر بايد تاريخ فارسي وارد كند. تا قبل از اين كه عضو اين forum‌ بشوم براي حل اين مشكل يك Mask تعريف كرده بودم به صورت 1387/00/00. اما چون بيس اين روش تاريخ ميلادي است تاريخي مثل 1387/02/29 را قبول نمي‌كند چون در ماه 2 ميلادي اين تاريخ وجود ندارد.
در يكي از پست‌ها يك فايل zip‌ شده بود به نام ُShamsi.dll كه اين فايل را ُُSystem32 كپي كردم. بعد هم يك ماژول ايجاد كردم و در rerrences آدرس آن فايل DLL را دادم. اما حالا نمي‌دانم براي اين كه كاربر بتواند در Text‌ box‌ تاريخ فارسي وارد كند چه كار بايذ بكنم. من چندان هم با VB آشنا نيستم. كسي مي‌تواند من را راهنمايي كند؟:rolleyes:
سوال دوم من درباره Share كردن يك Database‌ براي كاربرهاي يك شبكه ٌWorkgroup‌اي است.براي اين كار من database‌ را به دو بخش Front End و Back End تقسيم (SPLIT‌) كردم اما همچنان بيشتر از 2 تا كاربر نمي‌توانند همزمان از database استفاده كنند. در ضمن من به كاربرها براي دسترسي به فايل و فولدري كه فايل در آن قرار دارد ّّFull Access Permission‌ دادم اما مشكل حل نشده و وفتي كاربرهاي بيشتري به پايگاه داده وصل مي شوند، دسترسي شان به صورت Read Only است. كسي پيشنهادي دارد؟:cool:

مشكل تاريخ فارسي رو يك نفر در فروم برنامه نوبس.org حل كرده
ميتونيد اونجا سرچش كنيد
 

najafzadeh

کاربر فعال پایگاه داده ها
کاربر فعال
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
522
لایک‌ها
28
محل سکونت
قزقلعه
سلام :)
من يك پايگاه داده در Access‌ ايجاد كردم كه در يكي از Text box ها كاربر بايد تاريخ فارسي وارد كند. تا قبل از اين كه عضو اين forum‌ بشوم براي حل اين مشكل يك Mask تعريف كرده بودم به صورت 1387/00/00. اما چون بيس اين روش تاريخ ميلادي است تاريخي مثل 1387/02/29 را قبول نمي‌كند چون در ماه 2 ميلادي اين تاريخ وجود ندارد.
در يكي از پست‌ها يك فايل zip‌ شده بود به نام ُShamsi.dll كه اين فايل را ُُSystem32 كپي كردم. بعد هم يك ماژول ايجاد كردم و در rerrences آدرس آن فايل DLL را دادم. اما حالا نمي‌دانم براي اين كه كاربر بتواند در Text‌ box‌ تاريخ فارسي وارد كند چه كار بايذ بكنم. من چندان هم با VB آشنا نيستم. كسي مي‌تواند من را راهنمايي كند؟:rolleyes:
سوال دوم من درباره Share كردن يك Database‌ براي كاربرهاي يك شبكه ٌWorkgroup‌اي است.براي اين كار من database‌ را به دو بخش Front End و Back End تقسيم (SPLIT‌) كردم اما همچنان بيشتر از 2 تا كاربر نمي‌توانند همزمان از database استفاده كنند. در ضمن من به كاربرها براي دسترسي به فايل و فولدري كه فايل در آن قرار دارد ّّFull Access Permission‌ دادم اما مشكل حل نشده و وفتي كاربرهاي بيشتري به پايگاه داده وصل مي شوند، دسترسي شان به صورت Read Only است. كسي پيشنهادي دارد؟:cool:

سلام
من یک مثال همراه با عکس + یک Sample از دیتابیس اکسز براتون گذاشتم. عکسها همش گویاست.
فقط یه مورد رو دقت داشته باشین. در هنگام اضافه کردن قابلیت شمسی دی ال ال سیستم شما تاریخش شمسی نمیشه. بلکه یک ابزار برای راحتی کار است.
به عنوان مثال در کد نوشته شده زیر که در همون سمپل هستش:
کد:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim shm As New ClassShamsi
Dim ttText As String

ttText = DateOfReg.Text

If shm.IsShamsi(ttText) = False Then
    MsgBox "تاریخ وارد شده شمسی نیست", vbOKOnly, ""
    Cancel = True
End If

End Sub

در فرم اصلی یک تکست باکس تعریف شده و یک فیلد هم در جدول به صورت TEXT تعریف شده و تاریخ شمسی رو میگیره با با استفاده از متد IsShamsi تاریخ وارد شده رو اول چک می کنه که آیا شمسی هست یا نه.
بعد اگه نبود نمیزاه ثبت بشه و یه پیغام خطا میده.

در هنگام استفاده از گزارش گیری هم می تونید از متدهای موجود استفاده کنین و هم می تونین از خلاقیت خودتون و ابزار پایگاه داده ای استفاده کنین.

امید است با این راهنمایی مشکل حل شود. تو فایل Shamsi_db.zip فایل DLL شمسی رو هم گذاشتم.

با اجازه
 

فایل های ضمیمه

  • Shamsi_db.zip
    53.4 KB · نمایش ها: 204
  • 10001.jpg
    10001.jpg
    33 KB · نمایش ها: 115
  • 10002.jpg
    10002.jpg
    86.5 KB · نمایش ها: 110
  • 10003.jpg
    10003.jpg
    113.9 KB · نمایش ها: 110

downocean

کاربر تازه وارد
تاریخ عضویت
16 مارس 2011
نوشته‌ها
1
لایک‌ها
0
بالاخره مشكل تاريخ حل شد.
اما درباره sharing هنوز مشكل وجود داره. من در گروههاي google‌ هم خيلي searchكردم. اتفاقا اين مشكل , مشكلات مشابه آن خيلي متداول است. اما برايش هيچ راه حلي نتوانستم پيدا كنم. شما خودتون تحت شبكه از data base برنامه Access‌ استفاده كردين؟;)


سلام، من هم مشکل تاریخ شمسی رو دارم. لطف میکنید من رو راهنمایی کنید؟!
ممنون می شم
 

najafzadeh

کاربر فعال پایگاه داده ها
کاربر فعال
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
522
لایک‌ها
28
محل سکونت
قزقلعه
بالا