Clause incomplète

Résolu
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 24 mai 2007 à 09:51
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 24 mai 2007 à 12:20
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

cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
24 mai 2007 à 10:33
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
3
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
24 mai 2007 à 10:54
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
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 mai 2007 à 10:17
étrange, ton

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

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

ca serait mieux comme ca ?
rExpressions.Open "SELECT '" & nField(j) & "' FROM '" & nTable & "' ;", cnx,adOpenDynamic, adLockOptimistic
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
24 mai 2007 à 10:25
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
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
24 mai 2007 à 10:31
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
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
24 mai 2007 à 10:38
Renfield: j'ai supprimé cette partie, j'ai le même message
Nicko11: adOpenDynamic, adLockOptimistic ne changent rien
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 mai 2007 à 10:43
reformalise clairement ton probleme, lacomm, stp
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
24 mai 2007 à 10:48
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
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
24 mai 2007 à 11:03
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.
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
24 mai 2007 à 11:22
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+
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
24 mai 2007 à 11:50
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
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
24 mai 2007 à 12:05
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 ?
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
24 mai 2007 à 12:20
OK impec, ca tourne aussi, encore merci
0
Rejoignez-nous