Le grenier Access

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 10 mars 2010

Séquence aléatoire

Question posée sur le forum self-access.com : comment générer automatiquement une séquence aléatoire de la forme 110 23459 875 ? Avec les espaces toujours au même emplacement ?

Lire la suite...

lundi 22 février 2010

Commandes macros manquantes dans Access 2007

Que sont devenues les commandes Avertissements et Echo dans les macro Access 2007 ?

Sous Access 2007, certaines commandes macros - comme Avertissements et Echo - sont considérées comme plus sensibles (en ce qui concerne la sécurité). Elles sont par conséquent masquées par défaut.

Pour les rétablir, cliquez sur l'icône du ruban appelée Afficher toutes les actions.

Cette icône est présente sur le ruban lorsque vous êtes en mode d'écriture de macro (cf. illustration ci-contre). C'est tout !

jeudi 18 février 2010

Banque d'images : compléter la liste d'images

On continue la série Gérer une banque d'images sur Access (cliquez ici pour consulter la liste des articles de cette saga, bientôt autant d'épisodes que dans les Feux de l'Amour, une référence !).

Dans l'article Alimenter une banque d'images automatiquement, je donnais un bout de code qui recense les images d'un dossier et stocke leur chemin dans une table Access. Mais ce code VBA recense systématiquement tout le dossier à chaque fois. En d'autres termes, si vous lancez le programme 2 fois sur le même dossier, vous obtenez 2 fois la même liste d'images dans la table.

Dans cet article, vous trouverez une version améliorée : cette fois, le programme n'indexe les images qu'une seule fois dans le dossier (en se basant uniquement sur le nom du fichier Image et le chemin du dossier). A la fin de la procédure, il signale le nombre d'images recensées, et éventuellement le nombre de doublons ignorés.

Lire la suite...

dimanche 10 janvier 2010

Changer la date système sur Windows Vista ou Windows 7

J'essaie d'utiliser l'instruction Date pour modifier la date système de mon ordinateur. Ça fonctionne sur Windows XP, mais pas sur Windows Vista ni Windows 7. Pourquoi ?

Lire la suite...

mardi 15 décembre 2009

Obtenir le dernier NuméroAuto attribué

J'exécute une instruction SQL de type INSERT pour ajouter des lignes dans une table. La clef primaire de cette table est un NuméroAuto. Comment connaître la valeur du NuméroAuto qui vient d'être inséré ?

Lire la suite...

mardi 8 décembre 2009

Lister les pièces jointes Access 2007 en VBA

Dans l'article Gérer les pièces jointes avec Access 2007, vous avez vu comment stocker des pièces jointes dans un fichier Access 2007 au format ACCDB. Voici comment obtenir la liste de ces pièces jointes en VBA.

Lire la suite...

samedi 5 décembre 2009

Gérer les pièces jointes avec Access 2007

Access 2007 propose, au niveau de la table, un nouveau type de données : le type Pièce jointe. Ce champ se comporte comme les pièces jointes d'un message électronique : il peut stocker plusieurs pièces jointes, de manière très simple, et permettre leur ouverture directement dans l'application d'origine (Word, Excel, ou autre). Le champ Objet OLE a du souci à se faire :-)

Cet article montre comment se servir du champ Pièce jointe.

 

Lire la suite...

mercredi 25 novembre 2009

Liste des requêtes

Comment obtenir la liste de toutes les requêtes de la base de données ?

Lister les requêtes de la base de données

Voici une petite procédure VBA qui devrait faire l'affaire (à taper dans un module standard) :

Sub ListeRequetes()
  Dim db As DAO.Database
  Dim qdf As DAO.QueryDef
 
  Set db = CurrentDb
  For Each qdf In db.QueryDefs
    Debug.Print qdf.Name
  Next
 
  Set db = Nothing
End Sub

Tester

Pour tester, ouvrez la fenêtre de debug (CTRL + G), et tapez-y :
ListeRequetes et appuyez sur la touche [Entrée].

Vous obtiendrez la liste de toutes les requêtes de votre base.

Info
Ajoutez un Debug.Print qdf.SQL dans la boucle For/Next pour afficher également le code SQL de la requête.
Important
L'exemple de code ci-dessus fait appel à la bibliothèque DAO (Microsoft DAO Object Library). Cette bibliothèque doit être associée à votre base de données pour que le programme fonctionne.
 
Pour plus de détails sur les références, consultez cette page.

Ne pas lister les requêtes obsolètes

Avec la méthode ci-dessus, vous obtenez toutes les requêtes, y compris certaines inutiles, dont le nom démarre par le signe "~". Vous pouvez les éliminer de cette manière :

Sub ListeRequetesStandard()
  Dim db As DAO.Database
  Dim qdf As DAO.QueryDef
 
  Set db = CurrentDb
  For Each qdf In db.QueryDefs
    If Left(qdf.Name, 1) <> "~" Then
      Debug.Print qdf.Name
    End If
  Next
 
  Set db = Nothing
End Sub

Dans la même série

mercredi 18 novembre 2009

Imprimer plusieurs étiquettes identiques en nombre variable

Dans l'article Imprimer plusieurs étiquettes identiques, il était question d'imprimer des étiquettes Clients en exemplaires multiples, mais le nombre d'exemplaires était le même pour tous les clients. Dans cette page, on va aménager le principe pour que le nombre d'étiquettes puisse varier selon le client. De cette manière, vous allez pouvoir imprimer 3 étiquettes pour le client Tartempion, et 7 pour le client Trucmuche.

Lire la suite...

mardi 17 novembre 2009

Imprimer plusieurs étiquettes identiques

A partir d'un état qui imprime une planche d'étiquettes, comment faire en sorte que chaque étiquette soit imprimée plusieurs fois ?

Lire la suite...

- page 1 de 27