Vraag : De toegang 2007 vertraagt aan verbinding met het gegevensbestand van Oracle

Oh wisdomed de Goeroe van de Toegang op hoogte, heeft
I één of andere code die zijn lijstenverbindingen aan een orakelgegevensbestand verfrist.  Met een bepaalde bedoeling neemt het zeer oud (3 tot 5 minuten) om één of twee verbindingen te voltooien en ben ik of benieuwd kon iedereen een blik bij mijn code nemen om een verandering of een kneepje voor te stellen?

Many thanks

Ted
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:
Public Functie fncRelink () zoals lang
'functie om orakellijsten aan het gegevensbestand opnieuw te verbinden
Op Fout GoTo Err_Handler
fncRelink = 0
Schemerig Gerinkel als Koord
Gerinkel = „ODBC; DSN=ADSN; Password=MyPassword; DBQ=ADSN; DBA=W; APA=T; EXC=F; FEN=T; QTO=T; FRC=10; FDL=10; LOB=T; RST=T; BTD=F; BAM=IfAllSuccessful; NUM=NLS; DPM=F; MTS=T; MDI=F; CSR=F; FWC=F; FBS=64000; TLO=O; “
Schemerige td als DAO.TableDef
Voor Elke td in CurrentDb.TableDefs
  Als (Len (td. Verbind) > 0) toen
     Debug.Print „het Opnieuw verbinden Lijst: “ & td. Naam
     td. Verbind = Gerinkel
     td.RefreshLink
  Beëindig als
Daarna

Debug.Print „verbind Voltooid.“ opnieuw

Quit_Handler:
De Functie van de uitgang

Err_Handler:
    MsgBox Err.Description, vbInformation, „verbindt“ opnieuw
    Err.Number = 0
    Hervat Quit_Handler
Beëindig Functie

Antwoord : De toegang 2007 vertraagt aan verbinding met het gegevensbestand van Oracle

de manuscriptlooppas door ADVERTENTIE, krijgt alle distributiegroepen en voor elke één cre�ër afzonderlijk aantekenvel uitblinken en een lijst maken binnen van hun leden.
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:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
Expliciete optie

Schemerige adoCommand, adoConnection, strBase, strFilter, strAttributes
Schemerige objRootDSE, strDNSDomain, strQuery, adoRecordset, strName, groupType, groupName, iRow
Schemerige objExcel, arrMembers, strMember

'De voorwerpen van de DRUKTE van de opstelling.
Reeks adoCommand = CreateObject („ADODB.Command“)
Vastgestelde adoConnection = CreateObject („ADODB.Connection“)
adoConnection.Provider = „ADsDSOObject“
adoConnection.Open de „Actieve Leverancier van de Folder“
adoCommand.ActiveConnection = adoConnection

'Domein van de Folder van het onderzoek het volledige Actieve.
Reeks objRootDSE = GetObject („LDAP: //RootDSE“)
strDNSDomain = objRootDSE.Get („defaultNamingContext“)
strBase = ""

'Filter op distributiegroepen.
strFilter = „(objectCategory=group)“

'Komma afgebakende lijst van terug te winnen attributenwaarden.
strAttributes = „distinguishedName, lid, groupType, naam“

'Concept de LDAP syntaxisvraag.
strQuery = strBase & „; “ & strFilter & „; “ & strAttributes & „; onderverdeling“
adoCommand.CommandText = strQuery
adoCommand.Properties (de „Grootte van de Pagina“) = 100
adoCommand.Properties („Onderbreking“) = 30
adoCommand.Properties (de „Resultaten van het Geheime voorgeheugen“) = Vals

'Looppas de vraag.
Reeks adoRecordset = adoCommand.Execute

Reeks objExcel = CreateObject („Excel.Application“)
Met objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Zichtbaar = Waar

'Som het voortvloeien op recordset.
Doe tot adoRecordset.EOF
'Win waarden en vertoning terug.
strName = adoRecordset.Fields („distinguishedName“). Waarde
groupType  = adoRecordset.Fields („groupType“). Waarde
groupName  = vervang (adoRecordset.Fields („naam“). Waarde, „CN=“, "")

'krijg slechts distributiegroepen
als groupType=2 of groupType=4 of groupType=8 toen
	irow=1
	.ActiveWorkbook.Worksheets.Add
	.ActiveSheet.Name= groupName
	arrMembers = adoRecordset.Fields („lid“). Waarde

	Wscript.Echo de „Groep van de Distributie: “ & strName
	Als IsNull (arrMembers) toen
		Wscript.Echo „--  “
	Anders
		Voor Elke strMember in arrMembers
			Wscript.Echo „-- “ & strMember
			Reeks objRootDSE = GetObject („LDAP: /„&strMember)
			. De cellen (iRow, 1) = vervangen (objRootDSE.Name, „CN=“, "")
			irow=irow + 1
		Daarna
	Eind als
Eind als
'Beweging aan het volgende verslag in recordset.
adoRecordset.MoveNext
Lijn
. Kolommen (1) .entirecolumn.autofit
Eind met

'Maak schoon.
adoRecordset.Close
adoConnection.Close
Plaats objExcel = niets
Andere oplossingen  
 
programming4us programming4us