اگر از کاربران دائمی سایت باشید میدانید که دوره کاملی را در مورد VLOOKUP در اکسل انتشار دادیم و استقبال زیادی از آن شد و حالا می خواهیم تابعی تقریبا مشابه را بررسی کنیم به نام DLOOKUP در اکسس.
استفاده از DLOOKUP در اکسس
شکل کلی تابع DLOOKUP در اکسس :
قبل از شروع آموزش به زبان ساده باید بگم که DLOOKUP کارش اینه که دیتای مورد نظر شما رو از یک جدول یا کوئری استخراج میکنه که حالا میتونه با اعمال شرط باشه و یا بدون شرط که اگر بدون شرط استفاده بشه به اولین داده مورد نظر شما که برسه اون رو نمایش میده .
فرض میکنیم که جدولی در اکسس داریم با نام tblBook که دارای دو ستون با نامه های bookId و bookName است حالا اگه یه فرم هم داشته باشیم با نام frmBook و داخلش یه تکست باکس داشته باشیم با نام txtBookName اگه بخوایم نام کتاب داخل اون نمایش داده بشه میتونیم به دو صورت از DLOOKUP استفاده کنیم :
داخل تکست باکس و یا در تب control source عبارت زیر رو بنویسیم:
=DLookUp(“bookName”,”tblBook”)
در رویداد ONLOAD فرم این کد رو بنویسیم :
txtBook=DLookUp(“bookName”,”tblBook”)
خب کد بالا چیکار میکنه : در هر دوحالت میاد نام اولین کتاب از جدول tblBook رو استخراج میکنه و نمایش میده و فرقی هم نمیکنه که اون جدول یک رکورد داشته باشه یا 1000 رکورد همیشه اولین نام کتاب رو نمایش میده که تو مثال پیوست نام کتاب تاریخ رو برمیگردونه . حالا کد DLOOKUP بدون شرط کجا بدرد میخوره ؟ معمولا توی نرم افزارها یه جدول هست که اطلاعات پایه توی اون نگهداری میشه مثل نرم افزار مدیریت فروشگاه و صدور فاکتور که یه رکورد بیشتر نداره و هر کجا توی فرم و یا گزارش که بخواین مثلا نام فروشگاه رو داشته باشین میتونید از کدی مشابه کد بالا استفاده کنید .
یه مشکلی هست !!!
اگه دیتای ما زیاد باشه مثلا 1000 تا نام کتاب وارد کرده باشیم و هرکدوم یه کدی داشته باشه و بخوایم با وارد کردن کد نام کتاب نمایش داده بشه چیکار باید بکنیم ؟ خب اینجا باید از قسمت شرط تابع استفاده کنیم . همون مثال بالا رو در نظر بگیرید و فرض کنید که تو فرم frmBook یه تکست باکس داریم با نام txtCode و میخوایم وقتی توی اون کد کتاب رو وارد کردیم توی تکست باکس txtBookName اسم کتاب رو نمایش بده .
باید تو رویداد After Update تکست باکس txtCode یکی از کدهای زیر رو بنویسیم :
Me.txtBookName = DLookup(“bookName”, “tblBook”, “bookid=txtcode”)
Me.txtBookName = DLookup(“bookName”, “tblBook”, “bookid=” & txtCode)
نکته: اگر از کد خط دوم استفاده کردید باید مطمئن شوید که نوع فیلد کد کتاب شما حتما عددی باشه.
تابع DLOOKUP در اکسس خیلی کاردهای مختلفی داره و اگر مشکلی باهاش دارین تو قسمت نظرات عنوان کنید تا در صورت لزوم فیلم آموزشی براش در نظر بگیرم.
,ممنون از لطف اساتید و نکات کاربردی که ارائه میدن. سپاسگزارم
با سلام خدمت استاد عزیزم جناب آقای بحری
استاد در آموزش قسمت دوم ساخت فرم لاگین شما از DLOOKUP برای استخراج کد سطح دسترسی کاربر استفاده فرموده اید من می خواستم که بجای شماره سطح دسترسی عنوان مدیر – کاربر یا برنامه نویس را از جدول استخراج کنم چه کار باید کرد لطفاً راهنمایی بفرمائید.
خیلی ممنون استاد
ویدیو آپلود شد
سلام ممنون بابت زحماتتون. ما همچنان منتظر آموزش فروشگاه هستیم. انشاالله کی حاضر میشه؟
سلام استاد بحری خسته نباشید ممنون از لطفتان، میخواستم ازتون خواهش کنم جستجو بین چند جدول با تابع dlookup رو توضیح بدین مثلا چند جدول با فیلدهای مشابه داریم. در این حالت آیا میشه برای معرفی اسم جدول به این تابع از کمبوباکس استفاده کرد؟؟؟؟؟ازتون خیلی ممنونم
سلام تابع dlookup زیر چه مشکلی دارد ؟
DLookUp(‘User Name’;”username”;”userlogin='” & [Forms]![login_form]![txt] & “‘”)
User Name یک عبارت با محتوای متن و عدد است.
username یک جدول است.
userlogin یک عبارت با محتوای متن و عدد است.
سلام ، تو قسمت کامنتها چون نوشته ها راست به چپ هست و فونت هم فرق داره احتمال داره فرمول شما رو درست نشون نده ، توی تلگرام برای من نمونه بفرستید تا اشکالتون رو بگیرم
سلام ببخشید ی سوال واقعا منو درگیر کرده و کارم رو متوقف خواهش یا به صورت متنی یا ویدیویی یا …منو راهنمایی کنید
من میخوام یک فرمی به صورت تبلار داشته باشم که خودش به صورت خودکار به محض باز شدن افراد رو بهم نشون بدهد و کاربر بتواند مقابل هر اسم)رکورد(ساعات کاری او را وارد کند و نکته دوم این که میخواهم کاربر یکبار مثلا در بالای فرم سال و ماه کارکرد را وارد کند و برای همه رکوردها ثبت شود خواهشا منو راهنمایی کنید چه طور توی تلگرام میتونم با شما رابطه بگیرم؟
از دوره های آموزشی استفاده کنید
سلام ببخشید
در این تابع اگر ما چند نام کتاب داشته باشیم و کد یکسان داشته باشند و بخواهیم نام کتاب ها را برایمان پشت سر هم بنویسد چکار باید بکنیم؟
با تشکر
مشابه سوال قبلیتون ، راه حل استفاده از کوئری هست
با سلام
اگر من نام کتاب های مختلفی با کد یکسان داشته باشم (مثلا کتاب های مذهبی با یک کد و سایر موضوعات با کد های دیگر )داشته باشم و بخواهم نام تمامی کتاب ها پشت سر هم نوشته شوند چکار باید کرد ؟
با تشکر
از کوئری استفاده کنید .
سلام ضمن تشکر از سایت خوبتون
یه فایل اکسس دارم
تو فایلم یه کوئری زدم
حالا می خوام تو این کوئری محاسبات انجام بدم و فیلدهای جدیدی ایجاد کنم.
فیلدهای محاسبات من از یک جدول دیگه خونده می شه ولی وقتی از Dlookup استفاده می کنم به محض اینکه criteria قرار می دم اصلا صحیح کار نمی کنه. اعدادی که بهم نشون می ده اولین عدد از اون فیلده و یا ارور می ده بابت criteria
ممنون می شم راهنماییم کنید.
تلگرام بفرستید ببینیم
سلام تابع را استفاده کردم از نوع شرطی ولی اگه فیلد مربوط به کد کتاب را خالی باشه فیلد نام کتاب خطا میده تا وقتی که کد کتاب را وارد کنیم
چکار کنیم که اگه کد کتاب را وارد نکردیم خطا نده و خالی باشه
تو اکسل تابع is blank استفاده میکردیم
خیلی ممنون
امتیاز بینندگان:5 ستاره
امتیاز بینندگان:4 ستاره
با عر سلام و احترام
آیا با استفاده از Dlookup امکان بررسی سه فیلد همزمان هم وجود داره. فرض کنید سه فیلد با نام های Nam , Date , Address داشته باشیم و می خولهیم هنگام وارد کردن دیتا اگر مقادیر هر سه فیلد همزمان در رکورد های قبلی وجود داشت برنامه کنسل بشه
سلام،وقت بخير
ميشه معادل vlookup در اكسل رو براى اكسس بهم بگيد؟
توی اکسس ما چیزی مثل vlookup نداریم البته dlookup هست ولی مثل اکسل ازش استفاده نمیشه و برطرف کردن همچین نیازی از ارتباطات ضحیح بین جداول استفاده میشه
باسلام، فایل خوبی بود، فقط علت اخطار #Type! در اکسس چیست
بسم الله
سلام
آموزش این سایت واقعا معرکست.
من کل اینترنت و یوتوب و … رو گشتم تا چند شرطی رو با یه شرایط خاص توی این تابع پیدا کنم ولی اونی که میخواستم پیدا نشد.
اما اینجا پیداش کردم
تشکر
سلام.من به یه مشکل برخوردم کارم رو متوقف کرده.از دستورDlookup استفاده میکنم ولی بعد اوکی کردن همش خطا میده با این عنوان که:
you may have entered an operand without an operator.
دستور رو هم به شکل زیر مینویسم:
= DLookUp(“codegatee”؛ “tbldata”)
حتی به جای نقطه ویرگول از , هم استفاده میکنم اصلا جواب نمیده.موندم بدجور.لطفا راهنماییم بفرمایید
= DLookUp(“name_gatee”؛ “tbl_data”؛ “code_gatee='” & [Forms]![frm_voroodie_anbar]![code_gate] & “‘”)
در فرمول بالا من یک جدول با نام tbl_data دارم که در آن نام قطعات و کد قطعات وجود داره.حالا یک فرم ایجاد کردم که در آن با وارد کردن کد قطعه برام نام قطعه نشان داده بشود.هرکاری میکنم ارور میده با عنوان زیر:
you may have entered an operand without an operator
لطفا کمکم کنین خیلی وقته وقت گذاشتم سر این ولی اصلا جواب نمیده.لطفا راهنماییم بفرماید.خیلی ممنون بابت آموزشهای خیلی عالیتون
سلام
سال نو مبارک
من یک تیبل اصلی دارم که چنتا ستون داره و یک تیبل دیگه هم دارم که با تیبل اصلی ریلیشن هست، که 2 تا ستون داره برای مثال ( ستون اول من اسم و ستون دوم شماره تلفن همون اسم رو داره) من می خوام وقتی که تو فرم مثلاً اسم یکی رو انتخاب کردم دیگه دنبال شماره اون نگردم و شماره متناظر خودکار در فرم وارد بشه چنین قابلیتی در اکسس قابل پیداه سازی هست؟؟ و چگونه این کارو بکنم؟؟
خیلی ممنون
با سلام ممنون از آموزش های بسیار کاربردی شما
سوالی داشتم. چگونه می توان یک متغیر را با کد نویسی به یک جدول در اکسس وارد کنیم.
با دستورات Sql
docmd.runsql “INSERT INTO …
درود جناب مهندس
در فرم فروش در سابفرم جلوی کالا یک فیلد گذاشتم که موجودی کالای دارو را نشان بدهد ولی فقط موجودی ردیف اول تیبل daru را برای همه داروهای انتخابی میدهد
مشکل کد زیر چیست؟
e_n_daru در واقع نام دارو است (البته اندیکس هم نیست یعنی تکراری در تیبل وجود دارد)
سپاس
DLookUp(“mojudi”;”daru”;”e_n_daru=[e_n_daru]”)
عالی بود
سلام عزیزان یه سوال دارم که هیشکی جوابشو هنو نتونسته بهم بده
سلام عزیزان یه سوال دارم که هیشکی جوابشو هنو نتونسته بهم بده سوالم اینه که من یک فرم کانتینیو فورم دارم که در اون نام کالا نوع کالا و مبلغش هست من میخوام همزمان که جنس ها و مبلغ ها رو وارد میکنم مبلغ های اجناس تو کانتینیو فورم sum بشه
ایا راهی داره؟
سلام خدمت استاد عزیز بحری
آموزشتون فوق العاده ست و واقعا لذت بردم
سلام استاد، ممنون از آموزش فوق العادتون. سوال داشتم. اگه domain جدول لینک باشه، اسم جدول رو چطور باید وارد کنیم؟
با سلام و احترام خدمت اساتید محترم
آیا میشه در اکسس فرمی را که طراحی کردیم و دارای چند تب هست، دسترسی یکی از تب ها را محدود کرد یا بهتر بگم یک یا چند تب را به کاربری اجازه دسترسی ندیم. ممنون
سلام این امکان وجود دارد و مشکلی نیست
سلام
وقت بخیر
آیا روشی هست با دستورات SQL یا … به جای Dlookup استفاده کرد. در مواردی مثل فرم های کانتینوس استفاده از مقادیر زیادی dlookup به همراه کاندیشنال فرمتینگ سرعت رو به شدت پایین میاره . ممنونم از شما
سلام قطعا روشهای مختلفی برای کارهای متفاوت میشه پیدا کرد و این مورد با توجه به ساختار دیتابیس متفاوت است
با سلام و عرض ادب
ممنون از سایت خوب و اطلاعات بسیار مفیدتون
استاد بنده محصولاتی رابا کد های مشخص دارم که در اکسس میخواهم شرایطی را ایجاد کنم که ابتدا نام محصولات توسط کاربر در بخش نام مجموعه انتخاب شده و سپس در قسمت شرح قطعه تنها قطعات مربوط به همون محصول قابلانتخاب گردد و در مرحله بعد کد قطعه با توجه به نام قطعه انتخابی توسط کاربر انتخاب گردد.
خواهشمند است راهنمایی فرماییید.
با سپاس
سلام شما باید از کوبوباکس وابسته استفاده کنید که در دوره مقدماتی اکسس آموزش داده شده است
سلام خسته نباشید
من میخام یه فیلد رو با تابع dlookup بدست بیارم ولی در ورودی سوم میخام me.id بزارم که چون باید از نوع string باشه ارور میده
DLookup(“id”, “tbl_options”, idOptions= Me.id)
چجوری میتونم این عدد رو تو استرینگ بزارم ؟
جناب بحری سلام
بنده از طریق ویدیو آموزشی شما مراحل شاخت dlookup رو برای یکی از فیلدهای فرمم استفاده کردم ولی وقتی مقداری توی فرم از این طریق نمایش داده میشه تو جدول مربوط به همون فرم ، مقدار اون فیلد که dlookup هستش ذخیره نمیشه
لطفا راهنمایی بفرمایید که چکار باید بکنم که مقدار در جول ذخیره بشه
با تشکر از زحمات شما
جناب بحری سلام
بنده از طریق ویدیو آموزشی شما مراحل شاخت dlookup رو برای یکی از فیلدهای فرمم استفاده کردم ولی وقتی مقداری توی فرم از این طریق نمایش داده میشه تو جدول مربوط به همون فرم ، مقدار اون فیلد که dlookup هستش ذخیره نمیشه
لطفا راهنمایی بفرمایید که چکار باید بکنم که مقدار در جول ذخیره بشه
با تشکر از زحمات شما
سلام مهندس بحری عزیز
من توی بانک اطلاعاتی که درگیر نوشتنش هستم به یک مشکلی برخوردم که نتونستم راه حلی براش پیدا کنم.اگه مقدوره لطف کنید و راهنمایی بفرمایید.
یک فرم برای جستجو و گزراشگیری طراحی کردم و برای فیلتر کردن خروجی از ماژول ایزی فیلتر استفاده کردم مشکل من اینجاست که نمی دونم چطوری باید خروجی ایزی فیلتر رو به گزارشی که به منظور پرینت گرفتن از اطلاعات این فرم طراحی کردم بفرستم(گزارش رو بر اساس این خروجی تنظیم کنم).
با تشکر
با سلام
با dlookupمقدار پیدا میشه اما اگر بخواهیم در جدول ثبت بشه نمیشه میشه راهنمایی بفرمایید
سلام، من یک جستجوی متنی متغیر می خواهم انجام دهم منتهی خطای name# می ده دلیل این چیست استاد محترم؟