"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Evite ce genre de code. C'est illisible.
Travaille avec des objets déclarés, ce sera beaucoup plus simple et plus lisible. Tu pourras beaucoup mieux contrôler que tes objets sont conformes à tes attentes. Perso, je privilégie de loin la lisibilité du code à ces artifices d'écriture.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 With CreateObject("Adodb.connection") .Open base * Sql = "SELECT CONCAT(ville, ' - ', 'departement',) AS clt FROM client, cnx" * With .Execute(Sql) If Not .EOF Then vartab = .get.Rows For Ligne = 0 To UBound(vartab)
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Ok alors fais ça!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 With CreateObject("Adodb.connection") .Open base
J'ai essayé mais ça ne marche pas que ce soit avec "base" ou "GenereCSTRING".
En le modifiant à chaque fois.
Le problème reste identique.
Je ne parviens pas à l'identifier.
Je suis d'accord, parti d'un problème c'est un autre qui apparait. Mais comme récupérer une requête sql dans une variable tableau passe
forcément par l'ouverture de la base (dans mon cas, maintenant c'est là que ça bloque), alors que je n'avais aucun problème pour le faire avant. Je suis désolé.
D'une façon générale, les programmeurs qui manipulent des connexions à des DB utilisent le nom ConnectionString pour définir leur chaine de connexion. Donner des noms parlants (et dans ce cas communément admis, utilisés et compris) aide évidemment à comprendre un code rien qu'en le lisant. Même si chacun utilise bien entendu les noms qu'il veut, et que utiliser base au lieur de ConnectionString ne change rien au fonctionnement du code.
Cela dit, à ce stade de la discussion, si tu t'entêtes à ne donner que la ligne de code qui bugue sans nous donner un copier-coller de ce qui est réellement utilisé, nous ne pourrons pas t'aider...![]()
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Voilà tout le code avec toujours le message d'erreur au niveau de 'Open.base
Le message d'erreur dit: [gestionnaire de pilote ODBC] source de données introuvable et nom de pilote non spécifié.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub test() Dim vartab Dim Sql As String Dim base As String base = "UID=xxxxxx;PWD=xxxxxxx;" & "Server=xxxxxxx;Database=xxxxxxx;""" With CreateObject("Adodb.connection") .Open base ' >> message d'erreur Sql = "SELECT CONCAT(ville, ' - ', numdepartement) AS art FROM client, cnx" With .Execute(Sql) If Not .EOF Then vartab = .GetRows For Lig = 0 To UBound(vartab) For Col = 0 To UBound(vartab, 2) Debug.Print vartab(Lig, Col) Next Next End If .Close End With End With End Sub
Je ne comprends pas bien pour quoi tu concatènes pour créer ta constante... Pourquoi pas
Pour le reste, si tu travaillais avec ton objet cnx plutôt qu'avec des variables volatiles dans des with... end with imbriqués, tu piloterais bien plus facilement ton appli et tu pourrais débuguer beaucoup plus facilement. (Mais bon, c'est comme pisser dans un violon...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public Const base As String = "UID=xxxxx;PWD=xxxxxx;Server=xxxxxx;Database=xxxxxxxx;")
Là, on en est à 20 messages pour un truc qui se résout en deux ou trois échanges max, simplement parce qu'à aucun moment on a un code lisible sous les yeux, et qu'au départ ta question était de passer un jeu d'enregistrement dans un tableau et que finalement, les erreurs que tu rencontres n'ont rien à voir avec ça![]()
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Il y a trop ou trop peu de " à la fin de ta chaîne... Car avec ceux que tu as, tu ouvres une chaîne à l'intérieur de ta chaine de connexion mais tu ne la referme pas
Enlèves-en deux
Code : Sélectionner tout - Visualiser dans une fenêtre à part base = "UID=xxxxxx;PWD=xxxxxxx;" & "Server=xxxxxxx;Database=xxxxxxx;"
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Partager