View Full Version : سوال: چگونگی اضافه کردن یک ستون تحت عنوان ردیف در کوئری
shaahin_58
پنج شنبه 10 آذر 1390, 16:51 عصر
با سلام خدمت تمامی دوستان عزیز
من می خواستم بدونم چطوری میتونم توی کوئری یک ستون اضافه کنم تحت عنوان ردبف که قابلیت Auto number داشته باشه. توی Table یک ستون ID دارم که نمی خوام از اون استفاده کنم .
ممنون میشم اگه راهنماییم کنید......
Abbas Amiri
پنج شنبه 10 آذر 1390, 20:39 عصر
با کد زیر متوانید کوئری با ردیف ایجاد کنید
SELECT (SELECT Count(*) FROM TableName AS tmp WHERE tmp.id <= TableName.id) AS [ردیف], id, FieldName1, FieldName2, ...
FROM TableName
ORDER BY id;
بجای id می توانید از هرفیلد عددی استفاده کنید
Profesorjd
جمعه 11 آذر 1390, 10:02 صبح
با سلام
کد مزبور دو اشکال دارد ( البته به زعم بنده !)
1- اگر فیلد خالی باشد عمل نمیکند
2- سورتی که گذاشته شده روی فیلد ID عملاً مشکل ساز است . چراکه در مواقعی ترتیب ورود اطلاعات ترتیب ردیف گذاری نیست ! یا ترتیب عدد موجود در فیلد ID
Abbas Amiri
جمعه 11 آذر 1390, 15:57 عصر
به هرحال این ساده ترین راه بود.راههای دیگه ای هم هست مثلا ایجاد یک جدول یا رکوردست براساس فیلدهای یک کوئری وسپس افزودن فیلد ردیف و بعد درج ردیف و رکوردهای کوئری که نسبت به روش بالا پیچیده تراست.
در ضمن اگر ردیف را جهت گزارش می خواهید بهترین کار ایجاد یک تکست باکس در گزارش و تنظیم [ControlSource= [CurrentRecord می باشد
arpachi
سه شنبه 12 اردیبهشت 1391, 18:37 عصر
با کد زیر متوانید کوئری با ردیف ایجاد کنید
SELECT (SELECT Count(*) FROM TableName AS tmp WHERE tmp.id <= TableName.id) AS [ردیف], id, FieldName1, FieldName2, ...
FROM TableName
ORDER BY id;
بجای id می توانید از هرفیلد عددی استفاده کنید
با سلام جناب امیری
آیا این دستور برای کوئری هایی که با دستور iif تغییر میکنند و یا از داخل فرم یک رکورد حذف میشود هم کاربرد دارد؟ یعنی پس از آپدیت کوئری شماره ردیف هم آپدیت میشود یا خیر؟
Abbas Amiri
سه شنبه 12 اردیبهشت 1391, 20:15 عصر
بزرگترین حسن کوئریها پویائی اشان است وهرزمان اطلاعات تشکیل دهنده کوئری تغییر کند ، مقادیر فیلدها هم تغییر میکند.
alizadeh.6725
چهارشنبه 13 اردیبهشت 1391, 08:30 صبح
كجا كوئري بايد اضافه كنم ؟؟؟؟؟؟؟؟ميشه بجاي رديف چيز ديگه بزارم مثلاً اسم بزارم حسن-تقي 0نقي
arpachi
چهارشنبه 13 اردیبهشت 1391, 08:46 صبح
بزرگترین حسن کوئریها پویائی اشان است وهرزمان اطلاعات تشکیل دهنده کوئری تغییر کند ، مقادیر فیلدها هم تغییر میکند.
با سلام جناب امیری
درست است ولی وقتی از این کوئری که با این روش ساخته میشود در داخل فرم استفاده میکنم و از دستور iif استفاده میکنم آپدیت نمیشود.اگر ممکناست بررسی کنید.
Abbas Amiri
چهارشنبه 13 اردیبهشت 1391, 18:54 عصر
نمونه ای جهت بررسی وجود ندارد ممکن است شما از Syntax مناسبی استفاده نکرد اید.
arpachi
چهارشنبه 13 اردیبهشت 1391, 21:57 عصر
با سلام جناب امیری و ممنون از پیگیری شما
نمونه مورد نطر رو برای بررسی پیوست میکنم لطف کنید بررسی کنید.
البته با عرض معذرت لطف کنید یک نگاهی هم به تاپیک (جستجوی محدود به ستون )بیاندازید ببنید میشه کاریش کرد؟
Abbas Amiri
چهارشنبه 13 اردیبهشت 1391, 23:10 عصر
مورد بالا جهت مقادیر تکراری جواب نمی دهد وباید یک فیلد یکتا داشته باشید
arpachi
چهارشنبه 13 اردیبهشت 1391, 23:32 عصر
مقادیر تکراری نمونه اصلاح شد اگر ممکن است قبول زحمت کنید نمونه رو اصلاح کنید.
با تشکر
Abbas Amiri
چهارشنبه 13 اردیبهشت 1391, 23:54 عصر
چه چیزی اصلاح شود شماره ردیف مرتب شد.
در ضمن فقط غیر تکراری بودن شرط است الزامی به تصاعد حسابی 1+ نیست
arpachi
پنج شنبه 14 اردیبهشت 1391, 09:37 صبح
با سلام جناب امیری
فرمایش شما درست است شماره ردیف مرتب میشود.ولی سوال من این است که هنگامی که کوئری بر اساس شرطی ویرایش میشود .مثلا در مثال بالا هنگامی که یکی از گزینه های کومبو باکس انتخاب میشود کوئری ویرایش شده هم شماره ردیف مرتبواز شماره 1 داشته باشد.
الان وقتی که یکی از گزینه های کومبو باکس انتخاب میشود شماره ردیف ها فقط از کوئری اصلی وارد میشود و ازشماره 1 مذتب نیستند.
Abbas Amiri
پنج شنبه 14 اردیبهشت 1391, 18:44 عصر
کوئری را در حالت SQL بازکنید وکد زیر را جایگزین کنید:
SELECT (SELECT Count(*) FROM AuthorityDetail AS tmp WHERE tmp.id=IIf(IsNull([Forms]![billing_persons_list]![combid]),[id],[Forms]![billing_persons_list]![combid]) AND tmp.radif <=AuthorityDetail.radif) AS ردیف, AuthorityDetail.id, AuthorityDetail.ADSanadNo, AuthorityDetail.ADDateSanad, AuthorityDetail.ADSharhSanad, AuthorityDetail.ADDebitAmount, AuthorityDetail.ADCreditAmount, AuthorityDetail.description, AuthorityDetail.mandeh, AuthorityDetail.tashkis, AuthorityDetail.radif
FROM AuthorityDetail
WHERE (((AuthorityDetail.id)=IIf(IsNull([Forms]![billing_persons_list]![combid]),[id],[Forms]![billing_persons_list]![combid])));
arpachi
جمعه 15 اردیبهشت 1391, 08:35 صبح
جناب امیری
بازهم تشکر برای وقتی که میگذارید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.