View Full Version : اعداد بزرگ
hamid-nice
شنبه 30 شهریور 1392, 10:11 صبح
با سلام
برای اینکه بتونیم اعداد بزرگی مثل 123456789123456789 را دقیق وارد کنیم و همینطور دقیق اکسس نمایش بده و از نوع number استفاده کنیم چه کار باید کرد؟
با تشکر
twofan
شنبه 30 شهریور 1392, 11:54 صبح
در قسمت فيلد سايز نامبر Decimal رو انتخاب كن
hamid-nice
شنبه 30 شهریور 1392, 20:49 عصر
با سلام و تشکر
استفاده از Decimal دو محدودیت داره یکی اینکه اعداد بیشتر از 28 رقم را نمی توان وارد کرد دومی که مشکل بیشتری است وقتی عددی وارد می کنیم که از اندازه textbox یی که داخلش نوشته ایم بیشتر شود دیگر عدد را نشان نمی دهد و به جای آن به صورت ########### نمایش میدهد این مشکل اگر حتی در فرم برطرف شود باز بهتر می شود اگر برای هریک از این محدودیتها راهکاری هست ممنون می شم کسی آنرا ارائه دهد .
با تشکر
hasanhzd
شنبه 30 شهریور 1392, 21:18 عصر
درود
من هم فکر کنم دابل بیشترین مقدار عدد یعنی 13 رقم رو میگیره و برای اعشار هم مشکلی نداره
دسیمال رو فکر نکنم گزینه مناسبی باشه
تکست راه مناسبیه
Abbas Amiri
شنبه 30 شهریور 1392, 22:04 عصر
با سلام و تشکر
استفاده از Decimal دو محدودیت داره یکی اینکه اعداد بیشتر از 28 رقم را نمی توان وارد کرد دومی که مشکل بیشتری است وقتی عددی وارد می کنیم که از اندازه textbox یی که داخلش نوشته ایم بیشتر شود دیگر عدد را نشان نمی دهد و به جای آن به صورت ########### نمایش میدهد این مشکل اگر حتی در فرم برطرف شود باز بهتر می شود اگر برای هریک از این محدودیتها راهکاری هست ممنون می شم کسی آنرا ارائه دهد .
با تشکر
اگر تعداد ارقام خیلی زیادباشد و به روی اعداد عملیات ریاضی ندارید بهترین گزینه تکست است . ودر صورت الزام به عملیات ریاضی، خودتان باید توابع عملیات ریاضی آنرا تهیه کنید.
hamid-nice
شنبه 30 شهریور 1392, 22:44 عصر
اگر تعداد ارقام خیلی زیادباشد و به روی اعداد عملیات ریاضی ندارید بهترین گزینه تکست است . ودر صورت الزام به عملیات ریاضی، خودتان باید توابع عملیات ریاضی آنرا تهیه کنید.
با سلام
توابع ریاضی خاصی نیست بلکه می خواهم برای سرچ مقادیری به صورت >= یا <= استفاده کنم که نمی توان از فرمت text استفاده کرد و مجبورم از نوع Number استفاده کنم اگر شما تابعی دارید که برای این منظور بتوان از نوع Text استفاده کرد ممنون می شم که آنرا اراءه کنید
با تشکر
Abbas Amiri
شنبه 30 شهریور 1392, 23:33 عصر
با سلام
توابع ریاضی خاصی نیست بلکه می خواهم برای سرچ مقادیری به صورت >= یا <= استفاده کنم که نمی توان از فرمت text استفاده کرد و مجبورم از نوع Number استفاده کنم اگر شما تابعی دارید که برای این منظور بتوان از نوع Text استفاده کرد ممنون می شم که آنرا اراءه کنید
با تشکر
میتوانید از تابع strComp استفاده کنید
Function CompareStringNumbers(n1, n2) As Integer
Const frmt = "000000000000000000000000000000"
CompareStringNumbers = StrComp(Format(n1, frmt), Format(n2, frmt), vbTextCompare)
End Function
تعداد صفرهای ثابت frmt حداکثر تعداد ارقامی است که می خواهید مقایسه شوند.
مقادیر برگشتی را هم از Help بدست آورید
hamid-nice
یک شنبه 31 شهریور 1392, 16:43 عصر
با سلام
فرض کنیم یک جدول داریم که یک ستون از اعداد با فرمت تکست دارد و حالا در یک فرم می خواهیم دکمه ای بذاریم که اعداد بزرگتر از 10 نمایش داده شوند چطور تابع فوق را باید برای این منظور بکار برد
با تشکر
Abbas Amiri
یک شنبه 31 شهریور 1392, 17:15 عصر
با سلام
فرض کنیم یک جدول داریم که یک ستون از اعداد با فرمت تکست دارد و حالا در یک فرم می خواهیم دکمه ای بذاریم که اعداد بزرگتر از 10 نمایش داده شوند چطور تابع فوق را باید برای این منظور بکار برد
با تشکر
در رویداد Click دکمه فرمان عبارتی مانند زیر را به RecordSource فرم منتسب کنید:
strSQL = "SELECT * FROM Table1 WHERE CompareStringNumbers(MyField,10)=1"
hamid-nice
یک شنبه 31 شهریور 1392, 18:00 عصر
با سلام
اگر بخواهیم عدد 10 را از یک تکست باکس بخواند چه باید کرد (در واقع مقدار 10 را کاربر بر حسب نیازش تعیین کند) ؟
باتشکر
Abbas Amiri
یک شنبه 31 شهریور 1392, 21:46 عصر
با سلام
اگر بخواهیم عدد 10 را از یک تکست باکس بخواند چه باید کرد (در واقع مقدار 10 را کاربر بر حسب نیازش تعیین کند) ؟
باتشکر
بعد از این همه تجربه سوالهای ساده می پرسید!!!
strSQL = "SELECT * FROM Table1 WHERE CompareStringNumbers(MyField," & myTextBox & ")=1"
hamid-nice
دوشنبه 01 مهر 1392, 10:24 صبح
با سلام وتشکر
خوب داداش بلد نیستم چه کنم ؟!:لبخندساده:
من که مثل شما با اکسس حرفه ای کار نمی کنم و تنها در حد رفع مسائل خودم دانشم را گسترش می دم بنابراین از اینجور موارد برام پیش می اید در ضمن شما دیده اید که تلاش من در موارد خیلی مشکلتری بسیار زیاد بوده است ولی چون به دنبال افزایش دانشم در اکسس برای مواردی که نیاز پیدا نمی کنم نیستم ( البته نباید هم باشم چون شغل من برنامه نویسی نیست و فقط در مورد آنچه به کارم مربوط می شه همانطور که دیده اید سخت کوشا بوده ام ) ممکن است مسایلی ابتدایی هم گاهی برایم سوال شود
در این خصوص برای افزایش دانشم برای اینکه در این خصوص دچار سوالات مشابهی نشم تاپیکی زدم که اگه شما هم مایلید در آموزش این موارد در این تاپیک از دانشتان ما را هم بیشتر بهرهمند بفرمایید
با تشکر
http://barnamenevis.org/showthread.php?420681-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%A9%D8%A7%D8%B1%D8%A7%DA%A9%D8%AA%D8%B1%D9%87%D 8%A7
اما یک نکته ای را هم اضافه کنم که وقتی فیلد مورد نظر مقادیر خالی داشته باشد دچار error می شود و به طریق زیر می شه این مشکل را حل نمود :
Dim strSQL As String
Dim strWhere As String
Dim n As Integer
Me.RecordSource = "myTable"
If Not IsNull(Me.myTextBox ) Then
If IsNull(Me.MyField) Then
DoCmd.GoToRecord acActiveDataObject, , acNext
strSQL = "SELECT * FROM myTable WHERE CompareStringNumbers(MyField," & myTextBox & ")=1"
Me.RecordSource = strSQL
End If
End If
توجه :به جای mytextbox نام تکست باکسی که می خواهید با آن مقایسه انجام شود و به جای MyField نام فیلد مورد نظر و به جای myTable هم آن چیزی که در recordsouerce فرم هست ( این برای ریست کردن برای مقایسه مقدار جدید هست ) را باید وارد کنید
موفق باشید
hamid-nice
دوشنبه 01 مهر 1392, 14:42 عصر
اما یک مساله کوچک مانده آنهم اینکه این دستور پست آخر شما اعداد بزرگتر از 10 را می آورد اگر بخواهیم اعداد بزرگتر یا مساوی رابیاورد چه کنیم چون در مقادیر برگشتی در help چیزی برای این منظور ندیدم
با تشکر
Abbas Amiri
دوشنبه 01 مهر 1392, 18:30 عصر
اما یک مساله کوچک مانده آنهم اینکه این دستور پست آخر شما اعداد بزرگتر از 10 را می آورد اگر بخواهیم اعداد بزرگتر یا مساوی رابیاورد چه کنیم چون در مقادیر برگشتی در help چیزی برای این منظور ندیم
با تشکر
Return Values
The StrComp function has the following return values:
string1 is less than string2 >> -1
string1 is equal to string2 >> 0
string1 is greater than string2 >> 1
string1 or string2 is Null >> Null
برای بزرگتر یا مساوی هم می توانید از :
strSQL = "SELECT * FROM Table1 WHERE CompareStringNumbers(MyField," & myTextBox & ")<>-1"
استفاده کنید.
hamid-nice
چهارشنبه 03 مهر 1392, 12:52 عصر
با سلام
چطور می شود این تابع را برای فیلدی در Query بکار برد چون وقتی فیلد را از نوع Text انتخاب می کنیم دیگر در شرط کوئری نمی توان بزرگتر یا... را بکار برد؟
با تشکر
Abbas Amiri
چهارشنبه 03 مهر 1392, 19:03 عصر
با سلام
چطور می شود این تابع را برای فیلدی در Query بکار برد چون وقتی فیلد را از نوع Text انتخاب می کنیم دیگر در شرط کوئری نمی توان بزرگتر یا... را بکار برد؟
با تشکر
توابع عمومی در کوئریها هم کاربرد دارند و فرقی نمی کند .
شما می توانید عبارت کوئری بالا را فقط با اضافه کردن نام فرم به نام تکست باکس در یک کوئری استفاده کنید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.