ورود

View Full Version : مشكل با جستجو در بانك اطلاعاتي اكسس



seleron
شنبه 21 اردیبهشت 1392, 15:38 عصر
با سلام و عرض احترام
اساتيد عزيز من دوتا لغت فارسي (نوشيدن , آشاميدن) در يك فيلد دارم من وقتي با دستور زير به جستجو مي پردازم كلمه نوشيدن رو كه وارد مي كنم تشخيص ميده ولي وقتي آشاميدن رو مي نويسم كلمه رو پيدا نميكنه با اينكه توي همون فيلد هستش لطفا من رو راهنمايي كنيد.

Select Case ComboBox1.ListIndex
Case 0:
SQL = "SELECT * FROM Table1 WHERE left(Persian," & Len(Text1) & ")='" & Trim(Text1) & "'"
Adodc1.RecordSource = SQL
Adodc1.Refresh
Adodc1.Recordset.Sort = DataGrid1.Columns(ColIndex).DataField & " ASC"
Case 1:
SQL = "SELECT * FROM Table1 WHERE Left(English," & Len(Text1) & ")='" & Trim(Text1) & "'"
Adodc1.RecordSource = SQL
Adodc1.Refresh
Adodc1.Recordset.Sort = DataGrid1.Columns(ColIndex).DataField & " ASC"
با تشكر از شما

m.4.r.m
دوشنبه 23 اردیبهشت 1392, 15:27 عصر
جست و جوی اینطوری فکر نکنم درست باشه ببینید تو دیکشنری ها معمولا لغت رو مبنای جست و جو میذارن وخروجی معنای لغا میشه بعنی وقتی می نویسی OK میاره برات ( درست ، بلی ، قبول ) خوب نمیشه که شما بیای بنویسی درست ، قبول ، بلی برای شما OK رو چاپ کنه این در صورتی میشه که شما بخوای فارسی به انگلیسی و انگلیسی به فارسی داشته باشی .شما باید برای این کار ابتدا همه لغت ها رو تا علامت ، جست و جو کنی بعد مثلا اینجا رو نگاه کن یاد بگیر از رو این بنویس
http://barnamenevis.org/showthread.php?216795-%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86-%DB%8C%DA%A9-%D8%AE%D8%B7-%D8%A7%D8%B2-%DB%8C%DA%A9-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D8%B1%D8%B4%D8%AA%D9%87-%D8%A7%DB%8C-%DA%86%D9%86%D8%AF%D8%AE%D8%B7%DB%8C&highlight=%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86+%D9 %87%D8%B1+%D8%AE%D8%B7+text+box

alireza264
دوشنبه 30 اردیبهشت 1392, 23:17 عصر
با سلام و عرض احترام
اساتيد عزيز من دوتا لغت فارسي (نوشيدن , آشاميدن) در يك فيلد دارم من وقتي با دستور زير به جستجو مي پردازم كلمه نوشيدن رو كه وارد مي كنم تشخيص ميده ولي وقتي آشاميدن رو مي نويسم كلمه رو پيدا نميكنه با اينكه توي همون فيلد هستش لطفا من رو راهنمايي كنيد.

Select Case ComboBox1.ListIndex
Case 0:
SQL = "SELECT * FROM Table1 WHERE left(Persian," & Len(Text1) & ")='" & Trim(Text1) & "'"
Adodc1.RecordSource = SQL
Adodc1.Refresh
Adodc1.Recordset.Sort = DataGrid1.Columns(ColIndex).DataField & " ASC"
Case 1:
SQL = "SELECT * FROM Table1 WHERE Left(English," & Len(Text1) & ")='" & Trim(Text1) & "'"
Adodc1.RecordSource = SQL
Adodc1.Refresh
Adodc1.Recordset.Sort = DataGrid1.Columns(ColIndex).DataField & " ASC"
با تشكر از شما

با سلام
اگه می خوانی کلمات میانی در یک عبارت هم مورد نظر باشند باید از Like استفاده کنی
[VB]

"SELECT * FROM Table1 WHERE where Fieldnam Like '* آشامیدن*'
where Fieldnam Like '*'+Trim(Text1.text)+'*'
[/QUOTE]
ولی بطور کلی استفاده از دیتا بیس ها برای دیکشنری اشتباهه چون مبنای جستجو بر حسب فیلد هایی ست که کلید هستند و برای بقیه فیلدها یا عبارات عبارات درون فیلد کلید یک جستجوی خطی میشه
توصیه ای من میتونم برا بکنم اینه که
1- جدول های ایندکس یا آدرس دهی برای کلمات بساز و ابتدا درون اونها رو بگرد و این جدول خاوی سه فیلد باشند 1-دو یا سه خرف اول کلمات و 2- آدرس شروع مخدوه اون کلمان 3- پایان محدوده


و اگه بیشتر بخوای بدونی برو و مبحث فایل های چند سطحی رو یه مطالعه کن