PDA

View Full Version : تعيين شرط متغير براي كويري كراس تب



انگوران
دوشنبه 16 فروردین 1389, 17:44 عصر
دوستان سلام - اخيراً متوجه شدم كه براي كويري كراس تب شرط متغير نميشه تعيين كرد مثلاً
between [first date] and [last date]
در صورتي كه تعيين شرط ثابت مشكل نداره مثلاً

between "88/01/01" and "88/01/31"
حالا اگه بخوايم شرطي تعيين كنيم كه مثلاً تاريخ مورد نظر دو تا از فيلدهاي روي فرم گزارشگيري باشه چه روشي رو پيشنهاد مي كنيد .

انگوران
پنج شنبه 19 فروردین 1389, 12:38 عصر
سلام مجدد - گفتم از ديد اساتيدي كه مي دونم سرشون خيلي شلوغه مخفي نمونه .

amirzazadeh
پنج شنبه 19 فروردین 1389, 13:31 عصر
سلام مجدد - گفتم از ديد اساتيدي كه مي دونم سرشون خيلي شلوغه مخفي نمونه .
سلام
ببينيد اين تاپيك كمكي ميكنه؟
http://barnamenevis.org/forum/showthread.php?t=192919
............................
موفق باشيد

انگوران
دوشنبه 23 فروردین 1389, 15:22 عصر
با سلام مجدد ،‌ من با كدهائي مثل

IIf(IsNull([forms]![form1]![text1]);[sal];[forms]![form1]![text1])
و يا

Between [forms]![form1]![text0] And [forms]![form1]![text1]
مشكل دارم . اگه دوستان راهنمائي كنن ممنون ميشم .

dadsara
سه شنبه 24 فروردین 1389, 08:44 صبح
سلام
دوست عزیز زمانی که کوئری باز است از منوی بالا قسمت Query گزینه Parameter را انتخاب کنید سپس در قسمت مربوطه نام و مسیر متغیر خود را مثلا [forms]![form1]![text0] وارد و نوع آنرا را نیز جلوی آن مشخص کنید

انگوران
سه شنبه 24 فروردین 1389, 08:52 صبح
دوست عزيز! ضمن تشكر منظورم اين بود كه وقتي شرطهائي مثل

Between [forms]![form1]![text0] And [forms]![form1]![text1]
رو در قسمت criteria و Parameter قرار ميدم به نوع براكتهاي مورد استفاده ايراد مي گيره

dadsara
چهارشنبه 25 فروردین 1389, 14:23 عصر
سلام
فکر می کنم شما در قسمت پارامتر عملگرهای Between یا And را نیز وارد می کنید
نمونه زیر شاید بتواند مشکل را حل کند

انگوران
پنج شنبه 26 فروردین 1389, 11:36 صبح
دوست عزيز فايلي كه پيوست كردين تو لينك هم بود منظور من استفاده از between و iif در شرط هست كه اگه لطف كنين توي فايل نمونه اصلاحات لازم رو انجام بدين ممنون ميشم .

amirzazadeh
پنج شنبه 26 فروردین 1389, 12:16 عصر
دوست عزيز فايلي كه پيوست كردين تو لينك هم بود منظور من استفاده از between و iif در شرط هست كه اگه لطف كنين توي فايل نمونه اصلاحات لازم رو انجام بدين ممنون ميشم .
سلام
ببينيد مشكل برطرف شده؟
...............................
موفق باشيد

انگوران
پنج شنبه 26 فروردین 1389, 16:30 عصر
ضمن تشكر از دوستان خوبم كه تا اينجا ما رو همراهي كردن . شايد باور نكنين كه بعد از راهنمائي دوستان بيش از 10 بار پارامترها رو دقيقاً به شكل فوق وارد كردم ولي جواب نگرفتم ولي حالا جواب داد و اين اتفاق براي چندمين بار در جاهاي مختلف برام پيش اومد . و اما يه مشكل ديگه كه اميدوارم اين هم مثل اون نباشه و اون هم اينه كه بعد از اعمال روشهاي فوق امكان ساخت گزارش براي اين كويري وجود نداره . باز هم ضمن سپاس منتظر عنايت اساتيد هستم .

amirzazadeh
شنبه 28 فروردین 1389, 08:58 صبح
ضمن تشكر از دوستان خوبم كه تا اينجا ما رو همراهي كردن . شايد باور نكنين كه بعد از راهنمائي دوستان بيش از 10 بار پارامترها رو دقيقاً به شكل فوق وارد كردم ولي جواب نگرفتم ولي حالا جواب داد و اين اتفاق براي چندمين بار در جاهاي مختلف برام پيش اومد . و اما يه مشكل ديگه كه اميدوارم اين هم مثل اون نباشه و اون هم اينه كه بعد از اعمال روشهاي فوق امكان ساخت گزارش براي اين كويري وجود نداره . باز هم ضمن سپاس منتظر عنايت اساتيد هستم .
لطفا فايل ضميمه رو ببينيد.
.....................
موفق باشيد

dadsara
شنبه 28 فروردین 1389, 09:10 صبح
سلام
باتوجه به اینکه در ریپورتهائی که منبع آن کوئری از نوع کراس می باشد تعداد ستونها ثابت نیست لذا
شما باید در ریپورت نیز نام متغیرهای موجود روی فرمتان را معرفی کنید

Private Sub Report_Open(Cancel As Integer)
Dim intX As Integer
Dim qdf As QueryDef
Dim frm As Form
Set dbsReport = CurrentDb
Set frm = Forms!F_Search_Main
Set qdf = dbsReport.QueryDefs("Q_Amar")
qdf.Parameters("Forms!F_Search_Main!text2") = frm!Text2
qdf.Parameters("Forms!F_Search_Main!text4") = frm!Text4
qdf.Parameters("Forms!F_Search_Main!text0") = frm!Text0
Set rstReport = qdf.OpenRecordset()
intColumnCount = rstReport.Fields.Count
If intColumnCount > 22 Then
MsgBox "شرح خطا"
Cancel = -1
End If
End Sub
این نمونه نیز بصورت کامل در سایت موجود است

انگوران
شنبه 28 فروردین 1389, 12:53 عصر
این نمونه نیز بصورت کامل در سایت موجود است
با سلام و تشكر از همه دوستاني كه تا كنون با ما همراه بودن علي الخصوص سه مدير محترم و فعال اين فوروم ، حدوداً 20 تاپيك در خصوص كويري كراس تب پيدا كردم ولي نمونه اي در اين خصوص ( رفع مشكل گزارش ) پيدا نكردم .

dadsara
یک شنبه 29 فروردین 1389, 08:55 صبح
سلام
در پست شماره 5 این تاپیک کوئری همراه ریپورت موجود است
http://www.barnamenevis.org/forum/showthread.php?t=191326&highlight=%DA%A9%D8%B1%D8%A7%D8%B3

انگوران
یک شنبه 29 فروردین 1389, 09:57 صبح
عذر خواهي منو بپذيريد ولي ظاهراً اون گزارشها پارامتري ندارن .

amirzazadeh
یک شنبه 29 فروردین 1389, 14:18 عصر
47244
ضمن تشكر از دوستان خوبم كه تا اينجا ما رو همراهي كردن . شايد باور نكنين كه بعد از راهنمائي دوستان بيش از 10 بار پارامترها رو دقيقاً به شكل فوق وارد كردم ولي جواب نگرفتم ولي حالا جواب داد و اين اتفاق براي چندمين بار در جاهاي مختلف برام پيش اومد . و اما يه مشكل ديگه كه اميدوارم اين هم مثل اون نباشه و اون هم اينه كه بعد از اعمال روشهاي فوق امكان ساخت گزارش براي اين كويري وجود نداره . باز هم ضمن سپاس منتظر عنايت اساتيد هستم .
سلام
نمونه رو براتون اصلاح كردم بعد از وارد كردن تاريخ در فرم يك گزارش رو باز كنيد.
براي اطلاعات بيشتر از اين لينك كمك بگيريد:
http://support.microsoft.com/kb/328320
...........................
موفق باشيد

انگوران
یک شنبه 29 فروردین 1389, 17:37 عصر
از لطفي كه همه اساتيد همراه كردن و وقت با ارزششون رو برامون گذاشتن واقعاً سپاسگزارم هر چند كدهاي پيچيده مربوطه ( البته براي من ) يه مقدار كار رو سخت كرده ولي كارم رو راه انداخته .
در ضمن دلم نيومد به تشكر خالي بسنده كنم و مجبور به ايجاد پست جديد شدم .

dadsara
یک شنبه 29 فروردین 1389, 20:49 عصر
عذر خواهي منو بپذيريد ولي ظاهراً اون گزارشها پارامتري ندارن .
سلام
1- دوست عزیز کدهای مربوط به کوئری که قبلا اعلام شده بود
2- کدهای مربوط به Report_Open نیز در تاپیک بالائی اعلام شده بود
3- کافی بود جنابعالی کدهای قبلی را جایگزین کنید تا گزارش شما بسته به اینکه روی چه فرمی می خواهید اجرا شود

انگوران
دوشنبه 30 فروردین 1389, 10:32 صبح
دوست عزيز من معمولاً عادت ندارم منتظر بمونم تا لقمه آماده تحويل من داده بشه و تا جائي كه سوادم اجازه بده سعيم رو ميكنم . در اين مورد هم خيلي سعي كردم گزارش مورد نظرم رو با كدهاي ارسالي جنابعالي درست كنم چون نتونستم نتيجه بگيريم مجدد مزاحم شدم . ( مشكل از اينجا ناشي ميشه كه تو vba ضعيفم ) و تا حالا نيز برنامه هائي مختلفي هم كه نوشتم و رضايت نسبي كاربرام رو هم تونستم جلب كنم اقدام به دستكاري كدهاي آماده كردم و خودتون بهتر مي دونين اگه كدنويسي رو اساسي بلد نباشي حتي با مثلاً كم و زياد كردن يه ويرگول كارت متوقف ميشه چند مرتبه هم سعي كردم برم سراغ يادگيري vba ولي هنوز فرصت نشد ( البته كار من برنامه نويسي نيست و به خاطر علاقه شخصي سراغ اكسس رفتم و كارام رو با اون راه ميندازم در ضمن در خصوص vba هم از بيخ عرب نيستيم فقط كدنويسي رو بصورت پايه اي بلد نيستم نمونه اش هم كدهائي است كه در كتاب الكترونيكي اكسس جمع و جور كردم و ... )
در هر صورت از لطف همه دوستان سپاسگزارم .

انگوران
سه شنبه 31 فروردین 1389, 18:37 عصر
سلام مجدد - ظاهراً اين قصه سر دراز دارد . داشتم گزارشهام رو چك مي كردم متوجه شدم اگه ستوني در يك بازه زماني فاقد اطلاعات باشه گزارش اجرا نميشه ( اين مشكل توي خروجي كويري وجود نداره )
در ضمن آيا فقط با كدهائي كه دوست عزيز دادسرا بهش اشاره كردن و دوست عزيزمون اميرزاده در قسمت open گزارش مربوطه بكار بردن مشكل حل نميشه تا درگير ترجمه كدهاي ديگه در ساير قسمتهاي گزارش نشيم يا مجبوريم همه كدها رو استفاده كنيم . با سپاس مجدد و مكرر

amirzazadeh
چهارشنبه 01 اردیبهشت 1389, 10:05 صبح
سلام مجدد - ظاهراً اين قصه سر دراز دارد . داشتم گزارشهام رو چك مي كردم متوجه شدم اگه ستوني در يك بازه زماني فاقد اطلاعات باشه گزارش اجرا نميشه ( اين مشكل توي خروجي كويري وجود نداره )
در ضمن آيا فقط با كدهائي كه دوست عزيز دادسرا بهش اشاره كردن و دوست عزيزمون اميرزاده در قسمت open گزارش مربوطه بكار بردن مشكل حل نميشه تا درگير ترجمه كدهاي ديگه در ساير قسمتهاي گزارش نشيم يا مجبوريم همه كدها رو استفاده كنيم . با سپاس مجدد و مكرر
سلام
دوست من ميشه دقيقا مشكل رو بگيد(من به عنوان مثال چند تا از ركوردها رو پاك كردم ولي مشكلي پيش نيومد.)

انگوران
چهارشنبه 01 اردیبهشت 1389, 13:15 عصر
دوست عزيز توي گزارش خودم كد شما رو كپي كردم كه بعضي از كدها رو خطا مي گرفت به همبن خاطر همه كدها غير از كد مربوط به open گزارش رو پاك كردم و مشكل حل شد تا زماني كه متوجه شدم اگه ستوني در يك بازه زماني فاقد اطلاعات باشه گزارش اجرا نميشه .
من فايل جديد كه كدهاش رو خطا مي گيره ضميمه كردم اگه لطف كنين تشريح كنين كه براي رفع خطاهاي مربوطه چكار بايد بكنم و كدهاي بخشهاي مختلف چه كاري رو انجام ميدن ممنون ميشم .

انگوران
پنج شنبه 02 اردیبهشت 1389, 09:26 صبح
در ضمن در فايل پيوست فوق در گزارش مربوطه عناوين فيلدها رو از head1 تا head6 و فيلدها رو نيز از col1 تا col6 نامگذاري كرده و اونا رو unbound كردم ولي باز هم نتيجه نگرفتم .

dadsara
پنج شنبه 02 اردیبهشت 1389, 12:10 عصر
سلام
1- به غیر نام ستون اول نیازی نیست برای ستونها لیبل انتخاب کنی ، بلکه باید از خود کوئری آنها خوانده شود (Head)
2- تعداد ستونهای خود در بدترین حالت حدس بزنید و آنها را ایجاد کنید
3- ستون جمع سطرها بصورت اتوماتیک محاسبه و در انتها قرار می گیرد
4- سطر جمع ستونها بصورت اتوماتیک محاسبه و در انتها قرار می گیرد
5- همانگونه که خودتان اشاره فرمودید حتما باید فیلدها به فیلدهای موجود روی گزارش متصل نشوند

amirzazadeh
پنج شنبه 02 اردیبهشت 1389, 12:31 عصر
در ضمن در فايل پيوست فوق در گزارش مربوطه عناوين فيلدها رو از head1 تا head6 و فيلدها رو نيز از col1 تا col6 نامگذاري كرده و اونا رو unbound كردم ولي باز هم نتيجه نگرفتم .
سلام جناب انگوران
نكته اي از خاطر شما دور مانده اين هست كه header هاي شما از نوع ليبل انتخاب شده در صورتيكه بايد از نوع تكست باكس و حتما unbound انتخاب بشه.
در مورد كدها هر قسمتي كه نامفهوم هست اعلام بفرماييد تا در حد امكان توضيح بدم.
........................
موفق باشيد

انگوران
پنج شنبه 02 اردیبهشت 1389, 12:44 عصر
مطمئنم مهندسين و اساتيد عزيز اميرزاده و دادسرا وقت زيادي رو صرف اين تاپيك كردن كه از اين طريق صميمانه از اين دو دوست عزيز تشكر مي كنم و براشون آرزوي موفقيت دارم .
در حال حاضر مشكلاتم حل شد اميدوارم ديگه مشكلي پيش نياد .

انگوران
شنبه 04 اردیبهشت 1389, 17:33 عصر
با سلام و عرض ارادت مجدد . تا جائي كه من اطلاع دارم براي كويري كراس تب حداكثر سه رديف يك ستون و يك مقدار ميشه تعريف كرد و در غير اينصورت خود اكسس نيز پيغام مربوطه رو نمايش ميده . حالا اگه بخوام در يك ستون دو مقدار نمايش داده بشه ( شبيه چيزي كه در اكسل طراحي كردم - عكس پيوست) راه حلي وجود داره ؟

انگوران
یک شنبه 12 اردیبهشت 1389, 12:33 عصر
سلام مجدد - دوباره بيكار شدم و ياد اين تاپيك افتادم ...

انگوران
چهارشنبه 15 اردیبهشت 1389, 17:36 عصر
با عرض پوزش ، براي آخرين بار ...