PDA

View Full Version : جستجوی چند شرطی خاص در پایگاه داده با اکسس



zahedi121
سه شنبه 01 اسفند 1391, 12:43 عصر
سلام
یک تیبل دارم که یکسری اطلاعات از جمله شماره موبایل ، تاریخ ثبت نام و تاریخ تولد را می گیرد.

حالا میخوام در در یک جدول کسانی که تاریخ ثبت نام آنها مثلا اسفند است و سه رقم وسط شماره موبایل ( کد شهرستان ) آنها 151 است و تاریخ تولدشان امروز است لیست بشود.

مثال
نام فامیل موبایل تاریخ تولد تاریخ ثبت نام
علی محمدی 09121512535 05/01/1351 02/12/1390
حسن رضایی 09121519585 05/01/1362 05/12/1389
محسن رحیمی 09121518595 02/03/1361 02/01/1390
کریم محبی 09122525858 05/01/1355 03/12/1390


حالا فرض کنید امروز 05/01/1392 است باید فقط دو ردیف اول نشون داده بشه

متشکرم

Hybrid
سه شنبه 01 اسفند 1391, 14:56 عصر
سلام ، تنها مشکلی که شما الان دارید بدست آوردن 3 رقم وسط شماره موبایل هست که میتونید با استفاده از SUBSTRING اونو بدست بیارین ، این تابع 3 تا پارامتر داره ، اولیش نام فیلد ، دومیش ایندکس آغاز ، و آخری طول که باید آونا رو تنظیم کنید و سپس با استفاده از دستور Where 2 شرط مورد نظرتون رو And کنید . یک مثال هم واسه SUBSTRING به شکل زیر هست :


USE AdventureWorks2012;
GO
SELECT LastName, SUBSTRING(FirstName, 1, 1) AS Initial
FROM Person.Person
WHERE LastName like 'Barl%'
ORDER BY LastName;

zahedi121
سه شنبه 01 اسفند 1391, 15:48 عصر
سلام - شرمنده ولی نتونستم حلش کنم . اگر امکان داره یکم بیشتر توضیح بدین یا یک سورس در حد همین مثالی که زدم بگذارید:خجالت:

JaVa
سه شنبه 01 اسفند 1391, 16:05 عصر
سلام
یک تیبل دارم که یکسری اطلاعات از جمله شماره موبایل ، تاریخ ثبت نام و تاریخ تولد را می گیرد.

حالا میخوام در در یک جدول کسانی که تاریخ ثبت نام آنها مثلا اسفند است و سه رقم وسط شماره موبایل ( کد شهرستان ) آنها 151 است و تاریخ تولدشان امروز است لیست بشود.

مثال
نام فامیل موبایل تاریخ تولد تاریخ ثبت نام
علی محمدی 09121512535 05/01/1351 02/12/1390
حسن رضایی 09121519585 05/01/1362 05/12/1389
محسن رحیمی 09121518595 02/03/1361 02/01/1390
کریم محبی 09122525858 05/01/1355 03/12/1390


حالا فرض کنید امروز 05/01/1392 است باید فقط دو ردیف اول نشون داده بشه

متشکرم

دوست گرامی

اگه اشتباه متوجه سئوال شما نشده باشم می خواهید مشخصات افرادی که اینا باشن براتون لیست کنه.

خوب شما با یه دستور SQL می تونید این کارو انجام بدید

اگه دقیقا می خواید مشخصات تعیین شده براتون نشون بده از AND در غیر اینصورت از Or استفاده کنید.

مثلا


select name,family,mobile,birthday,reg
from TBL_Personel
where name='علی' and family='محمدی' and mobile='09121512535 ' and birthday='05/01/1351' and rege='02/12/1390'

همچینن بجای = می توانید از Like استفاده کنید که عبارت شبیه رو هم براتون نمایش بده


اگه اشتباه گفتم بیشتر توضیح بدید.

موفق باشید

zahedi121
چهارشنبه 02 اسفند 1391, 07:44 صبح
سلام و تشکر
ببینید من می دونم که سه رقم بعدا از 0912 یا 0935 یا ... 151 است ، تاریخ تولد 05/01 است ولی چه سالی نمی دونم ، تاریخ ثبت نام هم اسفند است ولی چه روزی باز معلوم نیست.
با دستوری که شما گفتید فقط یک رکورد نشون داده میشه.

بازهم سپاسگرام

JaVa
چهارشنبه 02 اسفند 1391, 09:43 صبح
سلام.

شما مثل اینکه آشنایی با دستورات سی کیو ال ندارید. بجای اون هایی که من نوشتم خودت باید می رفتی نام تکس باکسات رو می زاشتی.

حالا ببین این کمکت میکنه.


Dim cmd As String
cmd = "select * From TBL_Personel where name='" & txtname.Text & _
"' And family='" & txtfamily.Text & "' And mobile Like'%" & _
txtmobile.Text & "%' And birthday like '" & txtbirthday.Text & _
"' And rege like '%" & txtrege.Text & "%' "

تشکر یادت نره:چشمک:

موفق باشید.

JaVa
چهارشنبه 02 اسفند 1391, 09:48 صبح
راستی این rege همون تاریخ ثبت نام هست.

zahedi121
چهارشنبه 02 اسفند 1391, 09:58 صبح
سلام.

شما مثل اینکه آشنایی با دستورات سی کیو ال ندارید. بجای اون هایی که من نوشتم خودت باید می رفتی نام تکس باکسات رو می زاشتی.

حالا ببین این کمکت میکنه.


Dim cmd As String
cmd = "select * From TBL_Personel where name='" & txtname.Text & _
"' And family='" & txtfamily.Text & "' And mobile Like'%" & _
txtmobile.Text & "%' And birthday like '" & txtbirthday.Text & _
"' And rege like '%" & txtrege.Text & "%' "

تشکر یادت نره:چشمک:

موفق باشید.

سلام و تشکر
ولی عزیز دل یکبار خودت امتحان کن ببین چه نتیجه ای میگیری وقتی از دستور like استفاده می کنیم تمام رکوردهایی که اون عدد را داره جستجو میکنه یعنی هم 091215125306 را میاره هم 09122531510 در تاریخ هم همینطور . اگر اشتباه میگم یا باید عبارت جستجو را به فرمت خاصی بنویسم متشکر میشم راهنمایی کنید یا یک سورس با همون اطلاعات که نوشتم بگذارید
سپاس

JaVa
چهارشنبه 02 اسفند 1391, 10:22 صبح
سلام و تشکر
ولی عزیز دل یکبار خودت امتحان کن ببین چه نتیجه ای میگیری وقتی از دستور like استفاده می کنیم تمام رکوردهایی که اون عدد را داره جستجو میکنه یعنی هم 091215125306 را میاره هم 09122531510 در تاریخ هم همینطور . اگر اشتباه میگم یا باید عبارت جستجو را به فرمت خاصی بنویسم متشکر میشم راهنمایی کنید یا یک سورس با همون اطلاعات که نوشتم بگذارید
سپاس


دوباره سلام.


حالت کلی همون فقط شما بجای اون مواردی که نمی دونی چیه باید از _ استفاده کنی.

Select *
from TBL_Member
where [m_name]='مختار' and [m_family]='رئیسی' and [m_phone] like '____886____' and [m_date] like '____\9\19'And [rege] like '____\9\19'


بالا دستور SQL هست

اینم ویبی

Dim cmd As String
cmd = "Select *" & _
" from(TBL_Member)" & _
" where [m_name]='" & txtname.Text & "' and [m_family]='" & txtfamily.Text & "' and [m_phone] like '____" & txtmobile.Text & "____' and [m_date] like '____" & txtbirthday.Text & "'And [rege] like '____" & txtrege.Text & "'"

Hybrid
چهارشنبه 02 اسفند 1391, 10:25 صبح
من SQL Server ندارم تست کنم ولی داخل NotePad نوشتم احتمالا جواب مسئلتون همین باشه ،


SELECT ID, p_name, p_fname, p_phone
FROM Person
WHERE (ID = 1) AND (SUBSTRING(p_phone, 4, 3) = '849')

* در Query بالا p_name نام اشخاص ، p_fname نام خانوادگی ، p_phone شماره همراه با فرمت 9164563692 (اگه شما 0 هم داره باید 4 در تابع SUBSTRING کد بالا رو به 5 تغییر بدین) .

zahedi121
چهارشنبه 02 اسفند 1391, 18:00 عصر
با سلام و تشکر از دوستان
اگر چه با اینکه بانکم را sql کردم نتونستم از کدها استفاده کنم ولی ازشون ایده گرفتم و سورس زیر را نوشتم . به جا "_____" از "****" استفاده کردم و با BindingSource.Filter فلیتر کردم. داخل سورس بصورت دستی شرط موبایل و تاریخها را گذاشتم که بصورتهای مختلف میشه تغییرش داد ( مثلا تاریخ امروز را جای شرط تاریخ تولد بگذاریم یک برنامه داریم که تولد افراد را نشان میده یا از دستورات آقای ابراهیمی استفاده کنید برای موبایل و ..)

اگر حوصله داشتید با اون دستور select هم تغییرش بدهید و اینجا بگذارید نمی دونم چرا همیشه با این دستور select مشکل داشتم

به هر حال خیلی سپاسگزارم. :بوس:

آقا مختار آواتار جدیدتون هم مبارک :لبخندساده:

ali105
دوشنبه 31 اردیبهشت 1397, 08:44 صبح
سلام دوستان وقتتون بخیر و شادی
عزیزان من در محیط اکسس یک فرم لاگ این درست کردم فقط ی مشکل دارم اونم اینه بعد اینکه کاربر یوزر پسورد میزنه و صحیح هست میخام اون فرم لاگ این حذف بشه

ینی در صورت درست بود همه چی فرم لاگ این بره
با تشکر

ببخشید دوستان من کاربر تازم لطفا یکم زودتر راهنماییم کنید
سپاس فراوان