PDA

View Full Version : جست و جوی پویا با فست ریپورت



pandasoft
شنبه 13 خرداد 1396, 00:28 صبح
با سلام خسته نباشید خدمت دوستان

من یک برنامه نوشتم با استفاده VB6 و فست ریپورت که نیاز هست در اون با تغییر متن تکست باکس نتایج ریپورت هم تغییر کنه و نمایش داده بشه .کدی که نوشتم تا زمانی که سرعت تغییرات تکست باکس ! (یعنی سرعت تایپ کاربر ) کم باشه به خوبی کار میکنه اما زمانی که سرعت بیشتر بشه برنامه خطای زیر رو میده .

145395

سورس برنامه هم به شکل زیر هست.


Private Sub Text1_Change() On Error Resume Next
DoEvents
frp.EngineOptions.SilentMode = simMessageBoxes
frp.LoadReportFromFile App.Path & "\Test.fr3"

Dim Ado As New TfrxADODatabase
Dim q As New TfrxADOQuery


Set Ado = frp.FindDatabase("Ado")
Set q = frp.FindDatabase("qry")


'------------------------------------------------------------------
q.Query = "Select * from table1 where family like '" & Text1 & "%'"
'------------------------------------------------------------------

Ado.Connected = False
Ado.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Password='';User ID=Admin;Data Source=Test.mdb;Mode=Share Deny None;Extended Properties='';Jet OLEDB:System database='';Jet OLEDB:Registry Path='';Jet OLEDB:Database Password='';Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password='';Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"
Ado.LoginPrompt = False
Ado.Connected = True
frp.PreviewOptions.RTLPreview = True
frp.PrepareReport True




frv.Report = frp
frv.Unlock
End Sub





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

یا علی ممد

www.pc3enter.tk
شنبه 13 خرداد 1396, 04:26 صبح
ببین یک پیشنهاد احمقانه میتونم بهت بکنم نیازی هم به تغییر کد ات نیست, البته نخدیا

گفتی که با سرعت تایپ عادی کار می‌کنه ، ولی​ سرعت تایپ بالا نه

پس پیشنهادی که دارم اینکه بیایی سرعت پردازشو بیاری پایین
یعنی با این کد ، تست کن ببین میتونی کارت را راه بیاندازی، حالا میتونی بزاری اول کد ات. یا اخرش

For a= 1 to 30000
? a
Next a

pandasoft
شنبه 13 خرداد 1396, 10:16 صبح
ببین یک پیشنهاد احمقانه میتونم بهت بکنم نیازی هم به تغییر کد ات نیست, البته نخدیا

گفتی که با سرعت تایپ عادی کار می‌کنه ، ولی​ سرعت تایپ بالا نه

پس پیشنهادی که دارم اینکه بیایی سرعت پردازشو بیاری پایین
یعنی با این کد ، تست کن ببین میتونی کارت را راه بیاندازی، حالا میتونی بزاری اول کد ات. یا اخرش

For a= 1 to 30000
? a
Next a

ممنون ولی نه بااین روش نه حتی با دستور sleep مشکل رفع نشد.

samiasoft
سه شنبه 30 خرداد 1396, 17:12 عصر
چه نیازه حتما این کد هنگام تایپ اجرا بشه؟

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