Pergunta : Acesso 2007 lento à ligação à base de dados de Oracle

Oh wisdomed o guru do acesso na elevação,
I têm algum código que refresca suas ligações das tabelas a uma base de dados do oracle.  Por qualquer motivo toma um tempo muito longo (3 a 5 minutos) terminar uma ou dois conexões e eu estou querendo saber se qualquer um poderia olhar meu código para sugerir uma mudança ou uma emenda? class= " lineNumbers " >
1 do >

Ted
do

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: fncRelink >Public codeBody da função do " prettyprint " " do class= do id= " codeSnippet766792 do >
 0) então
     Tabela Relinking de Debug.Print “: ” & TD. Nome
     TD. Conetar = CLink
     td.RefreshLink
  Terminar se
Em seguida

Debug.Print “Relink terminado.”

Quit_Handler:
Retirar a função

Err_Handler:
    MsgBox Err.Description, vbInformation, “ReLink”
    Err.Number = 0
    Resumo Quit_Handler
Função do fim
class= > " desobstruído " de 
class= do

Resposta : Acesso 2007 lento à ligação à base de dados de Oracle

o certificado funciona através do ANÚNCIO, começ todos os grupos da distribuição e para cada um cria a folha separada dentro prima e alista seus membros.
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:
Opção explícita

adoCommand não ofuscante, adoConnection, strBase, strFilter, strAttributes
objRootDSE não ofuscante, strDNSDomain, strQuery, adoRecordset, strName, groupType, groupName, iRow
objExcel não ofuscante, arrMembers, strMember

'Objetos da DEMORA da instalação.
Ajustar o adoCommand = o CreateObject (“ADODB.Command”)
Ajustar o adoConnection = o CreateObject (“ADODB.Connection”)
adoConnection.Provider = “ADsDSOObject”
adoConnection.Open “fornecedor ativo do diretório”
adoCommand.ActiveConnection = adoConnection

'Domínio ativo inteiro do diretório da busca.
Ajustar o objRootDSE = o GetObject (“LDAP: //RootDSE”)
strDNSDomain = objRootDSE.Get (“defaultNamingContext”)
strBase = ""

'Filtro em grupos da distribuição.
strFilter = “(objectCategory=group)”

'Lista limitada vírgula de valores de atributo a recuperar.
strAttributes = “distinguishedName, membro, groupType, nome”

'Construir a pergunta da sintaxe de LDAP.
strQuery = strBase & “; ” & strFilter & “; ” & strAttributes & “; subtree”
adoCommand.CommandText = strQuery
adoCommand.Properties (de “tamanho página”) = 100
adoCommand.Properties (“intervalo de parada”) = 30
adoCommand.Properties (o “esconderijo resulta”) = falso

'Funcionar a pergunta.
Ajustar o adoRecordset = o adoCommand.Execute

Ajustar o objExcel = o CreateObject (“Excel.Application”)
Com objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Visível = retificar

'Enumerar o recordset resultante.
Fazer até adoRecordset.EOF
'Recuperar valores e exposição.
strName = adoRecordset.Fields (“distinguishedName”). Valor
groupType  = adoRecordset.Fields (“groupType”). Valor
o groupName  = substitui (adoRecordset.Fields (“nome”). Valor, “CN=”, "")

'começ somente grupos da distribuição
se groupType=2 ou groupType=4 ou groupType=8 então
	irow=1
	.ActiveWorkbook.Worksheets.Add
	groupName de .ActiveSheet.Name=
	arrMembers = adoRecordset.Fields (“membro”). Valor

	Grupo distribuição de Wscript.Echo da “: ” & strName
	Se IsNull (arrMembers) então
		Wscript.Echo “--  ”
	Mais
		Para cada strMember nos arrMembers
			Wscript.Echo “-- ” & strMember
			Ajustar o objRootDSE = o GetObject (“LDAP: /“&strMember)
			. As pilhas (iRow, 1) = substituem (objRootDSE.Name, “CN=”, o "")
			irow=irow + 1
		Em seguida
	Terminar se
Terminar se
'Mover-se para o registro seguinte no recordset.
adoRecordset.MoveNext
Laço
. Colunas (1) .entirecolumn.autofit
Extremidade com

'Limpar.
adoRecordset.Close
adoConnection.Close
Ajustar o objExcel = nada
Outras soluções  
 
programming4us programming4us