ورود

View Full Version : كمك.ايجاد فيلتر فوري



mohsen_pasha
پنج شنبه 30 آبان 1392, 11:13 صبح
با عرض سلام خدمت دوستان و اساتيد

من جدولي دارم كه در ان مشخصات كويل ثبت شده .چگونه مي شود اخرين تغييرات ثبت شده coil number را فيلتر كرد يك نمونه هم از جدول هم زميمه كردم113075
با تشكر

hamid-nice
پنج شنبه 30 آبان 1392, 16:17 عصر
با توجه به اینکه فیلد تاریخ را Text گذاشته اید بیانگر بی اهمیت بودن نوع آن برای شما هست لذا از تکنیک زیر می توانید استفاده کنید
1- نوع فیلد تاریخ را به Number تغییر دهید و inputmask آنرا به صورت 0000/00/00 تنظیم کنید تا حالت تاریخ به خود بگیرد
2- یک کوئری بسازید و جدول را به همراه فقط فیلد تاریخ ( inputmask آنرا به صورت 0000/00/00 تنظیم کنید البته این صرفا نمایشی است و الحاظ فنی تاثیری ندارد ) و coil number در آن به طوریکه در زیر تاریخ Max را تنظیم کنید ولی برای coil numberohgj حالت Group byرا رها کنید
حال منظور شما تامین شده است البته این به شرطی است که همراه تغییرات در جدول حتما زمان تغییرات هم به روز شود اگر این را نمی توانید دست بزنید یک فیلد دیگری به صورتی که گفتم در جدول ایجاد کنید و نام آنرا تاریخ به روز رسانی بگذارید و موارد فوق را برای آن تنظیم کنید
شما می توانید با داشتن یک دگمه روی فرم که این کوئری را اجرا می کند یا ... از آن استفاده کنید .
موفق باشید

mohsen_pasha
جمعه 01 آذر 1392, 08:41 صبح
با سلام و تشكر از شمادوست عزيز.مرسي از اينكه جواب دادي

اين موضوع اي كه گفتيد درست ولي من نمي توانم تاريخ رو ملاك قرار دهم چون مكن است در يك روز و با يك تاريخ شماره كويل ثبت شود .اگه امكان دارد از روي شماره پاس فيلتر شود .يعني اخرين شماره پاس با مشخصات آن در يك query ثبت شود .


با تشكر

Abbas Amiri
جمعه 01 آذر 1392, 10:23 صبح
با سلام و تشكر از شمادوست عزيز.مرسي از اينكه جواب دادي

اين موضوع اي كه گفتيد درست ولي من نمي توانم تاريخ رو ملاك قرار دهم چون مكن است در يك روز و با يك تاريخ شماره كويل ثبت شود .اگه امكان دارد از روي شماره پاس فيلتر شود .يعني اخرين شماره پاس با مشخصات آن در يك query ثبت شود .


با تشكر

از عبارت کوئری زیر استفاده کنید

SELECT * FROM [Copy of coldroll]
WHERE (((passno)=DLast("Passno","Copy of coldroll")));

mohsen_pasha
جمعه 01 آذر 1392, 10:58 صبح
از عبارت کوئری زیر استفاده کنید

SELECT * FROM [Copy of coldroll]
WHERE (((passno)=DLast("Passno","Copy of coldroll")));


با سلام و تشكر از شما به خاطر جواب دادن به اين سوال

جناب اقاي اميري حال اگر بخوام در ادامه اين دستور بگم فيلد customer name مساوي با حروفي شد اين شماره كويل (cold number ) با اطلاعاتش رو به داخل كوئري نيار بايد چكار كنم

بازم از شما تشكر مي كنم

Abbas Amiri
جمعه 01 آذر 1392, 11:20 صبح
با سلام و تشكر از شما به خاطر جواب دادن به اين سوال

جناب اقاي اميري حال اگر بخوام در ادامه اين دستور بگم فيلد customer name مساوي با حروفي شد اين شماره كويل (cold number ) با اطلاعاتش رو به داخل كوئري نيار بايد چكار كنم

بازم از شما تشكر مي كنم

از یکی از دو روش زیر برحسب نیاز خود استفاده کنید:

SELECT *
FROM [Copy of coldroll]
WHERE passno=DLast("Passno","Copy of coldroll") AND CustomerName<>'kl';

SELECT *
FROM [Copy of coldroll]
WHERE [passno]=DLast("Passno","Copy of coldroll") AND [CustomerName]<>[Forms]![Form1]![Text1];

mohsen_pasha
جمعه 01 آذر 1392, 12:49 عصر
[QUOTE=Abbas Amiri;1918530]از یکی از دو روش زیر برحسب نیاز خود استفاده کنید:
[VB]
SELECT *
FROM [Copy of coldroll]
WHERE passno=DLast("Passno","Copy of coldroll") AND CustomerName<>'kl';

با تشكر از شما

يك سوال ديگه اگه امكان داره جواب بديد ممنون مي شم

جدولي زميمه كردم چطوره مي شود همه اون كارهاي بالا رو انجام بده و شرط ديگه مبني بر اينكه اگر فيلد وضعيت برابر با c1 شد اون coil number را با اطلاعات نشان نده
و يا به يك تيبل يا كوئري ديگه انتقال دهد .



113122113122

سوال بعدي چطور مي شود پايگاه دادهارا (تيبل)در يك اكسس قرار داد و براي آن پسورد گذاشت و با برنامه اكسس ديگر اين تيبل ها را لينك كرد .پسورد ديتا بيس را بايد در كجاي اكسس ست كرد

با تشكر فراوان

Abbas Amiri
جمعه 01 آذر 1392, 19:39 عصر
در مورد کوئری به همان ترتیب قبلی انجام میشود:

SELECT *
FROM [Copy of coldroll]
WHERE passno=DLast("Passno","Copy of coldroll") AND CustomerName<>'kl' AND vaz<>'c1';

و در مورد دومی کمی جستجو کنید نمونه وجود دارد.

mohsen_pasha
شنبه 02 آذر 1392, 10:30 صبح
با سلام و تشكر مجدد

شايد من نتونستم سوالم را خوب توضيح بدم

من جدولي دارم كه در آن شماره كويلهاي(coil number) ثبت مي شود و در آن تعداد پاس دارد هر شماره از يك تا ٧ پاس مي توند ثبت شود حال سوال من اين است من مي خواهم موجودي بگيرم يعني شماره كويل 19 (در نمونه بالا)٣ پاس خورد بعد در وضعيت c1 مي باشد من مي خواهم كوئري بسازم كه بتونه اولا آخرين پاس ثبت شود را نشان دهد(كه استاد اميري جواب دادن)و اگه در صورتي كه آخرين پاس آن در وضعت c1 بود هيچ يك از پاس هاي اين شماره را نشان ندهد (شماره كويل 19) و اگر امكان داشته باشد آخرين پاس شماره 19 را به كوئري ديگر انتقال دهد

با تشكر فراوان

Abbas Amiri
شنبه 02 آذر 1392, 20:21 عصر
با سلام و تشكر مجدد

شايد من نتونستم سوالم را خوب توضيح بدم

من جدولي دارم كه در آن شماره كويلهاي(coil number) ثبت مي شود و در آن تعداد پاس دارد هر شماره از يك تا ٧ پاس مي توند ثبت شود حال سوال من اين است من مي خواهم موجودي بگيرم يعني شماره كويل 19 (در نمونه بالا)٣ پاس خورد بعد در وضعيت c1 مي باشد من مي خواهم كوئري بسازم كه بتونه اولا آخرين پاس ثبت شود را نشان دهد(كه استاد اميري جواب دادن)و اگه در صورتي كه آخرين پاس آن در وضعت c1 بود هيچ يك از پاس هاي اين شماره را نشان ندهد (شماره كويل 19) و اگر امكان داشته باشد آخرين پاس شماره 19 را به كوئري ديگر انتقال دهد

با تشكر فراوان

کوئری زیر آخرین پاس از هر شماره را در صورتی که وضعیت cl نداشته باشد ، نشان میدهد:

SELECT date, pagenumber, orderID, CustomerName, CoilNumber, passno, Alloy, InitialThickness, initialWeight, FinalThickness, FinalWidth, FinalWeight, *
FROM [Copy of coldroll]
WHERE (((passno)=DLast("Passno","Copy of coldroll")) AND ((CustomerName)<>'kl') AND ((DCount("*","Copy of coldroll","vaz='c1' AND passno = " & [passno]))=0));

mohsen_pasha
یک شنبه 03 آذر 1392, 10:07 صبح
با سلام و تشكر مجدد

جناب آقاي اميري من اين كويري را اجرا كردم ولي يك مشكلي كه دارم اين است كه وقتي فيلتر custamername را بر مي دارم جواب درست نيست.يعني من بخوام بدون فيلتر كردن custamername انجام بدم چكار بايد بكنم.واكه بخوام آخرين پاس شماره 19(در نمونه بالا) را به كوئري ديگر انتقال دهد بايد چكار كنم

با تشكر فراوان خدمت شما

Abbas Amiri
یک شنبه 03 آذر 1392, 21:36 عصر
با سلام و تشكر مجدد

جناب آقاي اميري من اين كويري را اجرا كردم ولي يك مشكلي كه دارم اين است كه وقتي فيلتر custamername را بر مي دارم جواب درست نيست.يعني من بخوام بدون فيلتر كردن custamername انجام بدم چكار بايد بكنم.واكه بخوام آخرين پاس شماره 19(در نمونه بالا) را به كوئري ديگر انتقال دهد بايد چكار كنم

با تشكر فراوان خدمت شما

در مورد سوال اول:

SELECT Date, pagenumber, orderID, CustomerName, Last(CoilNumber) AS LastOfCoilNumber, Alloy, InitialThickness, initialWeight, FinalThickness, FinalWidth, FinalWeight, passno
FROM [Copy of coldroll]
WHERE (((passno)=DLast("Passno","Copy of coldroll")) AND ((DCount("*","Copy of coldroll","vaz='c1' AND passno = " & [passno]))=0))
GROUP BY Date, pagenumber, orderID, CustomerName, Alloy, InitialThickness, initialWeight, FinalThickness, FinalWidth, FinalWeight, passno;

و سوال دوم

SELECT *
FROM [Copy of coldroll]
WHERE (((vaz)="c1"));

mohsen_pasha
دوشنبه 04 آذر 1392, 11:29 صبح
با سلام و عرض ادب

جناب آقاي اميري به مشكلي خوردم در مورد دستورات بالا

دستوردات بالا در قسمت Passno فقط تا پاس ٤ نشان ميدهد اگر تعداد Passno بالا تر از ٤ باشد همون ٤ را نشان مي دهد مشكل در كجاست بي زحمت راهنمايي كنيد

در ضمن دستور زير هم به تنهاي تست شد فقط 5 تا از passno را نشان مي دهد من تا 9 تا passno دارم

نمونه زير فقط تا 2 از passno نشان مي دهد

SELECT *
FROM coldroll
WHERE (((passno)=dLast("Passno","coldroll")));




نمونه

113211

به نظر من دستور dlast آخرين ركورد ثبت شوده در passno را فيلتر مي كنه .

ولي براي من شماره كويل يا همون coilnumber هم مهم است .دستوري مي خوام كه بتونه آخرين passno شماره كويل يا همون cilnumber را فيلتر كنه وبعد مراحل بعدي.

با تشكر از شما

mohsen_pasha
شنبه 09 آذر 1392, 08:24 صبح
سلام كسي نيست كمك كنه