Bonjour à vous,
J'ai besoin d'un petit cour sur les commandes Dim et Set dans VBA. J'esseye de définir une base de donnée accès dans une macro, mais je ne comprends pas comment la définir. J'ai regardé le site de JB, il semble faire ça comme ceci :
Dim bd As Database
repertoire = ThisWorkbook.Path & "\"
Set bd = OpenDatabase(repertoire & "access2000.mdb")
Je ne comprends pas trop... J'ai esseyé ceci :
Dim bd as database
Set db = P:\comptabilite\Rapport exception\BD.mdb
Je ne comprends pas trop comment ça fonctionne...
Est ce quelqu'un peut m'apporter des précisions, je ne suis sûr de n'être plus très loin de comprendre.
Merci et bonne journée à tous.
Dim ou set
9 messages
• Page 1 sur 1
- vinc87
- Membre fidèle
- Messages: 171
- Inscription: 16 Avr 2009, 21:19
- Version Excel: 2003 FR
Re: Dim ou set
Bonjour,
Les deux instructions font la même chose en fait.
Seul petit oubli de ta part ce sont les guillemets avant et après l'instruction et le Opendatabase
Donc pour ce que tu as fait, il te faut :
Au lieu de
Pour ce qui est de la comparaison entre ta solution et l'autre. D'un coté on définit une variable qui permet de donner le chemin où se trouve ton fichier sur le disque dur
Dans ton cas cela correspond à :
En gros ton code devrait être ceci :
ou
L'avantage du Thisworkbook est que si tu déplaces ton fichier sur ton disque, ton code ira toujours ouvrir la database et ce, pour autant qu'elle soit dans le même répertoire que ton fichier bien sûr.
Amicalement
Dan
Les deux instructions font la même chose en fait.
Seul petit oubli de ta part ce sont les guillemets avant et après l'instruction et le Opendatabase
Donc pour ce que tu as fait, il te faut :
- Code: Tout sélectionner
Set Db = "P:\comptabilite\Rapport exception\BD.mdb"
Au lieu de
- Code: Tout sélectionner
Set Db = P:\comptabilite\Rapport exception\BD.mdb
Pour ce qui est de la comparaison entre ta solution et l'autre. D'un coté on définit une variable qui permet de donner le chemin où se trouve ton fichier sur le disque dur
- Code: Tout sélectionner
repertoire = ThisWorkbook.Path & "\"
Dans ton cas cela correspond à :
- Code: Tout sélectionner
P:\comptabilite\Rapport exception\
En gros ton code devrait être ceci :
- Code: Tout sélectionner
Dim bd As database
Set Db = opendatabase("P:\comptabilite\Rapport exception\BD.mdb")
ou
- Code: Tout sélectionner
Dim bd As database
repertoire = ThisWorkbook.Path & "\"
Set Db = OpenDatabase(repertoire & "BD.mdb")
L'avantage du Thisworkbook est que si tu déplaces ton fichier sur ton disque, ton code ira toujours ouvrir la database et ce, pour autant qu'elle soit dans le même répertoire que ton fichier bien sûr.
Amicalement
Dan
Nad recherche poste Assistante de Direction, Secrétaire Commerciale dans les Landes - Merci
- Nad-Dan
- Modérateur
- Messages: 7309
- Inscription: 27 Avr 2007, 15:30
- Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
- Version Excel: 2003 FR-2007 FR-MAC 2004 FR
Re: Dim ou set
Bonjour Dan,
Merci beaucoup pour les explications très clair. Je comprends mieux maitenant. Je me permet d'abuser de ton aide en voulant simplifier mon code. Je commence comme ceci :
Voici le reste du code que j'aimerais vraiment simplifier en remplancant tous les P:/comp... par bd mais je n'y arrive pas... Ce code est enregistrer à l'aide de l'enregistreur de macro lors qu'on fait une query. En espérant que tu puisses m'aider encore un peu.
Merci beacoup !!!
Merci beaucoup pour les explications très clair. Je comprends mieux maitenant. Je me permet d'abuser de ton aide en voulant simplifier mon code. Je commence comme ceci :
- Code: Tout sélectionner
Dim bd As database
repertoire = ThisWorkbook.Path & "\"
Set Db = OpenDatabase(repertoire & "BD.mdb")
Voici le reste du code que j'aimerais vraiment simplifier en remplancant tous les P:/comp... par bd mais je n'y arrive pas... Ce code est enregistrer à l'aide de l'enregistreur de macro lors qu'on fait une query. En espérant que tu puisses m'aider encore un peu.
- Code: Tout sélectionner
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=P:\comptabilite\Rapport exception\BD.mdb;DefaultDir=P:\comptabilite\Rapport exception;DriverId=25;FI" _
), Array("L=MS Access;MaxBufferSize=2048;PageTimeout=5;")), Destination:=Range _
("B4"))
.CommandText = Array( _
"SELECT Emp.NoE, Emp.Nom, Emp.Statut, Emp.Directeur, Emp.Description, Emp.`Actif-Inactif`, Emp.VP, `10`.HM, `11`.HM, `12`.HM" & Chr(13) & "" & Chr(10) & "FROM `P:\comptabilite\Rapport exception\BD`.`10` `10`, `P:\comptabilite\Rap" _
, _
"port exception\BD`.`11` `11`, `P:\comptabilite\Rapport exception\BD`.`12` `12`, `P:\comptabilite\Rapport exception\BD`.Emp Emp" & Chr(13) & "" & Chr(10) & "WHERE `10`.NoE = Emp.NoE AND `11`.NoE = Emp.NoE AND `12`.NoE = Emp.NoE A" _
, "ND ((Emp.VP='A. Bouchard'))")
Merci beacoup !!!
- vinc87
- Membre fidèle
- Messages: 171
- Inscription: 16 Avr 2009, 21:19
- Version Excel: 2003 FR
Re: Dim ou set
re
Par Edition/remplacer, essaie en remplaçant tous les
par
Veille bien à mettre un espace derrière le "&"
Dan
Par Edition/remplacer, essaie en remplaçant tous les
- Code: Tout sélectionner
P:\comptabilite\Rapport exception\
par
- Code: Tout sélectionner
repertoire &
Veille bien à mettre un espace derrière le "&"
Dan
Nad recherche poste Assistante de Direction, Secrétaire Commerciale dans les Landes - Merci
- Nad-Dan
- Modérateur
- Messages: 7309
- Inscription: 27 Avr 2007, 15:30
- Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
- Version Excel: 2003 FR-2007 FR-MAC 2004 FR
Re: Dim ou set
Merci, mais ça ne foncionne pas
Il m'indique que le fichier est pas trouvable... Mon problème c'est qu'à partir du de Array( _, j'ai le droit à 1000 caractères max alors que je dois aller chercher 1 élément dans une 20taine de table... donc trop de caractères...
J'esseye en vain de trouver une solution alternative pour conterner ce problème...
Merci beaucoup !
Amicalement,
Vincent
J'esseye en vain de trouver une solution alternative pour conterner ce problème...
Merci beaucoup !
Amicalement,
Vincent
- vinc87
- Membre fidèle
- Messages: 171
- Inscription: 16 Avr 2009, 21:19
- Version Excel: 2003 FR
Re: Dim ou set
re,
Mets un fichier en ligne avec le code que tu obtiens par l'enregistreur automatique d'excel.
Cela sera plus facile de te proposer une solution.
A te relire
Dan
Mets un fichier en ligne avec le code que tu obtiens par l'enregistreur automatique d'excel.
Cela sera plus facile de te proposer une solution.
A te relire
Dan
Nad recherche poste Assistante de Direction, Secrétaire Commerciale dans les Landes - Merci
- Nad-Dan
- Modérateur
- Messages: 7309
- Inscription: 27 Avr 2007, 15:30
- Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
- Version Excel: 2003 FR-2007 FR-MAC 2004 FR
Re: Dim ou set
Fichier, voilà un fichier Bidon, la requête ne fonctionne pas particulièrement bien, mais bon tu devrais être en mesure de comprendre quelques choses.
Merci beaucoup de ton aide.
Bonne journée !
Merci beaucoup de ton aide.
Bonne journée !
- Fichiers joints
-
Fichier - Maître_Bidon.xls- (60.5 Kio) Téléchargé 5 fois
- vinc87
- Membre fidèle
- Messages: 171
- Inscription: 16 Avr 2009, 21:19
- Version Excel: 2003 FR
Re: Dim ou set
re,
Ce que je t'ai donné avant n'est pas correct.
Peux tu m'informer sur ceci :
- Le répertoire dans lequel se trouve ton fichier c'est --> P:\comptabilite\ ?
- Le fichier excel : Rapport exception ?
- La base de données : Bd.mdb ?
A te relire
Dan
Ce que je t'ai donné avant n'est pas correct.
Peux tu m'informer sur ceci :
- Le répertoire dans lequel se trouve ton fichier c'est --> P:\comptabilite\ ?
- Le fichier excel : Rapport exception ?
- La base de données : Bd.mdb ?
A te relire
Dan
Nad recherche poste Assistante de Direction, Secrétaire Commerciale dans les Landes - Merci
- Nad-Dan
- Modérateur
- Messages: 7309
- Inscription: 27 Avr 2007, 15:30
- Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
- Version Excel: 2003 FR-2007 FR-MAC 2004 FR
Re: Dim ou set
Répértoire : P:/comptabilité/Rapport d'exception
Fichier excel : Fichier maître se retrouve dans le répértoire
Bd accès se somme BD dans le même répértoire...
Merci encore de m'aider... Je commence à être décourager.
Merci et bonne journée !
Fichier excel : Fichier maître se retrouve dans le répértoire
Bd accès se somme BD dans le même répértoire...
Merci encore de m'aider... Je commence à être décourager.
Merci et bonne journée !
- vinc87
- Membre fidèle
- Messages: 171
- Inscription: 16 Avr 2009, 21:19
- Version Excel: 2003 FR
9 messages
• Page 1 sur 1
-
- Sujets similaires
- Réponses
- Vus
- Dernier message
-
- VBA Syntaxe et Dim
par dubois » 07 Oct 2009, 13:15 - 2 Réponses
- 161 Vus
- Dernier message par dubois

07 Oct 2009, 14:25
- VBA Syntaxe et Dim
-
- VBA Conseil sur déclaration Dim
1, 2par dubois » 28 Oct 2008, 15:24 - 13 Réponses
- 909 Vus
- Dernier message par dubois

29 Oct 2008, 14:37
- VBA Conseil sur déclaration Dim
-
- VBA: problème avec la fonction Dim
par FMad » 15 Sep 2011, 17:13
- 3 Réponses
- 90 Vus
- Dernier message par Dan

18 Sep 2011, 14:13
- VBA: problème avec la fonction Dim
-
- calendrier semaine sans afficher les sam et dim
par clyver » 05 Sep 2008, 16:34 - 5 Réponses
- 689 Vus
- Dernier message par dubois

05 Sep 2008, 18:54
- calendrier semaine sans afficher les sam et dim
Utilisateurs en ligne
Utilisateurs parcourant ce forum: Banzai64, Bing [Bot], Google Adsense [Bot], Gorfael, Majestic-12 [Bot], MARGAR et 20 invités