PDA

View Full Version : یکی کردن چند مقدار 1 فیلد ؟



majid325
چهارشنبه 23 خرداد 1386, 12:46 عصر
با سلا م:
فکر کنید یک فیلد با 10 مقدار از یک تا 10 داریم حالا به چه کوئریه میشه مقدار 1 تا 5 رو در یک
رکورد دیگه یکجا کرد؟

شاپرک
چهارشنبه 23 خرداد 1386, 12:58 عصر
با سلا م:
فکر کنید یک فیلد با 10 مقدار از یک تا 10 داریم حالا به چه کوئریه میشه مقدار 1 تا 5 رو در یک
رکورد دیگه یکجا کرد؟

10 مقدار یعنی چی ؟!!!!! لطفا بیشتر و بهتر توضیح بدید .

majid325
چهارشنبه 23 خرداد 1386, 13:03 عصر
مثلا یک جدول با یک فیلد داری...
حالا در رکورد ها این مقادیر رو داری...

رکورد 1 =====> م
رکورد 2 =====> ج
رکورد 3 =====> ی
رکورد 4 =====> د

حالا میخوای در رکورد پنجم جمع این مقادیر رو داشته باشی...

رکورد 5 =====>مجید

حالا اگه با یکم خوش سلیقگی بشه : رکورد 5 =====>م/ج/ی/د

که دیگه خیلی شرمنده میکنید

MohammadSoft
چهارشنبه 23 خرداد 1386, 13:04 عصر
با سلا م:
فکر کنید یک فیلد با 10 مقدار از یک تا 10 داریم حالا به چه کوئریه میشه مقدار 1 تا 5 رو در یک
رکورد دیگه یکجا کرد؟

لطف کنید بیشتر توضیح بدید.

majid325
پنج شنبه 24 خرداد 1386, 07:44 صبح
خودم با رکوردست یه جورایی این کار رو کردم:
اول رکوردهای مورد نظرم رو تو رکوردست ریختم و بعد....

While rstSubjectTotal.EOF = False

strSubTotal = strSubTotal + " / " + rstSubjectTotal.Fields.Item(strFilde)
rstSubjectTotal.MoveNext

Wend

ولی اگه با یه کوئری بتونم این کار رو بکنم که خیلی حال میده .

moustafa
پنج شنبه 24 خرداد 1386, 08:04 صبح
چرا کوئری ؟ رکوردست که امنیتش بالاتر و حجمش کمتره

majid325
پنج شنبه 24 خرداد 1386, 08:09 صبح
آخه این کاری که من میخوام بکنم دنباله داره ، با یه کوئری میتونم خیالمو راحت کنم.

moustafa
پنج شنبه 24 خرداد 1386, 08:56 صبح
با یه کوئری من نمی تونم ولی برای یکی از دوستام مشابه اینو با چند تا کوئری ساختم
البته تو فرم با همون دستورات رکورد ست وfor.... next _dcount
وسایر کدها میتونی در دامنه نا محدود کاری کنی
مثلا با تابع dcount تعداد رکورد رو بگیر
با for next مقدار هر رکورد رو بگیر و در یه متغیر ذخیره کن
مثلا
1=m
n=2
...

j=10
وقتی تعداد رکورد به مضرب 10 رسید
یک رکورد ایجاد بشه
در اون
k=m&/&n&....j
تو ترکیب فوق کوتیشن ودابل کوتیشن رو رعایت کن
فکر کنم از دو حلقه for ... next تو در تو باید استفاده کنی
یا دستورات نظیر while.....wend

majid325
پنج شنبه 24 خرداد 1386, 15:39 عصر
با یه کوئری من نمی تونم ولی برای یکی از دوستام مشابه اینو با چند تا کوئری ساختم
البته تو فرم با همون دستورات رکورد ست وfor.... next _dcount
وسایر کدها میتونی در دامنه نا محدود کاری کنی
مثلا با تابع dcount تعداد رکورد رو بگیر
با for next مقدار هر رکورد رو بگیر و در یه متغیر ذخیره کن
مثلا
1=m
n=2
...

j=10
وقتی تعداد رکورد به مضرب 10 رسید
یک رکورد ایجاد بشه
در اون
k=m&/&n&....j
تو ترکیب فوق کوتیشن ودابل کوتیشن رو رعایت کن
فکر کنم از دو حلقه for ... next تو در تو باید استفاده کنی
یا دستورات نظیر while.....wend

آقا مصطفی ، دست شما درد نکنه که وقت گزاشتید و به سئوال بنده توجه کردین ولی راه حلی که شما معرفی کردین از ره حل پست5 طولانی تر هست .

davood-ahmadi
جمعه 25 خرداد 1386, 02:09 صبح
با سلام به دوستان عزیز و آقا مجید. من فکر کنم راحت ترش اینه که از کدهای وی بی و از رکوردست استفاده کنید. البته هر جوری که شما دوست دارید بهتر است. ولی چیزهایی که از کووری می دونستم در این مورد چیزی به ذهنم نرسید ! . شاید هم من خوب کووری را نشناختم.

moustafa
جمعه 25 خرداد 1386, 02:36 صبح
اقا مجید با سلام
اگه منظورتون کد خودتون ،اصلا نگاش نکرده بودم
منظورتون از دنباله داره نگرفتم
تو کد خودتون ده تا ده تا عمل میکنه ؟
ممکنه یه نمونه بذارید این مورد خودش خیلی کاربرد داره

majid325
جمعه 25 خرداد 1386, 20:43 عصر
اقا مجید با سلام

سلام و تشکر از توجهتون

اگه منظورتون کد خودتون ،اصلا نگاش نکرده بودم

بله درسته منظورم همون کد هست

منظورتون از دنباله داره نگرفتم

منظورم کار خودمه ،یعنی ادامه این کار، کارهای دیگه هم هست که اون کارها وابسته به انجام شدن این کار هست.(نفهمیدم چی گفتم)

تو کد خودتون ده تا ده تا عمل میکنه ؟

نه ، من در برنامه ام نیاز داشتم مقدار چند رکورد(که دارای شرط مشترکی هستن) یک فیلد از یک جدولی رو در کنار هم قرار بدم و در یک جدول دیگه بزارم.

ممکنه یه نمونه بذارید این مورد خودش خیلی کاربرد داره
با کمال میل ، همین فردا ....

majid325
جمعه 25 خرداد 1386, 20:59 عصر
ساختار کار رو میگم اگه فکر میکنید مثال عملی هم باشه بهتره ، بگید یه نمونه هم بزارم:
اول با یه کوئری رکوردهای که مورد نظرتون هست رو با هم یکی بشن رو توی یه رکوردست بریزین:
"select f1 From tb1 Where f2=5"
بعد در یه حلقه مثل حلقه زیر مقادیر رو تو یه string بریزین:

While rstSubjectTotal.EOF = False

strSubTotal = strSubTotal + " / " + rstSubjectTotal.Fields.Item(strFilde)
rstSubjectTotal.MoveNext

Wend

حالا با استفاده از کوئریه insert into مقدار string رو به هر فیلدی تو هر جدولی که خواستید پاس کنید