۱۴-آذر-۱۳۸۶, ۱۰:۵۷:۴۹
صفحهها: 1 2
۱۴-آذر-۱۳۸۶, ۱۲:۳۳:۰۹
سلام.
راحت ترین کار اینه که وقتی باتن فشرده شد، کد زیر رو تو کوئری قرار بدی و اجراش کنی:
و همینجور اگه تکس باکس بیشتری داشتی اضافه کن.
اگه خواستی کلمات مشابه هم باشه به جای علامت های مساوی از عبارت Like استفاده کن و قبل و بعد از تکس باکس ها علامت % بزار، یعنی اینجوری:
اگه مقادیر ورودی از تکس باکس ها عدد هست و رشته متنی نیست می تونی علائم " مربوط به اون ها رو حذف کنی.
راحت ترین کار اینه که وقتی باتن فشرده شد، کد زیر رو تو کوئری قرار بدی و اجراش کنی:
کد:
select * from TableName where Field1Name="""" & Text1.text & """" and Field2Name="""" & Text2.text & """"
اگه خواستی کلمات مشابه هم باشه به جای علامت های مساوی از عبارت Like استفاده کن و قبل و بعد از تکس باکس ها علامت % بزار، یعنی اینجوری:
کد:
FieldName Like %" & Text1.text & "%"
۱۶-آذر-۱۳۸۶, ۲۲:۴۰:۰۸
سلام
این کارو کردم ولی کدوم دستور هست که وقتی بخواهیم همه تکس باکس هارو سرچ کنه از ما نخواد که همه تکس باکس ها رو لزوما پر کنیم ... با AND همانطور که گفتید نوشتم ولی حتما باید همه تکس باکس های تحت این دستور پر شود تا به ما جواب دهد ... ولی اگر ما بخواهیم با بخشی از تکس باکس ها ( مثلا فقط اسم و فامیل ) سرچ کنیم تا بقیه رو پر نکنیم جواب نمیده ... با OR هم که خودتون میدونید چه جوابی میده .....
لطفا راهنماییم کنید ... مرسی
دارم گیج میشم ...
این کارو کردم ولی کدوم دستور هست که وقتی بخواهیم همه تکس باکس هارو سرچ کنه از ما نخواد که همه تکس باکس ها رو لزوما پر کنیم ... با AND همانطور که گفتید نوشتم ولی حتما باید همه تکس باکس های تحت این دستور پر شود تا به ما جواب دهد ... ولی اگر ما بخواهیم با بخشی از تکس باکس ها ( مثلا فقط اسم و فامیل ) سرچ کنیم تا بقیه رو پر نکنیم جواب نمیده ... با OR هم که خودتون میدونید چه جوابی میده .....
لطفا راهنماییم کنید ... مرسی
دارم گیج میشم ...
۱۷-آذر-۱۳۸۶, ۱۲:۱۷:۱۹
سلام.
برای این کار دستوری نیست بلکه باید از چند تا IF استفاده کنی. مثلا اینجوری:
خوب همونطوری که می بینی وارد کردن txtFName الزامی هست و اگه اون وارد نشه کدها اجرا نمی شن. حالا اگه خواستی هیچ تکستی رو الزامی نکنی باید یکی از مقادیر رو با یه مقدار صحیح پر کنی و به رشته جستجوت بدی تا برنامه با مشکل مواجه نشه.
همونطور که قبلا هم گفتم:
می تونی به جای علامت = از عبارت Like برای پیدا کردن مقادیر مشابه استفاده کنی.
اگه مقدار ورودی عدد باشه، علامت های ' رو از دو طرف عبارت حذف کن.
برای این کار دستوری نیست بلکه باید از چند تا IF استفاده کنی. مثلا اینجوری:
کد:
dim strSearch as string
if txtFName.text<>"" then
strSearch="FName=' & txtFName.text & "'"
else
exit sub
end if
if txtLName.text<>"" then
strSearch=strSearch & " and LName='" & txtLName & "'"
end if
if txtOtherField.text<>"" then
strSearch=strSearch & " and OtherFieldName='" & txtOtherField.text & "'"
end if
Sql="select * from TableName where " & strSearch
همونطور که قبلا هم گفتم:
می تونی به جای علامت = از عبارت Like برای پیدا کردن مقادیر مشابه استفاده کنی.
اگه مقدار ورودی عدد باشه، علامت های ' رو از دو طرف عبارت حذف کن.
۱۸-آذر-۱۳۸۶, ۰۲:۰۱:۰۸
mbza11 نوشته است:[code]
dim strSearch as string
if txtFName.text<>"" then
strSearch="FName=' & txtFName.text & "'"
else
exit sub
end if
سلام رفیق
به جای txtFName.text میزارم [Forms]![s].[n] که s=اسم فرم و n=نام ...
ولی موقع کامپایل خطا میده ...
راستی جای فقط FName تو خط سه باید اسم فیلدو با کروشه بزارم یا نه ؟
اگه بد متوجه شدم لطفا راهنماییم کن ...
۱۸-آذر-۱۳۸۶, ۰۹:۳۵:۲۳
سلام.
ظاهرا تو VBA داری می نویسی. (اگه اشتباه نکنم)
بهتر بود به جای نوشتن تو VBA از Query خود اکسس استفاده می کردی.
تو VBA باید کد زیر رو تو بخش کلیک باتن بنویسی (تو بخش کد نویسی):
فقط یادت باشه برای فیلدهای عددی باید علامت های ' رو برداری.
اگه یه وقتی خطا گرفتی، حداقل متن خطا رو بزار تا بینیم چی می گه.
ظاهرا تو VBA داری می نویسی. (اگه اشتباه نکنم)
بهتر بود به جای نوشتن تو VBA از Query خود اکسس استفاده می کردی.
تو VBA باید کد زیر رو تو بخش کلیک باتن بنویسی (تو بخش کد نویسی):
کد:
Dim rs As Object
Dim strSearch As String
If Me![txtFName] <> "" Then
strSearch = "[FName]='" & Me![txtFName] & "'"
Else
MsgBox "The Field FName Data IS Null!"
Exit Sub
End If
If Me![txtLName] <> "" Then
strSearch = strSearch & " and [LName]='" & Me![txtLName] & "'"
End If
If Me![txtOtherField] <> "" Then
strSearch = strSearch & " and [OtherFieldName]='" & Me![txtOtherField] & "'"
End If
Set rs = Me.Recordset.Clone
rs.FindFirst strSearch
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
فقط یادت باشه برای فیلدهای عددی باید علامت های ' رو برداری.
اگه یه وقتی خطا گرفتی، حداقل متن خطا رو بزار تا بینیم چی می گه.
۲۷-آذر-۱۳۸۶, ۱۷:۵۳:۱۰
سلام رفیق
من نمیدونستم که تو خود کوئری هم میشه دستور if
رو نوشت ... میشه کمکم کنید تا تو همون کوئری بنویسم دستورشو ....
کجای کوئری باید دستورو نوشت ....؟؟؟
من نمیدونستم که تو خود کوئری هم میشه دستور if
رو نوشت ... میشه کمکم کنید تا تو همون کوئری بنویسم دستورشو ....
کجای کوئری باید دستورو نوشت ....؟؟؟
۲۷-آذر-۱۳۸۶, ۱۹:۰۶:۳۴
سلام.
تو Query نمی تونی از دستور IF استفاده کنی.
برای اینکه برنامه با هرکدوم از تکست باکس ها جواب بده باید مقدار پیشفرض تکست باکس ها رو * بزاری تا اگه کاربری یک یا چند تا رو وارد نکرد برنامه کل اون فیلد رو در نظر بگیره و براساس بقیه مقادیر فیلتر کنه.
مثلا:
که Test اسم فرمت (Form) هست و ID1 و ID2 اسم تکست باکس هات که مقدار پیش فرض ID2 * هست ولی حتما مقدار ID1 توسط کاربر باید وارد بشه.
اینا رو باید تو بخش Query Designer و تو قسمت Criteria وارد کنی.
تو Query نمی تونی از دستور IF استفاده کنی.
برای اینکه برنامه با هرکدوم از تکست باکس ها جواب بده باید مقدار پیشفرض تکست باکس ها رو * بزاری تا اگه کاربری یک یا چند تا رو وارد نکرد برنامه کل اون فیلد رو در نظر بگیره و براساس بقیه مقادیر فیلتر کنه.
مثلا:
کد:
= [forms]![Test].[ID1]
Like "*" & [forms]![Test].[ID2] & "*"
اینا رو باید تو بخش Query Designer و تو قسمت Criteria وارد کنی.
۲۹-آذر-۱۳۸۶, ۲۲:۱۳:۲۴
سلام mbza11
واقعا ازت ممنونم
بعد از مدتها بالاخره تونستم حلش کنم البته یا کمک شما و بقیه دوستان...
واقعا ازت ممنونم
بعد از مدتها بالاخره تونستم حلش کنم البته یا کمک شما و بقیه دوستان...
۰۲-دى-۱۳۸۶, ۱۳:۰۲:۳۱
(; سلام بچه ها
واسه اینکه شکل * رو تو تکس باکسم نذارم تا کاربر نبینه اومدم از دستور زیر تو قسمت
Default Value استفاده کردم ولی جواب نمیده ..... سوالم اینه که آیا نوع دستور اشتباهه یا جای دستور ؟؟؟
کد :
iff(null;[text0]=*)h=
اگه میشه کمکم کنید ....
واسه اینکه شکل * رو تو تکس باکسم نذارم تا کاربر نبینه اومدم از دستور زیر تو قسمت
Default Value استفاده کردم ولی جواب نمیده ..... سوالم اینه که آیا نوع دستور اشتباهه یا جای دستور ؟؟؟
کد :
iff(null;[text0]=*)h=
اگه میشه کمکم کنید ....
۰۲-دى-۱۳۸۶, ۱۹:۴۶:۵۹
سلام.
دقیقا کجا این دستور رو وارد می کنی؟
دقیقا کجا این دستور رو وارد می کنی؟
نقل قول: iff(null;[text0]=*)h=این h این وسط چیکاره هست؟
صفحهها: 1 2