2017-09-21 2 views
0
  1. Je crée plage nommée qui couvre les données que je besoin d'interroger à l'aide ADODBVBA: Interrogation des données dans la plage nommée dynamique

    SourceWB.Names.Add Name:=SOME_RANGE_NAME, RefersTo:=SOME_RANGE 
    
  2. je configurer une requête SQL exécuter de connexion

    sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sSourceName_ & "; Extended Properties=""Excel 12.0 Macro;HDR=YES"";" 
    Set oConn_ = New ADODB.Connection 
    oConn_.Open sConn 
    
    Dim oRs As New ADODB.Recordset 
    oRs.Open sSQL, oConn_, adOpenStatic, adLockReadOnly, adCmdText 
    

La requête SQL est

SELECT * FROM [SOME_RANGE_NAME] WHERE .... 

Le problème est: ces commandes sont en cycle, où chaque fois il peut y avoir une autre plage référencée par SOME_RANGE_NAME. Si la plage change dans une feuille, tout va bien. Dès les références SOME_RANGE_NAME vont dans d'autres feuilles, je reçois l'erreur suivante:

no value given for one or more required parameters

Répondre

0

La solution était la fermeture des connexions!