Fråga : Ta fram långsamma 2007 för att anknyta till Oracle databas

Oh wisdomed ta fram guru'sen på kicken,
I har något att kodifiera som förnyar dess bordlägger anknyter till en orakeldatabas.  För något resonera det tar mycket en lång tid (3 till 5 noterar), att avsluta en, eller två anslutningar och I-förmiddagen som undrar, om någon kunde ta en look på mitt, kodifierar för att föreslå en ändring eller en tweak? class= " lineNumbers " >
1 för > 0) därefter
     Debug.Print ”som Relinking, bordlägger: ” & td. Känt
     td. Förbind = finka
     td.RefreshLink
  Avsluta om
Därefter

Debug.Print ”Relink avslutat.”,

Quit_Handler:
Gå ut fungerar

Err_Handler:
    MsgBox Err.Description, vbInformation, ”ReLink”,
    Err.Number = 0
    Meritförteckning Quit_Handler
Avsluta fungerar
<-/pre>

Ted
för

Many: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: class= " >Public prettyprint " för id= " codeSnippet766792 " för >
" klar "

Svar : Ta fram långsamma 2007 för att anknyta till Oracle databas

skriva kör till och med ANNONS, får alla fördelningsgrupper och för varje skapar den separata arbetssedeln överträffar och listar in deras medlemmar.
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:
Explicit alternativ

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

'Ställa in ADO anmärker.
Fastställd adoCommand = CreateObject (”ADODB.Command”)
Fastställd adoConnection = CreateObject (”ADODB.Connection”)
adoConnection.Provider = ”ADsDSOObject”,
adoConnection.Open ”aktivarkivfamiljeförsörjare”,
adoCommand.ActiveConnection = adoConnection

'För aktivarkiv för sökande helt område.
Fastställd objRootDSE = GetObject (”LDAP: //RootDSE”)
strDNSDomain = objRootDSE.Get (”defaultNamingContext”)
strBase = "",

'Filtrera på fördelningsgrupper.
strFilter = ”(objectCategory=group)”,

'Det avgränsade kommat listar av attribut värderar för att hämta.
strAttributes = ”distinguishedName, medlem, groupType som är känd”,

'Tankeskapelse LDAP-syntaxqueryen.
strQuery = strBase & ”; ” & strFilter & ”; ” & strAttributes & ”; subtree”,
adoCommand.CommandText = strQuery
adoCommand.Properties (”sida storleksanpassar”), = 100
adoCommand.Properties (”frånslagningstid”) = 30
adoCommand.Properties (”cachen resulterar”), = falskt

'Kör queryen.
Fastställd adoRecordset = adoCommand.Execute

Fastställd objExcel = CreateObject (”Excel.Application”)
Med objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Synligt = True

'Enumerate den resulterande recordseten.
Gör till adoRecordset.EOF
'Hämta värderar och skärm.
strName = adoRecordset.Fields (”distinguishedName”). Värdera
groupType  = adoRecordset.Fields (”groupType”). Värdera
groupName  = byter ut (adoRecordset.Fields (”namnge”). Värdera ”CN=”, ""),

'få endast fördelningsgrupper
om groupType=2 eller groupType=4 eller groupType=8 därefter
	irow=1
	.ActiveWorkbook.Worksheets.Add
	.ActiveSheet.Name=-groupName
	arrMembers = adoRecordset.Fields (”medlem”). Värdera

	Wscript.Echo-”fördelningsgrupp: ” & strName
	Om IsNull (arrMembers) därefter
		Wscript.Echo ”,--  ”,
	Annars
		För varje strMember i arrMembers
			Wscript.Echo ”,-- ” & strMember
			Fastställd objRootDSE = GetObject (”LDAP: /”&strMember)
			. Celler (iRow, 1) = byter ut (objRootDSE.Name, ”CN=”, "")
			irow=irow + 1
		Därefter
	Avsluta om
Avsluta om
'Flyttning till det nästa rekordet i recordseten.
adoRecordset.MoveNext
Kretsa
. Kolonner (1) .entirecolumn.autofit
Avsluta med

'Rent övre.
adoRecordset.Close
adoConnection.Close
Fastställd objExcel = ingenting
Andra lösningar  
 
programming4us programming4us