PDA

View Full Version : فرم اصلی کد



masoud903
شنبه 15 خرداد 1389, 03:40 صبح
با سلام
من فرم اصلی کد زیر رو میخواستم
مفهوم کد رو میفهمم که از جدولی دو تا فیلد رو انتخاب میکنه و شرط قسمت where رو میسنجه اما در علامت گذاریش گیچ شدم
1- & واسه چیه؟
2-علامت(") رو دقیقا کجای فرمول بکار میبریم؟
3-چرا در این قسمت فرمول
AND ((tbl1.date2)='" & strDate & "' ));
هم از (') و هم از (") استفاده شده ؟ در صورتی که در مورد intcode اینجوری نیست؟
و در آخر ممنون میشم اگه فرمت اصلی این کد رو بگید
این کد رو آقای قربانی پیشنهاد کردند و درست عمل کرد حالا یا ایشون یا یکی دیگه از دوستان اگر لطف کنند توضیح بدن ممنون میشم (شاید ماهم ماهیگیری بلد شیم)
اصل کد

intCode = Me.payane
strDate = Me.date2

strSQL = "SELECT tbl1.payane, tbl1.date2 FROM tbl1 WHERE " & _
"(((tbl1.payane)=" & intCode & ") AND ((tbl1.date2)='" & strDate & "' ));"

Set rst = CurrentDb.OpenRecordset(strSQL)

If rst.RecordCount > 0 Then

مهدی قربانی
شنبه 15 خرداد 1389, 17:23 عصر
سلام
کاراکتر & در عبارات SQL نقش ادامه دهنده یا ترکیب رو بازی میکنه بطور مثال در این خط

strSQL = "SELECT tbl1.paymane, tbl1.date2 FROM tbl1 WHERE " & _کاراکتر & و بدنبالش _ نقش ادامه دهنده کد SQL در خط بعدی رو ایفا می کنن همونطور که میدونید اگر بخوایم یک عبارت SQL رو در یک خط داشته باشیم عموماً طولش بیشتر از عرض صفحه خواهد شد و این کار برنامه نویس رو قدری مشکل میکنه و این دو کاراکتر به ما کمک می کنن که کد مذکور رو در قالب چند خط شکسته و به راحتی قابل مشاهده باشه و اما کاربرد کاراکتر & در عبارت بعدی

"(((tbl1.payane)=" & intCode & ")اینه که ما در قسمت WHERE که در اصل همون Criteria محیط کوئری هست رو باید مقدار دهی کنیم ، خوب اینجا ما داریم میگیم مقدار مورد نظر ما برای پرس و جو در فیلد payane برابره با مقدار ذخیره شده در متغیر intCode و از اونجائیکه این متغیر از نوع عددی و Integer هست کافیه این متغیر در بین دو " قرار بگیره که اینجا کارکتر & برای اینکه در عبارات انفصالی ایجاد نشه لازمه که بین متغیر و " قرار بگیره و اما در قسمت بعدی

"(((tbl1.date2)='" & strDate & "' ));"از اونجائیکه متغیر strDate از نوع رشته هست بنابراین در زمان بکارگیری اون در کد فوق ضرورتاً باید در بین کاراکترهای تک کوتیشن و دابل کوتیشن '"مقدار"' قرار بگیره .