PDA

View Full Version : حرفه ای: input Mask مشکل در ثبت اطلاعات



Alirezanet
سه شنبه 15 دی 1388, 14:09 عصر
من در یک فرم از InputBox استفاده کردم ولی مقدار پیشفرضی که اوله اون تعریف شده در Table ذخیره نمیشه . و چون از ControlSourse فرم استفاده میکنم نمیتونم با کدنویسی کنترلش کنم که اطلاعات درونه InputBox هم ثبت بشه .
مثال : مقدار داخل InputBox = "8800"0000 که کاربر فقط بتونه 4 رقم آخر رو برای سهولت کار وارد کنه . ولی در Table فقط همون 4 رقم ثبت میشه !!!!

از اساتید محترم خواهشی که دارم این برنامه اگه این کنترل رو نتونم کنترل کنم دیگه به درد نمیخوره اگه کسی اطلاعاتی داره لطفا کمک کنه !! ممنون میشم . :گریه:

نکته : در InputBoxدر Table هم نمیتونم به دلایلی همون فیلتره InputBox رو استفاده کنم/.

مهدی قربانی
سه شنبه 15 دی 1388, 19:13 عصر
سلام
منظور شما تابع InputBox هست یا فرمی ساختید که کار InputBox رو شبیه سازی میکنه .

Alirezanet
سه شنبه 15 دی 1388, 20:36 عصر
سلام
منظور شما تابع InputBox هست یا فرمی ساختید که کار InputBox رو شبیه سازی میکنه .

نه داخل یک تکس باکس درون فرم از InputBox استفاده کردم ولی ....؟!؟!؟:عصبانی++:

مهدی قربانی
چهارشنبه 16 دی 1388, 00:01 صبح
سلام
ولی چی ؟ یخورده واضح تر توضیح بدید یا حداقل نمونه بذارید تا بهتر بشه منظورتون رو فهمید .

Alirezanet
چهارشنبه 16 دی 1388, 10:21 صبح
سلام
ولی چی ؟ یخورده واضح تر توضیح بدید یا حداقل نمونه بذارید تا بهتر بشه منظورتون رو فهمید .

سلام
مثال:
این نمونه ساده :(ضمیمه شده)
اگه توی فرم اطلاعات رو وارد کنی مقدار inputbox در table ذخیره نمیشه . سوال اینه که میشه کاری کرد که فیلتر پیش فرض inputbox توی جدول قرار بگیره ؟؟؟

dadsara
چهارشنبه 16 دی 1388, 10:47 صبح
سلام
دوست عزیز احیانا منظور شما از Inputbox همان InputMask است
کافی همان فرمتی 0000"8000" را که در فرم قرار داده اید باید در محیط طراحی جدول و فیلد مربوطه انجام دهید

Alirezanet
چهارشنبه 16 دی 1388, 17:58 عصر
سلام
دوست عزیز احیانا منظور شما از Inputbox همان InputMask است
کافی همان فرمتی 0000"8000" را که در فرم قرار داده اید باید در محیط طراحی جدول و فیلد مربوطه انجام دهید

:افسرده:بله شرمنده همینطوره InputMask :قهقهه:من تو نرم افزار های مختلف اسن اسمو InputBox دیده بودم یادم نبود تو اکسس جوردیگه هست . آره ممنون
ولی من در پست اول گفته بودم که نمیتونم خاصیت InputMask رو در جدول تغییر بدم چون در زمان استفاده کاربر با استفاده از یک فرم تنظیمات مقدار داخل Inputmask فرم توسط کاربر تغییر میکونه و من راهی پیدا نکردم که بتونم کدی بنویسم که این مقدار و توی Table هم دستکاری کنم . اگه راهی نیست لطفا نمونه کدی بدین که بشه به خصوصیات Table دسترسی پیدا کرد . ( و همینطور فیلد ها )

مهدی قربانی
چهارشنبه 16 دی 1388, 19:02 عصر
:افسرده:بله شرمنده همینطوره InputMask :قهقهه:من تو نرم افزار های مختلف اسن اسمو InputBox دیده بودم یادم نبود تو اکسس جوردیگه هست . آره ممنون
ولی من در پست اول گفته بودم که نمیتونم خاصیت InputMask رو در جدول تغییر بدم چون در زمان استفاده کاربر با استفاده از یک فرم تنظیمات مقدار داخل Inputmask فرم توسط کاربر تغییر میکونه و من راهی پیدا نکردم که بتونم کدی بنویسم که این مقدار و توی Table هم دستکاری کنم . اگه راهی نیست لطفا نمونه کدی بدین که بشه به خصوصیات Table دسترسی پیدا کرد . ( و همینطور فیلد ها )

سلام
من ميگم اين مشكل شما در مورد InputBox يه موضوع غريبيه !!! پس منظور InputMask بوده .
شما اگر اقدامي كه جناب dadsara‌ اشاره كردن انجام بديد مشكلتون حل ميشه .
نمونه اصلاح شده شما :

Alirezanet
جمعه 18 دی 1388, 03:22 صبح
سلام
من ميگم اين مشكل شما در مورد InputBox يه موضوع غريبيه !!! پس منظور InputMask بوده .
شما اگر اقدامي كه جناب dadsara‌ اشاره كردن انجام بديد مشكلتون حل ميشه .
نمونه اصلاح شده شما :
دوباره سلام
درسته اینجوری میشه ولی من یه فرم دارم که کاربر از اونجا میتونه مقدار InputMask رو به دلخواه تغییر بده (سال دیگه به جای 8800 بزنه 8900) ولی من با Vba نتونستم کدی بنویسم که مقدار داخل InputMask توی Table هم تغییر کنه مثه فرم . دستوری دارین برای نوشتن همچین کدی ؟!؟!


Private Sub Command0_Click()
Text1.SetFocus
If Text1.Text = "" Then
MsgBox "ÇØáÇÚÇÊ æÇÑÏ äÔÏå"
Exit Sub
End If
DoCmd.OpenForm "sabt1", acDesign, , , , acHidden
a = MsgBox("ÚãáíÇÊ ÊÛííÑ ÔãÇÑå ÐíÑÔ ÇäÌÇã ÔæÏ¿", vbOKCancel, "ÇÍÊíÇØ")
If a = vbOK Then
Form_sabt1.ID.InputMask = "\" & Left(Text1.Value, 1) & _
"\" & Mid(Text1.Value, 2, 1) & _
"\" & Mid(Text1.Value, 3, 1) & _
"\" & Mid(Text1.Value, 4, 1) & "0000"
DoCmd.Close acForm, "sabt1", acSaveYes
MsgBox "ÇäÌÇã ÔÏ"
DoCmd.Close acForm, "option", acSaveYes
Else
DoCmd.Close acForm, "sabt1", acSaveYes
MsgBox "ÚãáíÇÊ áÛæ ÔÏ"
End If
End Sub
Private Sub Command5_Click()
Text3.SetFocus
If Text3.Text = "" Then
MsgBox "ÇØáÇÚÇÊ æÇÑÏ äÔÏå"
Exit Sub
End If
DoCmd.OpenForm "sabt1", acDesign, , , , acHidden
a = MsgBox("ÚãáíÇÊ ÊÛííÑ ÓÇá ÌÇÑí ÇäÌÇã ÔæÏ¿", vbOKCancel, "ÇÍÊíÇØ")
If a = vbOK Then
Form_sabt1.ID.InputMask = Left(Text3.Value, 1) & Right
DoCmd.Close acForm, "sabt1", acSaveYes
MsgBox "ÇäÌÇã ÔÏ"
DoCmd.Close acForm, "option", acSaveYes
Else
DoCmd.Close acForm, "sabt1", acSaveYes
MsgBox "ÚãáíÇÊ áÛæ ÔÏ"
End If
End Sub

dadsara
شنبه 19 دی 1388, 08:57 صبح
سلام
دوست عزیز اگر قصد دارید از طریق کدنویسی این عمل را انجام دهید و فرم شما Unbound می باشد احتیاجی به Mask گذاشتن روی فیلد نیست
ظاهرا دو رقم اول فیلد مورد نظر شما همان دو رقم اول سال است ، در اینحالت کافی است شما قبل از ذخیره کردن مقدار تکست باکس موجود روی فرم را خوانده آنرا با دو رقم اول سال ترکیب کنید سپس نسبت به ذخیره کردن آن اقدام نمائید

مهدی قربانی
شنبه 19 دی 1388, 09:00 صبح
سلام
بنظرم اگر اين فرآيند يك فرآيند شماره گذاري هست با استفاده از ماجولهاي تاريخ شمسي اين پيش شماره رو براي مقادير لحاظ كنيد تا با تغيير سال اين پيش شماره هم تغير كنه و ديگه نيازي به استفاده از Input Mask‌ براي لحاظ شدن پيش شماره نخواهد بود .

Alirezanet
شنبه 19 دی 1388, 09:55 صبح
سلام
بنظرم اگر اين فرآيند يك فرآيند شماره گذاري هست با استفاده از ماجولهاي تاريخ شمسي اين پيش شماره رو براي مقادير لحاظ كنيد تا با تغيير سال اين پيش شماره هم تغير كنه و ديگه نيازي به استفاده از Input Mask‌ براي لحاظ شدن پيش شماره نخواهد بود .

توی این برنامه چون زیر مجموعه یه نرم افزار دیگست نمیتونم این کد رو اتوماتیک در نظر بگیرم و هر چند ماه یکبار کاربر میخواد Mask اون رو تغییر بده شاید سال 90 بخواد 8801 رو لحاظ کنه . واسه همین به مشکل خوردم . :متفکر:

من کاملا Unbound ننوشتم فقط اطلاعات و کنترل های حرفه ای تر رو با کدنویسی پیاده کردم ولی مشکل همچنان پا برجاست . راهی داره که با کدنویسی InputMask در table رو هم مثل فرم تغییر بدیم ؟! (مثال فرم رو تو چند پست قبل گذاشتم .)؟!؟!

Alirezanet
سه شنبه 22 دی 1388, 17:48 عصر
دوباره سلام من به هر دری زدم مشکل حل نشد و گفتم دوباره با اساتید در این مورد مشورتی کنم .

برنامه من باید داخل فرم که Unbound نوشته نشده از InputMask استفاده بشه ولی مقدار پیش فرض در نظر گرفته شده توی InputMask رو نمیشه توی Table ذخیره کرد .
پیشنهاد شما برای رفع این مشکل چیه ؟!

از اساتید اگه واقعا برای رفع این مشکل نیاز به دیدن برنامه هست Mail بزارن تا من براشون بفرستم .

در نهایت اگه کنترل مشابهی که مثه InputMask باشه و مقداری که به صورت پیش فرض تایپ بشه و در Table قرار بگیره هست معرفی کنید ممنون میشم .