ورود

View Full Version : سوال: دلیل مرتب شدن(Sort) اتوماتیک داده های ستون جدول بعد از بستن و اجرای مجدد



atf1379
چهارشنبه 09 خرداد 1403, 16:39 عصر
در نمونه ضمیمه در ستون اول جدول وقتی بصورت دستی اطلاعات را وارد می کنم (طبق تصویر ضمیمه اول عدد بزرگتر بعد عدد کوچکتر) و جدول را می بندم و مجدد باز می کنم می بینم ترتیب اعداد بهم خورد ه به اینصورت که جای عدد بزرگتر و کوچکتر تغییر کرده . در صورتیکه بنده میخواهم اطلاعات به همان ترتیبی که وارد شده مشاهده و قابل اجرا باشد .
ضمناً در هنگام ورود اطلاعات اطلاعات از طریق فرم هم این اتفاق صورت می گیرد .
احساس می کنم قبلا با چنین مشکلی مواجه نبودم و دقیقاً نمیدانم چه اتفاقی در آفییس سیستمم افتاده که چنین مشکلی ایجاد شده .
از دوستان عزیز خواهش می کنم در مورد دلیل بروز این مشکل راهنمائی فرمایند .
با تشکر

mazoolagh
چهارشنبه 09 خرداد 1403, 20:52 عصر
وقتی یک فیلد کلید در جدول دارین پیش فرض بر اساس همین فیلد سورت میشه،
و در کوئری هم همینجور عمل میکنه.

در design view جدول order by رو مشخص کنین
و چک کنین که order by onload هم yes باشه.

atf1379
چهارشنبه 09 خرداد 1403, 21:16 عصر
وقتی یک فیلد کلید در جدول دارین پیش فرض بر اساس همین فیلد سورت میشه،
و در کوئری هم همینجور عمل میکنه.

در design view جدول order by رو مشخص کنین
و چک کنین که order by onload هم yes باشه.

سلام استاد
با سپاس
ولی بنده در جدول فیلد کلید ندارم . دو تا فیلد از نوع تکست میباشد که هیچکدام هم بعنوان فیلد کلید معرفی نشده

eb_1345
چهارشنبه 09 خرداد 1403, 21:29 عصر
سلام استاد
با سپاس
ولی بنده در جدول فیلد کلید ندارم . دو تا فیلد از نوع تکست میباشد که هیچکدام هم بعنوان فیلد کلید معرفی نشده

سلام
فیلد ستون اول شما ایندکس گذاری شده (تصویر ضمیمه) که در قسمت SortOrder نوع مرتب شدن هم از بالا به پائین تعیین گردیده . این فیلد رو از این قسمت حذف کن مشکلتون برطرف میشه!

atf1379
چهارشنبه 09 خرداد 1403, 23:26 عصر
سلام
فیلد ستون اول شما ایندکس گذاری شده (تصویر ضمیمه) که در قسمت SortOrder نوع مرتب شدن هم از بالا به پائین تعیین گردیده . این فیلد رو از این قسمت حذف کن مشکلتون برطرف میشه!
سلام
ممنون از راهنمائی مفیدتون
در فایل نمونه ضمیمه با این راهنمائی جنابعالی مشکل حل شد ولی نمیدانم چرا در فایل اصلی برنامه ام مشکل همچنان پابرجاست با توجه به اینکه همه ایندکس ها را هم حذف کردم

atf1379
پنج شنبه 10 خرداد 1403, 00:35 صبح
متوجه منشأ مشکل شدم ولی نمیدانم به چه نحو حلش کنم
مشکل زمانی ایجاد میشود که از این جدول یک کوئری میسازیم و آن را در حالت Group قرار میدهیم . به عبارتی وقتی فیلدها را در حالت گروهبندی قرار میدهیم خودبخود ترتیب اولیه ستون ها تغییر می کند
حالا نمیدانم ایا راهی هست که در این حالت ترتیب داده های ستونها تغییری نکند یا نه؟

mazoolagh
پنج شنبه 10 خرداد 1403, 09:59 صبح
وقتی group by دارین دیگه ترتیب رکوردها مشخص نیست که چی باشه،
باید یک order by هم به کوئری اضافه کنین.


ولی بنده در جدول فیلد کلید ندارم . دو تا فیلد از نوع تکست میباشد که هیچکدام هم بعنوان فیلد کلید معرفی نشده
این رو جناب بهرامی توضیح دادن

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

در کل: همیشه با order by کنترل کنین ترتیب رکوردها رو.

atf1379
پنج شنبه 10 خرداد 1403, 14:51 عصر
وقتی group by دارین دیگه ترتیب رکوردها مشخص نیست که چی باشه،
باید یک order by هم به کوئری اضافه کنین.


در کل: همیشه با order by کنترل کنین ترتیب رکوردها رو.
فرمایش شما درست ولی تعیین group by در کوئری برای زمانی که ترتیب رکوردهای ستون مربوطه ثابت باشه کاربرد دارد . مثلاً همیشه عدد بزرگتر بالاتر از عدد کوچکتر باشد در صورتیکه در زمان ورود اطلاعات تحت شرایطی عدد کوچکتر ستون Code در ابتدا و بعضی موقع ها در پائین قرار می گیرد . به عبارتی در بعضی موقع ها تر تیب عدد ستون فوق باید بصورت 12 و 1212 و 13 و 1313 باشد و بعض وقت ها هم باید بصورت 1212 و 12 و 1313 و 13 باشد . بخاطر همین می خواهم ترتیب به همان صورت ورود اطلاعات باشد.
تا جائیکه خاطرم است تا چند وقت پیش که اطلاعات جدول فوق را بصورت گروهی در کوئری نمابش میدادم ترتیب اطلاعات هیچ تغییری نمی کرد ولی الآن در هر حالتی ترتیب از کوچک به بزرگ تغییر می کند .

متأسفانه به سیستم دیگری هم دسترسی ندارم که نمونه پست 6 را امتحان کنم که آیا در آن سیستم هم ترتیب اطلاعات در کوئری تغییر می کند یا نه

ضمناً گروهبندی اطلاعات جدول هم بخاطر تکرار اطلاعات می باشد

eb_1345
پنج شنبه 10 خرداد 1403, 20:47 عصر
فرمایش شما درست ولی تعیین group by در کوئری برای زمانی که ترتیب رکوردهای ستون مربوطه ثابت باشه کاربرد دارد . مثلاً همیشه عدد بزرگتر بالاتر از عدد کوچکتر باشد در صورتیکه در زمان ورود اطلاعات تحت شرایطی عدد کوچکتر ستون Code در ابتدا و بعضی موقع ها در پائین قرار می گیرد . به عبارتی در بعضی موقع ها تر تیب عدد ستون فوق باید بصورت 12 و 1212 و 13 و 1313 باشد و بعض وقت ها هم باید بصورت 1212 و 12 و 1313 و 13 باشد . بخاطر همین می خواهم ترتیب به همان صورت ورود اطلاعات باشد.

به نظرم بهترین کار اینست که در جدول یک فیلد از نوع AutoNumber ایجاد کنی و این فیلد در کوئری مربوطه اضافه کنی
حالا سوال شما بعد از انجام اینکار اینست که با توجه به گروه بندی داده ها در کوئری خصوصیت Total را از چه نوعی از لیست کشوئی قرار بدهی که گروهبندی بدرستی انجام بشه که در جواب باید گفت بهتره اون رو از نوع First یا Min قرار بدهی چون اگه اون رو در حالت Group By قرار بدهی گروهبندی داده های مشترک درست انجام نمیشه (بواسطه اینکه اعداد مشترکی در فیلد اتونامبر وجو نداره) و در نهایت هم خصوصیت Sort اون رو در حالت Ascending قرار میدهی

atf1379
جمعه 11 خرداد 1403, 02:04 صبح
به نظرم بهترین کار اینست که در جدول یک فیلد از نوع AutoNumber ایجاد کنی و این فیلد در کوئری مربوطه اضافه کنی
حالا سوال شما بعد از انجام اینکار اینست که با توجه به گروه بندی داده ها در کوئری خصوصیت Total را از چه نوعی از لیست کشوئی قرار بدهی که گروهبندی بدرستی انجام بشه که در جواب باید گفت بهتره اون رو از نوع First یا Min قرار بدهی چون اگه اون رو در حالت Group By قرار بدهی گروهبندی داده های مشترک درست انجام نمیشه (بواسطه اینکه اعداد مشترکی در فیلد اتونامبر وجو نداره) و در نهایت هم خصوصیت Sort اون رو در حالت Ascending قرار میدهی

درود بر شما
حسابی شیر فهم شدم :تشویق::تشویق::تشویق: