|
Vraag : de toegangsprestaties van het verhogingsgegevensbestand - MS-Access
|
|
|
Ik heb een code [in bijlage] die twee lijsten in een tijd van een toegangsgegevensbestanden neemt, waarden voor elke rij en kolom vergelijk en als het om het even welke verschillen vindt het aan user.
Unfortunately meldt het langzamer en langzamer wordt aangezien het gegevensbestand grow.
I het werkelijk snel wil en ik geen wat om weet te doen. gebruiken indien ik het Inpassen. Ik heb showDifferences van de code
Openbare Functie/>Anthony
nection) als Boolean Schemerig z vastgemaakt aangezien Integer Schemerig v, p, vname als String
z = 0
showDifferences = False 'er verscheidene lijsten zijn en één tegelijkertijd zij is in de lijst tblRecords 'b.v. vergelijkt waarden in lijst [meester] tegen die in lijst [vmaster]
voor t zoals lang = 0 bij tblRecords.Rows.Count plukt - 1 Application.DoEvents () „sluiten deze tables uit als sectionsToEculude (tblRecords. Columns („recname" ) .ColumnName) = Waar zet dan For voort als Versiering (mainver). De lengte = 0 Then tstr = „SELECTEERT * VAN [“ & tblRecords.Rows (t) („recname“) &“] „& SELECTEERT ds Else tstr = „* VAN [“ & mainver & tblRecords.Rows (t) („recname“) &“] „& ds Eind If
cm = Nieuwe OleDb.OleDbCommand cm.CommandText = tstr cm. Verbinding =/> Dr. co als dr.HasRows Then terwijl Dr. De criteria van Read =/> „concept "" criteria = Medio Versiering ((ds, 1, ds. Lengte - 1)) &“ en „ voor I als Int16 = 1 aan tblRecords.Rows (t) („nid“) als niet IsDBNull (Dr. (tblRecords.Rows (t) („identiteitskaart“ & (I - 1) .ToString))) Then als niet IsNumeric (Dr. (tblRecords.Rows (t) („identiteitskaart " & (I - 1) .ToString))) De criteria van Then = criteria & tblRecords.Rows (t) („identiteitskaart“ & I - 1) & „=““ & Dr. (tblRecords.Rows (t) („identiteitskaart " & (I - 1) .ToString)) &““ en „ Else criteria = criteria & tblRecords.Rows (t) („identiteitskaart“ & I - 1) & „=“ & Dr. (tblRecords.Rows (t) („identiteitskaart " & (I - 1) .ToString)) &“ en „/> de criteria van If Else = zijn de criteria & tblRecords.Rows (t) („identiteitskaart“ & I - 1) &“ ongeldig en „/> de criteria van If Next = Medio (criteria, 1, criteria. Lengte - 5)
als Versiering (mainver). De lengte = 0 Then tstr = „SELECTEERT * VAN [v“ & tblRecords.Rows (t) („recname“) &“] „& criteria &“; „ Else tstr = „SELECTEERT * VAN [“ & tblRecords.Rows (t) („recname“) &“] „& criteria &“; „ Eind If
'heb ik nu de volledige die SQL verklaring en de criteria aan it.
wordt toegevoegd cmd = Nieuwe OleDb.OleDbCommand cmd.CommandText = tstr cmd. De verbinding = co
Ddr = cmd.ExecuteReader als houdt tblRecords.Rows (t) („recname“) = „hoofd“ toen recordExists = Vals 'niet in verification 'lezer [Dr.] waarden voor [hoofd] 'lezer lijst [Ddr] houdt waarden voor lijst [vmaster] bijvoorbeeld
als/> recordExists ddr.HasRows Then 'controle duplicates dup1.Clear () dup2.Clear () terwijl Ddr. Read 'vergelijkt gebiedswaarde door gebiedswaarde 'als om het even welk [showDifferences] is true 'rapport voor F als Int16 = idNames.Count aan dr.FieldCount - 1 vname = dr.GetName (F) als IsDBNull verschillend is (Dr. (F)) Dan: v = niets: Anders: v = Versiering (Dr. (F)) : Eind If als IsDBNull (Ddr (vname)) Dan: p = niets: Anders: p = Versiering (Ddr (vname)) : Eind If als niet variablesToExclude (vname) Then als v<> p Then showDifferences = True Ddr. Sluit () Ddr = Nothing cmd. Schik ()/> het Eind van If Next />/> While
Else 'vertellen gebruiker of wordt het verslag niet gevonden in [vmaster] als „beheersen“ tblRecords.Rows (t) („recname“) = toen recordExists = False Eind If Ddr. Sluit () Ddr = Nothing cmd. Schik (het Eind While
Application.DoEvents () /> beëindig/> Dr. If Dr. cm. Schik () Next cmd. Schik () Eind Function
|
|
Antwoord : de toegangsprestaties van het verhogingsgegevensbestand - MS-Access
|
O.k. Aaaaahh… het probleem is dat u niet gegevenselement… allen moet verstrekken u bent aan procide de naam van de functie doet.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
|
|
|
|
|