PDA

View Full Version : DLookup با دو شرط



شاپرک
شنبه 15 بهمن 1384, 12:58 عصر
همچین امکانی در DLookup وجود داره ؟

شاپرک
شنبه 15 بهمن 1384, 13:50 عصر
بله مثل اینکه میشه
DLookup("[LastName]", "Employees", _
"Month([BirthDate]) = " & Month(Date) & " And Day([BirthDate]) _
= " & Day(Date))

moustafa
جمعه 19 اسفند 1384, 00:43 صبح
ممنون
ایا برای پر کردن فیلدی مطابق با شرایط فیلد دیگر بکار برده میشه اگر ممکنه یه مثال بزنید (مثل vlookup اکسل)

شاپرک
شنبه 20 اسفند 1384, 07:25 صبح
ممنون
فیلدی مطابق با شرایط فیلد دیگر

متوجه نمیشم ؟!!!

moustafa
شنبه 20 اسفند 1384, 17:00 عصر
من اگه استنباط را بگم ممکنه بحث به بیراه بره میشه لطف کنی با یک مثال بگی کجا کاربرد داره تا دیگران هم استفاده کنند
ممنون

Mahsa Hatefi
چهارشنبه 17 خرداد 1385, 22:35 عصر
بازم سلام و تقاضای کمک
من یه جدول دارم با دو یا سه کلید اولیه . حالا می خام با dlookup و یا FindFirst وجود رکوردی را در جدولم بگردم که اگر وجود دارد مثلا در فرمم فراخوانی کنم . وقتی از Dlookup با دو شرط که شاپرک جان گفته بودن استفاده کردم پیام می دهد که برای کنترل شرط دوم (فیلددوم ) باید کنترل مربوطه setfocus باشد پس دو شرط را در Dlookup kld نمی پذیرد . و وقتی توی یه رکوردست از FindFirst با دوشرط استفاده می کنم Error می ده .
' rs.FindFirst ("StID=" & Me.StID & "sal=" & Me.Sal)
من توی جدول الف یه فیلد StID دارم و یه فیلد Sal که هردو کلید اصلیند و حالا توی فرمی دو فیلد با همین نامها وجود دارد و می خواهم با آپدیت یه کمبو یا هرکدوم از این دو فیلد ، وجود رکوردی را متوجه شوم . اگه راه بهتری هم سراغ دارید ممنون می شم برام بنویسید . تشکر می کنم
از دوست خوبم شاپرک جان و آقای مصطفی عزیز و هر بزرگواری که مرا یاری دهد

moustafa
چهارشنبه 17 خرداد 1385, 23:24 عصر
هردو را با & در یک فیلد یا تکس باکس ترکیب کن بعد با dlookup یک شرطی پیدا کن
یا
اگه با فیلتر مشکلی نداری بایه کوئری با دوشرط موجود فیلتر کن یا با تابع dcount تعداد ان را مشخص کن و....

karmand
پنج شنبه 18 خرداد 1385, 09:48 صبح
من همیشه برای حستجو در بانک یک فرم حستحو تهیه و یک یا چند تکست در آن می گذارم و یک باتن
یک کواری تهیه میکنم و در قسمت شرطها - آن را به فرم جستجو و تکست هدایت میکنمforms!form1!text1 زمانی که کاربر تکست را پر می کند و باتن را فشار می دهد کواری فعال می شود و پاسخ میدهد

Mahsa Hatefi
پنج شنبه 18 خرداد 1385, 11:51 صبح
از لطف دوستان تشکر می کنم . در فرمی که رکورد جدید وارد می شود (در جدولی که Stno و Salکلید هستند ) با آپدیت یا بعد از زدن دگمه ذخیره (در فرم unbound) می خواهم این کار انجام شود . پس استفاده از یه فرم ثانویه برای جستجو اینجا بکارم نمی آید . نکته ای که آقای مصطفی فرمودند بد نیست ، باشه تا امتحانش کنم . در مورد FindFirst چی کدی که نوشته ام ایرادش کجاست . در جایی دیده بودم که با این تابع دو فیلد را همزمان چک می کرد . اگه به جواب رسیدین ممنون می شم کدش رو برام اصلاح کنین . با تشکر فراوان از دوستانی که بذل توجه فرمودند .

Mahsa Hatefi
پنج شنبه 18 خرداد 1385, 19:30 عصر
دوستان با محبت بازم سلام
شاید منظورم رو درست بیان نکرده ام به همین خاطر یه نمونه گذاشتم تا دوستان بهتر بتوانند کمکم کنند . همین کار رو با findfirst نیز انجام دادم اما فقط اولین رکورد را در نظر گرفت و در مورد بقیه رکوردها عمل نمی کرد .
لطفا راهنمایی بفرمایید با تغییر در کد ممنون می شوم

Mahsa Hatefi
پنج شنبه 18 خرداد 1385, 22:57 عصر
مرسی حل شد
همون کد شاپرک جان رو کمی تغییر دادم جواب داد

moustafa
پنج شنبه 18 خرداد 1385, 23:18 عصر
اگه سه الی چهار و.... شرط داشتی چی ؟
من یه راه برای دوشرط رفتم در اینده اگر مواجه شدی تعمیم بده
اول یه کوئری

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

Mahsa Hatefi
پنج شنبه 18 خرداد 1385, 23:54 عصر
آقای مصطفی عزیز واقعا عالی بود متشکرم کمک بهتری بود . تا حالا خیلی به شما مدیون شدم چندین نکته توی این چند روز ، جای تشکر داره امیدوارم بازم حوصله بفرمایین و سوالات بعدی رو هم جواب بدین بازم متشکرم

Mahsa Hatefi
جمعه 19 خرداد 1385, 00:09 صبح
MsgBox "ÓÇá ÑÇ ãÔÎÕ äßÑÏå ÇíÏ": Exit Sub

MsgBox "æÌæÏ ÏÇÑÏ"

MsgBox "æÌæÏ äÏÇÑÏ"


End Sub[/CODE][/QUOTE]

از این قسمتهای کد ، اصللا سر در نمیارم این کلمات برام نامفهومه

moustafa
جمعه 19 خرداد 1385, 00:22 صبح
همان پیغامهای فارسی خودت اصلاحش کردم به انگلیسی یه بار دیگه نگاه کن در برنامه که دریافت کردی همین فونت ناخواناست یا فارسی ؟

barman2006
سه شنبه 24 مرداد 1385, 15:24 عصر
یک سوال دارم در مورد اینکه من یک جدول دارم که دارای id no dupl است ولی در داخل این جدول فیلد شماره دارم و سال .بر فیلد شماره تکراری هم دارد.من مثلا می خوام ببینم در سال 85 مثلا شماره 10 وجود دارد یا نه.به نظر شما چکار کنم؟لازم به توضیح شماره 10 در سال 84 و 83 موجود می باشد ولی من سال 85 را می خواهم بدانم اینطور سندی وجود دارد یا خیر؟

شاپرک
سه شنبه 24 مرداد 1385, 15:54 عصر
http://www.barnamenevis.org/forum/showthread.php?t=45387&highlight=dlookup

barman2006
چهارشنبه 25 مرداد 1385, 07:09 صبح
من از این تابع استفاده کردم.اگر به توضیحاتم توجه کنید متوجه مشوید چرا dlookup جواب نمی دهد.دنبال یک راه بهتر هستم

شاپرک
چهارشنبه 25 مرداد 1385, 07:29 صبح
شرط سال رو مساوی 85 و شرط شماره رو مساوی 10 قرار بدید جواب میده .....
در غیر اینصورت نمونه رو اینجا قرار بدید تا راهنمایی تون کنیم .

barman2006
چهارشنبه 25 مرداد 1385, 11:29 صبح
سلام شاپرک این هم نمونه برنامه مرسی

شاپرک
چهارشنبه 25 مرداد 1385, 12:22 عصر
ببینید اگه شما میخوای در یک سال شماره تکراری نداشته باشی جدول رو باید طوری طراحی کنی که از ورود چنین موردی جلوگیری کنه نه اینکه بعد از وارد شدن حذفش کنی این کار یه کار اضافیه ...
مثلا میتونی سال و شماره رو باهم کلید در نظر بگیری .

barman2006
چهارشنبه 25 مرداد 1385, 13:21 عصر
دوست عزیز دنبال یک راه حل برای این مشکل می گردم.چون اگر می خواهم اینکار را که شما می گویید انجام بدم کل بانک به هم می ریزد.به هر حال تشکر می کنم از زحمات شما.دوستان دیگر اگر نظری دارند ارائه بدهند

adhami
دوشنبه 31 اردیبهشت 1386, 08:46 صبح
DLookup("[LastName]", "Employees", _
"Month([BirthDate]) = " & Month(Date) & " And Day([BirthDate]) _
= " & Day(Date))

با عرض معذرت خدمت دوستان می دونم که این تاپیک خیلی وقت پیش ایجاد شده ولی من نتونستم مشکلم رو حل کنم.
می شه لطفا در مورد این کد کمی توضیح دهید. من اون تاپیکی که در مورد dlook up بود رو دیدم ولی دوشرطی بودن این کد رو متوجه نمی شم.
با تشکر

انگوران
دوشنبه 31 اردیبهشت 1386, 09:26 صبح
در این حالت DLookup دو تا شرط رو بررسی می کنه . فرض کنید در جدول پرسنلی می خواهیم پیغام « شخص مورد نظر استخدام شده است » در زمانی ظاهر بشه که هم شماره پرسنلی وارد شده در جدول پرسنلی وجود داشته باشه و هم تیک استخدام خورده باشه اونوقت کدش رو به شکل زیر می نویسیم ( برای مثال در رویداد exit فیلد شماره پرسنلی )

if dlookup("persno","tblpersonal" , "persno=" & me.persno & "and estekhdam=" & true ) then
msgbox"شخص مورد نظر استخدام شده است "
end if

hamedkh6060
یک شنبه 20 شهریور 1390, 12:30 عصر
من همیشه برای حستجو در بانک یک فرم حستحو تهیه و یک یا چند تکست در آن می گذارم و یک باتن
یک کواری تهیه میکنم و در قسمت شرطها - آن را به فرم جستجو و تکست هدایت میکنمforms!form1!text1 زمانی که کاربر تکست را پر می کند و باتن را فشار می دهد کواری فعال می شود و پاسخ میدهد

با سلام
امکانش هست یه نمونه هم بذارید تا دقیق تر متوجه بشیم ؟