2012-07-31 16 views
6

Abbiamo recentemente modificato il nostro server di database SQL e mi chiedevo se ci sarebbe stato uno script o un metodo più semplice per aggiornare tutte le stringhe di connessione file di Excel?Massa aggiornamento stringa di collegamento file Excel

Sarebbe stato molto più facile se avessero usato un file di connessione, ma purtroppo erano tutti impostati manualmente e abbiamo circa 600 rapporti ...

Qualsiasi aiuto è molto apprezzato.

Grazie

Nick

+1

È possibile utilizzare la collezione 'Workbook.Connections' a loop su tutte le connessioni in una cartella di lavoro –

risposta

2

Sì, è possibile ... si fa un programma in C# o vb.net che loop cittadi tutti i 600 documenti e apre i documenti e utilizzando

oModule = oBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule) 
    oModule.CodeModule.AddFromString(sCode) 

e a seconda della configurazione nella variabile sCode si dispone di una macro che scorre Excel.Connections o

For Each wks In ActiveWorkbook.Worksheets 
     For Each qt In wks.QueryTables 
     With qt 
      .Connection ="myconnstring" 
     End With 
     Next qt 
    Next wks 
0

Volevo fare la stessa identica cosa e mi sono imbattuto in questo strumento chiamato XLODCTool da here.

Collegamento file here.

Consente di modificare i valori di massa all'interno di una stringa di connessione, ad es.

DSN Da SERVERA-SERVERB

0

Sulla base di soluzione Archlight, la macro è il seguente:

Sub UpdateConnectionsString_Click() 
    For Each wks In ActiveWorkbook.Worksheets 
     For Each qt In wks.QueryTables 
      With qt 
      'Debug.Print .Connection 
      .Connection = Replace(.Connection, "bla.com", "localhost") 
      End With 
     Next qt 
    Next wks 
End Sub 
Problemi correlati