PDA

View Full Version : سوال: ارور dlookup



bemilove
سه شنبه 05 مرداد 1395, 00:11 صبح
سلام
در هنگامی که کنترل سورس تکست باکس یک فرم فرمول dlookup می گذاریم....خطا می دهد....تصویر پیوست می باشد
نمونه برنامه آپلود شده
141649141650

mazoolagh
سه شنبه 05 مرداد 1395, 09:52 صبح
جداکننده لیست باید ; باشه - اینجا ظاهرا :‌ هست

بطوز کلی تو regional settings ویندوز کاراکتر list separator رو هم چک کنین یک وقت سمی کالن فارسی ؛ نباشه

bemilove
یک شنبه 17 مرداد 1395, 18:46 عصر
علامت درست شد.....ولی dlookup کار نمی کنه؟؟؟؟؟؟؟؟

mazoolagh
دوشنبه 18 مرداد 1395, 13:39 عصر
با اجازه تون برنامه رو یک نگاه انداختم ، دو راه پیش رو دارین:

رفع سریع مشکل و با حفظ وضعیت موجود
بازنگری طراحی


اگر فقط میخواین که سریع نتیجه بگیرین کافی هست که تکست باکس رو به کمبوباکس unbound تبدیل کنین و row source رو هم tbl-day بگذارین و مابقی تنظیمات
و بعد از گرفتن تاریخ با کد مقدار day رو جستجو کنین:
Private Sub Command26_Click()
DoCmd.OpenForm "f_Calendar", acNormal, , , , acDialog
Me.txtcode = strDate
Me.Text33 = DLookup("[day]", "[tbl-calendar]", "[tarikh2]=" & Format(strDate, "'0000/00/00'"))
End Sub


طراحی جداول و کدها بیش از حد پیچیده است و بهینه هم نیست.
چون datepicker یکبار مصرف نیست و قرار هست که در همه برنامه ها استفاده بشه باید یک دستی به سروروی اینها بکشین:
در جدول tbl-calendar مقدار id بیهوده است. همون tarikh رو به شکل long ذخیره کنین و کلید هم همون باید باشه
مقادیر سال و ماه و روز همه باید integer باشن
فقط مقادیری که واقعا متن هستن باید string باشن
یک user data type بسازین و یک متغیر گلوبال هم از همین نوع تعریف کنین که مقدار انتخاب شده توسط datepicker رو در اون نگهداری کنین :

TYPE PERSIAN_CALENDAR
PDATE AS LONG
PYEAR AS INTEGER
PMONTH AS INTEGER
....
....
WEEKDAY AS INTEGER
PWEEKDAY_NAME AS STRING
....
PMONTH_NAME AS STRING
....
GDATE AS DATE
....
END TYPE



PUBLIC SELECTED_DATE AS PERSIAN_CALENDAR


در همون فرم datepicker و نه در فرمی که اون رو صدا میزنه پس از انتخاب تاریخ همه این مقادیر رو آپدیت کنین