PDA

View Full Version : سوال: استفاده درست از عملگر like در متد Ado و Dao



atf1379
شنبه 10 خرداد 1399, 00:01 صبح
سلام
برای فیلترکردن رکورست با استفاده از عملگر like در متد Ado در یک Continuous Forms بصورت زیر عمل می کنم ولی خطای تصویر ضمیمه صادر میشود



Set rst = New ADODB.Recordset
With rst
.ActiveConnection = Con
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open sql, Con, adCmdText
.Filter = "[IDNum] like '*" & Me.TxtNum & "*'"
End With
Set Me.Recordset = rst


بجای * از % استفاده می کنم ولی همین خطا صادر میشود
ممنون میشوم راهنمائی بفرمائید

mohammadsaleh
شنبه 10 خرداد 1399, 08:57 صبح
اگر داده فیلد IDNum عددی است لازم نیست از علامت ' استفاده کنید

atf1379
شنبه 10 خرداد 1399, 15:20 عصر
اگر داده فیلد IDNum عددی است لازم نیست از علامت ' استفاده کنید

لازم بودنش که حتمی

amirzazadeh
یک شنبه 11 خرداد 1399, 19:40 عصر
Like N'" & "%" & Me.TxtNUM.Text & "%"
با سلام به اين شكل امتحان كنيد.

atf1379
یک شنبه 11 خرداد 1399, 22:44 عصر
Like N'" & "%" & Me.TxtNUM.Text & "%"
با سلام به اين شكل امتحان كنيد.
سلام جناب استاد amirzazadeh (https://barnamenevis.org/member.php?47888-amirzazadeh)

امتحان کردم جواب نداد
راستش من از بکار بردن این یک خط کد مربوط به فیلتر کردن در اون قسمت کدها که در پست 1 درج کرده ام منصرف شده و آنرا در قسمت شرط کد اسکیول در داخل متغیر sql قرار دادم
و حالا برای فیلتر کردن رکوردست در ایونت ON Change وقتی سابروتین را صدا میزنم فیلتر انجام میشه ولی کرسر به تکست باکس مربوط به فیلتر کردن بر نمی گردد هر چند در خط آخر کد مربوطه را نوشته ام


با این کد عمل فیلتر انجام نمیشه


Dim s As String, z As Integer
Dim vSearchString As String
vSearchString = TxtSearcher1.Text
z = TxtSearcher1.SelStart
TxtSearcher1 = vSearchString

me.Refresh


TxtSearcher1.SelStart = z


با این کد عمل فیلتر با درج اولین عدد در تکست باکس انجام میشه ولی کرسر برای درج بقیه عدد ناپدید میشود باتوجه به اینکه فوکوس بر روی تکست باکس TxtSearcher1 می باشد .



Dim s As String, z As Integer
Dim vSearchString As String
vSearchString = TxtSearcher1.Text
z = TxtSearcher1.SelStart
TxtSearcher1 = vSearchString

call ........

TxtSearcher1.SelStart = z


در جلوی Call نام سابروتینی که مربوط به باز کردن رکوردست است و در پست اول نوشتم وارد میکنم
درواقع

eb_1345
دوشنبه 12 خرداد 1399, 21:58 عصر
و حالا برای فیلتر کردن رکوردست در ایونت ON Change وقتی سابروتین را صدا میزنم فیلتر انجام میشه ولی کرسر به تکست باکس مربوط به فیلتر کردن بر نمی گردد هر چند در خط آخر کد مربوطه را نوشته ام



سلام
مطمئناً اگر کدها را در جای خودشان بدرستی بکار برده باشید نباید مشکل خاصی ایجاد شود . بالاخره وقتی شما سابروتین مربوطه را فرا میخوانید بعد از آن باید کرسر در همان کنترل فعال ظاهر شود و اگر ظاهر نمی شود با بکار بردن قطعه کد MsgBox Screen.ActiveControl.Name بعد از همان تیکه کدی که برای فراخوانی سابروتین درج کرده اید امتحان کن که کنترل فعال کدام است
اگر همچنان مشکلت بقوت خود باقی بود میتوانید بعد از همان کد پیغام خالی ایجاد و با با عبارت SendKeys "{enter}"
از ظاهر شدن پیغام جلوگیری کنید .
اجرای پیغام در واقع کرسر را وادار به نمایش می کند



Dim s As String, z As Integer
Dim vSearchString As String
vSearchString = TxtSearcher1.Text
z = TxtSearcher1.SelStart
TxtSearcher1 = vSearchString

call ........

TxtSearcher1.SelStart = z
SendKeys "{enter}"
MsgBox ""








موفق باشی

atf1379
سه شنبه 13 خرداد 1399, 11:09 صبح
سلام
مطمئناً اگر کدها را در جای خودشان بدرستی بکار برده باشید نباید مشکل خاصی ایجاد شود . بالاخره وقتی شما سابروتین مربوطه را فرا میخوانید بعد از آن باید کرسر در همان کنترل فعال ظاهر شود و اگر ظاهر نمی شود با بکار بردن قطعه کد MsgBox Screen.ActiveControl.Name بعد از همان تیکه کدی که برای فراخوانی سابروتین درج کرده اید امتحان کن که کنترل فعال کدام است
اگر همچنان مشکلت بقوت خود باقی بود میتوانید بعد از همان کد پیغام خالی ایجاد و با با عبارت SendKeys "{enter}"
از ظاهر شدن پیغام جلوگیری کنید .
اجرای پیغام در واقع کرسر را وادار به نمایش می کند



Dim s As String, z As Integer
Dim vSearchString As String
vSearchString = TxtSearcher1.Text
z = TxtSearcher1.SelStart
TxtSearcher1 = vSearchString

call ........

TxtSearcher1.SelStart = z
SendKeys "{enter}"
MsgBox ""








موفق باشی


سلام
ایده جالبی بود ، با کد MsgBox Screen.ActiveControl.Name مشخص شد کنترل فعال همان تکست باکسی است که در آن عمل فیلتر رکوردها انجام میشه که با آن مسیج باکس و کد SendKeys "{enter}" مشکل حل شد .ولی بقول شما به احتمال زیاد دلیل ناپدیدشدن کرسر و مشخص نبودن کنترل فعال بر میگرده به اشکال در کد نویسی من که باید سرفرصت بطور اساسی کدهارا چک کنم
ممنون

atf1379
چهارشنبه 02 مهر 1399, 23:49 عصر
..............................