Vraag : versnel findfirst met vraagdefinitie

Ik heb Toegang 2007 als vooreind en SQL Server 2008 als achterste deel.  Ik gebruikend…
Set rs = Me.RecordsetClone
rs.findfirst etc
Since het ik was veranderd in een vraagdefinitie met parameters.
Should niet werkelijk langzaam was die sneller is?   Bekijk te vertellen omdat in mijn geval het not.
Can u is gelieve mijn code in bijlage en me wat ik verkeerd?  Het schijnt eigenlijk te werken maar het is nog zeer slow.
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
van
Private SubcboEvalDate_AfterUpdate () 'Raadpleging door datum
        Schemerige db als DAO.Database
        Schemerige qd als DAO.QueryDef
        Schemerige rs als DAO.Recordset
        Vastgesteld db = CurrentDb ()
        Vastgesteld qd = db.QueryDefs! qryEvaluation
        qd. Parameters! ClientFileNo = txtClientFileNo
        qd. Parameters! WorkstationID = txtWorkstationID
        qd. Parameters! EvalDate = cboEvalDate.Text
        Reeks rs = qd.OpenRecordset
               Als bNewRevu = Waar toen 'dit als 021108 4:00
            Vraag AddEvalRcd 'als het toevoegen van 1st datum/eval aan een werkstation
            bNewRevu = Vals
            cboName.Value = verklaar nietig
            cboWorkstation.Value = verklaar nietig
            cboEvalDate.Value = verklaar nietig
            DoCmd.GoToControl „fsubEvalService“
            Sub van de uitgang
        Anders
            'zeer langzaam hier bij de raadpleging 
            rs.FindFirst „[ClientFileNo] & [WorkstationID] & [EvalID] =“ & txtClientFileNo & txtWorkstationID & cboEvalDate.Value
         Eind als
Related Oplossingen: rsFind eerst slechts als NoMatch vertraagt

Antwoord : versnel findfirst met vraagdefinitie

Zo vindt wat wij hier doen het verslag in huidige recordset door het voorwerp te gebruiken RecordsetClone.  Zodra het verslag wordt gevonden plaatsen wij de vormreferentie om het zelfde te zijn als de recordsetreferentie zodat zal de vorm het gewenste verslag tonen.  Er zijn een paar dingen zoals wat te overwegen als er unsaved veranderingen op de vorm zijn wanneer de gebruiker de combodoos selecteert.  U kunt sparen verslagbevel aan dat deel van sub toevoegen of u kunt voor het testen en iets anders doen.  Ook, wat gebeurt als een gelijke niet wordt gevonden?  Dit kan of kan geen mogelijkheid zijn op uw vormontwerp dat wordt gebaseerd.  Bekijk het voorbeeld van Allen Browne voor insite http://allenbrowne.com/ser-03.html

Privé SubcboEvalDate_AfterUpdate () 'Raadpleging door datum
        Schemerige db als DAO.Database
        Schemerige qd als DAO.QueryDef
        Schemerige rs als DAO.Recordset, rsFind als DAO.Recordset
        Vastgesteld db = CurrentDb ()
        Vastgesteld qd = db.QueryDefs! qryEvaluation
        qd. Parameters! ClientFileNo = txtClientFileNo
        qd. Parameters! WorkstationID = txtWorkstationID
        qd. Parameters! EvalDate = cboEvalDate.Text
        Reeks rs = qd.OpenRecordset
        Als bNewRevu = Waar toen 'dit als 021108 4:00
            Vraag AddEvalRcd 'als het toevoegen van 1st datum/eval aan een werkstation
            bNewRevu = Vals
            cboName.Value = verklaar nietig
            cboWorkstation.Value = verklaar nietig
            cboEvalDate.Value = verklaar nietig
            DoCmd.GoToControl „fsubEvalService“
            Sub van de uitgang
        Anders
            'sta gebruiker toe om uit dropdown te selecteren (gebruikend EvalID)
            'zeer langzaam hier bij de raadpleging 7/12/10
            'rs.MoveFirst

            Reeks rsFind = Me.RecordsetClone
                'veronderstelt ClientFileNo en WorkstationID is tekstgebieden.  Verwijder omringende citaten (Chr (34)) als één van beiden numeriek is
            rsFind.FindFirst „EvalDate = #“ & Me.cboEvalDate & „# en ClientFileNo =“ & Chr (34) & Me.txt ClientFileNo & Chr (34) & „en WorkstationID =“ & Chr (34) & Me.txt WorkstationID & Chr (34)
                'plaats de vormleeswijzer aan de recordsetreferentie
            Me.Boolmark = rsFind.Bookmark
            Reeks rsFind = niets

         Eind als

OM Troep
Andere oplossingen  
 
programming4us programming4us