Clause incomplète

Résolu
Signaler
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
-
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
-
Hello,



En faisant tourner ce code, j'ai une erreur de syntaxe, clause incomplète. NField et nTable sont pourtant bien reconnus. Le but est de passer en revue tous les champs d'une table.



Function contExp(sourceA As String) As Integer
fresul = FreeFile
Open App.Path & "\resultat.xls" For Input As #fresul
For j = 0 To UBound(nField)
    nField(j) = Input(LOF(fresul), fresul)
    rExpressions.Open "SELECT '" & nField(j) & "' FROM '" & nTable & "' ;", cnx
    rExpressions.MoveFirst
        Do Until rExpressions.EOF
           ../..
            rExpressions.MoveNext
       Loop
    rExpressions.Close
  Next j
Set rExpressions = Nothing
End Function

Merci à vous

14 réponses

Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Heu petite correction :

Dim bdd As New ADOX.Catalog
Dim table As ADOX.table
Dim col As ADOX.Column
Set bdd.ActiveConnection = cnx

For Each table In bdd.Tables
   rExpressions.Open "SELECT * FROM [" & table.name  & "]", cnx, adOpenDynamic, adLockOptimistic    
   
   For Each col In bdd.Tables(table.Name).Columns
      rExpressions.MoveFirst
      Do Until rExpressions.EOF
           ../..
            rExpressions.MoveNext
       Loop
   Next
   rExpressions.Close   
Next
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Si ma solution ne te plait pas (meme si elle remplit bien le but que tu recherches), essaies ceci

rExpressions.Open "SELECT [" & nField(j) & "] FROM [" & nTable & "]", cnx, adOpenDynamic, adLockOptimistic
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
étrange, ton

nField(j) = Input(LOF(fresul), fresul)

quant à ouvrir un fichier excel en mode Input, c'est du suicide
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Salut,

ca serait mieux comme ca ?
rExpressions.Open "SELECT '" & nField(j) & "' FROM '" & nTable & "' ;", cnx,adOpenDynamic, adLockOptimistic
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Perso, pour voir tous les champs de toutes les tables, je ferais

aller dans Projet, puis référence et cocher ADO Ext  

Dim bdd As New ADOX.Catalog
Dim table As ADOX.table
Dim col As ADOX.Column




Set bdd.ActiveConnection = cnx


For Each table In bdd.Tables
    For Each col In bdd.Tables(table.Name).Columns
         msgbox "table: " & table.name & "Colonne :" & col.name        
    Next
Next
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Je pense que ca serait pas mal ca,

Dim bdd As New ADOX.Catalog
Dim table As ADOX.table
Dim col As ADOX.Column


Set bdd.ActiveConnection = cnx


For Each table In bdd.Tables
   rExpressions.Open "SELECT * FROM [" & table.name  & "]", cnx, adOpenDynamic, adLockOptimistic    
   
   For Each col In bdd.Tables(table.Name).Columns
      Do Until rExpressions.EOF
           ../..
            rExpressions.MoveNext
       Loop
   Next
   rExpressions.Close   
Next
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
Renfield: j'ai supprimé cette partie, j'ai le même message
Nicko11: adOpenDynamic, adLockOptimistic ne changent rien
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
reformalise clairement ton probleme, lacomm, stp
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
ok
en fait j'ai un listbox dans lequel l'utilisateur choisit des ""variables" à analyser, qui sont en fait des champs d'une table. Ces variables sont utilisées par la fonction contExp qui parcourt les champs sélectionnés de la table sélectionnée pour des comparaisons.
Je teste la solution de nikko, mais je dois l'adapter à mon appli.
Merci de votre aide
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
Merci nicko11, ca passe !
En fait, ta solution avec catalog, table et column  ne marche pas, c'est un type non-défini par l'utilisateur, je suis un peu perdu dans ces objets. Merci encore.
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Content que ca marche.


Pour info, pourque ma solution avec catolg fonctionne, il faut que tu ailles dans Projet -> Référence Puis cocher ADO Ext 2.5 for DLL and SECURITY.


Sinon en effet, la compilation va foirer.

A+
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
1) ..cocher ADO Ext 2.5 for DLL and SECURITY.: autant pour moi, je pensais l'avoir coché mais c'est dans un autre projet.
2) ca coince sur rExpressions.Open "SELECT * FROM [" & table.Name & "]", cnx, adOpenDynamic, adLockOptimistic : objet requis
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
Ah fais voir le code car tu n'as pas du le mettre ou il faut,

tu dois avoir la déclaration de rExpressions et decnx car sinon en effet, il va te les demander.

dim cnx as new ADODB.connection
dim rExpressions as new ADODB.recordser

cnx.open taconnexion

Tu dois avoir ce bout de code quelques part non ?
Messages postés
298
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
OK impec, ca tourne aussi, encore merci