همچین امکانی در DLookup وجود داره ؟
همچین امکانی در DLookup وجود داره ؟
بله مثل اینکه میشه
DLookup("[LastName]", "Employees", _
"Month([BirthDate]) = " & Month(Date) & " And Day([BirthDate]) _
= " & Day(Date))
ممنون
ایا برای پر کردن فیلدی مطابق با شرایط فیلد دیگر بکار برده میشه اگر ممکنه یه مثال بزنید (مثل vlookup اکسل)
متوجه نمیشم ؟!!!نوشته شده توسط moustafa
من اگه استنباط را بگم ممکنه بحث به بیراه بره میشه لطف کنی با یک مثال بگی کجا کاربرد داره تا دیگران هم استفاده کنند
ممنون
آخرین ویرایش به وسیله moustafa : شنبه 20 اسفند 1384 در 17:29 عصر
بازم سلام و تقاضای کمک
من یه جدول دارم با دو یا سه کلید اولیه . حالا می خام با dlookup و یا FindFirst وجود رکوردی را در جدولم بگردم که اگر وجود دارد مثلا در فرمم فراخوانی کنم . وقتی از Dlookup با دو شرط که شاپرک جان گفته بودن استفاده کردم پیام می دهد که برای کنترل شرط دوم (فیلددوم ) باید کنترل مربوطه setfocus باشد پس دو شرط را در Dlookup kld نمی پذیرد . و وقتی توی یه رکوردست از FindFirst با دوشرط استفاده می کنم Error می ده .
' rs.FindFirst ("StID=" & Me.StID & "sal=" & Me.Sal)
من توی جدول الف یه فیلد StID دارم و یه فیلد Sal که هردو کلید اصلیند و حالا توی فرمی دو فیلد با همین نامها وجود دارد و می خواهم با آپدیت یه کمبو یا هرکدوم از این دو فیلد ، وجود رکوردی را متوجه شوم . اگه راه بهتری هم سراغ دارید ممنون می شم برام بنویسید . تشکر می کنم
از دوست خوبم شاپرک جان و آقای مصطفی عزیز و هر بزرگواری که مرا یاری دهد
هردو را با & در یک فیلد یا تکس باکس ترکیب کن بعد با dlookup یک شرطی پیدا کن
یا
اگه با فیلتر مشکلی نداری بایه کوئری با دوشرط موجود فیلتر کن یا با تابع dcount تعداد ان را مشخص کن و....
من همیشه برای حستجو در بانک یک فرم حستحو تهیه و یک یا چند تکست در آن می گذارم و یک باتن
یک کواری تهیه میکنم و در قسمت شرطها - آن را به فرم جستجو و تکست هدایت میکنمforms!form1!text1 زمانی که کاربر تکست را پر می کند و باتن را فشار می دهد کواری فعال می شود و پاسخ میدهد
از لطف دوستان تشکر می کنم . در فرمی که رکورد جدید وارد می شود (در جدولی که Stno و Salکلید هستند ) با آپدیت یا بعد از زدن دگمه ذخیره (در فرم unbound) می خواهم این کار انجام شود . پس استفاده از یه فرم ثانویه برای جستجو اینجا بکارم نمی آید . نکته ای که آقای مصطفی فرمودند بد نیست ، باشه تا امتحانش کنم . در مورد FindFirst چی کدی که نوشته ام ایرادش کجاست . در جایی دیده بودم که با این تابع دو فیلد را همزمان چک می کرد . اگه به جواب رسیدین ممنون می شم کدش رو برام اصلاح کنین . با تشکر فراوان از دوستانی که بذل توجه فرمودند .
دوستان با محبت بازم سلام
شاید منظورم رو درست بیان نکرده ام به همین خاطر یه نمونه گذاشتم تا دوستان بهتر بتوانند کمکم کنند . همین کار رو با findfirst نیز انجام دادم اما فقط اولین رکورد را در نظر گرفت و در مورد بقیه رکوردها عمل نمی کرد .
لطفا راهنمایی بفرمایید با تغییر در کد ممنون می شوم
آخرین ویرایش به وسیله Mahsa Hatefi : دوشنبه 18 مرداد 1389 در 07:24 صبح
مرسی حل شد
همون کد شاپرک جان رو کمی تغییر دادم جواب داد
اگه سه الی چهار و.... شرط داشتی چی ؟
من یه راه برای دوشرط رفتم در اینده اگر مواجه شدی تعمیم بده
اول یه کوئری
SELECT grades.sal, grades.Stno
FROM grades
WHERE (((grades.sal)=[forms]![form1]![sal]) AND ((grades.Stno)=[forms]![form1]![Stno]));
دوم:
Private Sub Stno_AfterUpdate()
If sal = "" Or IsNull(sal) Then MsgBox "input text box sal": Exit Sub
If DCount("stno", "q1") > 0 Then
MsgBox "Exist"
Else
MsgBox "No Existe"
End If
End Sub
آخرین ویرایش به وسیله moustafa : جمعه 19 خرداد 1385 در 00:18 صبح
آقای مصطفی عزیز واقعا عالی بود متشکرم کمک بهتری بود . تا حالا خیلی به شما مدیون شدم چندین نکته توی این چند روز ، جای تشکر داره امیدوارم بازم حوصله بفرمایین و سوالات بعدی رو هم جواب بدین بازم متشکرم
MsgBox "ÓÇá ÑÇ ãÔÎÕ äßÑÏå ÇíÏ": Exit Sub
MsgBox "æÌæÏ ÏÇÑÏ"
MsgBox "æÌæÏ äÏÇÑÏ"
End Sub[/CODE][/QUOTE]
از این قسمتهای کد ، اصللا سر در نمیارم این کلمات برام نامفهومه
همان پیغامهای فارسی خودت اصلاحش کردم به انگلیسی یه بار دیگه نگاه کن در برنامه که دریافت کردی همین فونت ناخواناست یا فارسی ؟
یک سوال دارم در مورد اینکه من یک جدول دارم که دارای id no dupl است ولی در داخل این جدول فیلد شماره دارم و سال .بر فیلد شماره تکراری هم دارد.من مثلا می خوام ببینم در سال 85 مثلا شماره 10 وجود دارد یا نه.به نظر شما چکار کنم؟لازم به توضیح شماره 10 در سال 84 و 83 موجود می باشد ولی من سال 85 را می خواهم بدانم اینطور سندی وجود دارد یا خیر؟
من از این تابع استفاده کردم.اگر به توضیحاتم توجه کنید متوجه مشوید چرا dlookup جواب نمی دهد.دنبال یک راه بهتر هستم
شرط سال رو مساوی 85 و شرط شماره رو مساوی 10 قرار بدید جواب میده .....
در غیر اینصورت نمونه رو اینجا قرار بدید تا راهنمایی تون کنیم .
سلام شاپرک این هم نمونه برنامه مرسی
ببینید اگه شما میخوای در یک سال شماره تکراری نداشته باشی جدول رو باید طوری طراحی کنی که از ورود چنین موردی جلوگیری کنه نه اینکه بعد از وارد شدن حذفش کنی این کار یه کار اضافیه ...
مثلا میتونی سال و شماره رو باهم کلید در نظر بگیری .
دوست عزیز دنبال یک راه حل برای این مشکل می گردم.چون اگر می خواهم اینکار را که شما می گویید انجام بدم کل بانک به هم می ریزد.به هر حال تشکر می کنم از زحمات شما.دوستان دیگر اگر نظری دارند ارائه بدهند
در این حالت DLookup دو تا شرط رو بررسی می کنه . فرض کنید در جدول پرسنلی می خواهیم پیغام « شخص مورد نظر استخدام شده است » در زمانی ظاهر بشه که هم شماره پرسنلی وارد شده در جدول پرسنلی وجود داشته باشه و هم تیک استخدام خورده باشه اونوقت کدش رو به شکل زیر می نویسیم ( برای مثال در رویداد exit فیلد شماره پرسنلی )
if dlookup("persno","tblpersonal" , "persno=" & me.persno & "and estekhdam=" & true ) then
msgbox"شخص مورد نظر استخدام شده است "
end if