Le grenier Access

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

vendredi 9 juillet 2010

Sauvegardes datées

Je souhaiterais automatiser la sauvegarde de ma base de données, en dupliquant le fichier MDB de temps en temps. Pour différencier les sauvegardes, l'idéal serait de dater chaque copie. Comment faire ?

 

Lire la suite...

mercredi 5 septembre 2007

Installer une base en réseau

Comment faire en sorte qu'une base de données soit partagée par plusieurs utilisateurs sur un réseau ?

Pour travailler en réseau sur une base Access, il est indispensable de scinder cette base en deux parties :

  • Un premier fichier MDB (ou ACCDB sur Access 2007) contient les tables et les relations.
    Ce fichier est souvent appelé "base dorsale" ou "back-end", et est installé dans un dossier partagé du serveur.
  • Un second fichier (la "base frontale", ou "front-end") contient tous les autres objets.
    Il est installé sur le poste de chaque utilisateur.

Les avantages

  • Lorsqu'un utilisateur doit renseigner un formulaire, par exemple, il charge cet objet à partir de sa propre machine, et non à partir du réseau. D'où une charge moins importante pour le réseau.
  • Il est plus facile, pour le concepteur de la base, de travailler sur sa propre version de la base frontale (pour ajouter un formulaire, un état), sans que cela bloque le travail des autres utilisateurs.
Info
Pour plus de détails sur la scission d'une application en deux, consultez le tutorial Mise en réseau d'une base Access, sur self-access.com.

mardi 4 septembre 2007

Mode Exclusif

Ma base est ouverte en mode exclusif. Qu'est-ce que ça signife ?

Lorsqu'une base est ouverte en mode exclusif, un seul utilisateur (celui qui a ouvert la base) peut travailler dessus. Certaines commandes - de maintenance notamment - ne sont possibles que dans ce mode.

Pour ouvrir une base en mode exclusif...

  1. Démarrez Access.
  2. Faites Fichier / Ouvrir.
  3. Sélectionnez la base de données qui vous intéresse.
  4. Cliquez sur le bouton fléché à droite du bouton Ouvrir.
  5. Cliquez enfin sur l'option Ouvrir en exclusif.


Le bouton Ouvrir "simple" permet d'ouvrir la base en mode partagé, donc non exclusif.

Mode exclusif et mode Création

Lorsque vous basculez en mode Création sur un objet (une table ou un formulaire), Access bascule automatiquement en mode exclusif. Ce qui empêche d'autres personnes de travailler sur la base. C'est une des raisons pour lesquelles il est conseillé de diviser une application Access en deux : la base "dorsale" contenant les tables et les relations, et la base "frontale" contenant les autres objets, comme si vous travailliez en réseau.

Info
Pour plus de détails sur la scission d'une application en deux, consultez le tutorial Mise en réseau d'une base Access, sur self-access.com.

lundi 3 septembre 2007

Fichiers MDE avec Access 2002 et suivants

Je n'arrive pas à convertir une base Access 2002 en fichier .mde : l'option Créer un fichier MDE est grisée dans le menu Outils / Utilitaires de base de données.

Access 2002 travaille "nativement" avec le format de bases de données Access 2000, mais ne peut convertir ce format en fichier .mde. En d'autres termes, il faut que votre fichier .mdb soit converti au format 2002.

Avant de faire Outils / Utilitaires de base de données / Créer un fichier MDE, cliquez sur le menu Outils / Utilitaires de base de données / Convertir une base de données / Vers le format de fichiers Access 2002.

Suppression à distance

Une base de données peut-elle supprimer les objets (tables, requêtes, formulaires, etc.) d'une autre base de données ?

Le code

Ca devrait marcher avec une petite touche d'Automation :o)...
Recopiez tout d'abord le code suivant dans un module standard de votre base de données principale.

' ---
' SUPPRESSION D'UN OBJET D'UNE AUTRE BASE DE DONNEES
' ---
' Entrée : strBase     <- Chemin complet de la base à traiter
'          strNom      <- Nom de l'objet à supprimer dans ladite base :-)
'          otTypeObjet <- Type d'objet (à choisir dans une liste déroulante)
' Sortie : True si la suppression a réussi, False sinon.
'
Function SuppressionObjetDistant( _
  ByVal strBase As String, _
  ByVal strNom As String, _
  ByVal otTypeObjet As AcObjectType)
Dim acApp As Access.Application

' Vérifier que la base à traiter existe
On Error GoTo SODErr
If Dir(strBase) = "" Then
  MsgBox "La base [" & strBase & "] est introuvable !", vbExclamation
  SuppressionObjetDistant = False
  Exit Function
End If

' Ouvrir une nouvelle instance d'Access
Set acApp = GetObject(strBase)

' Sélectionner et supprimer l'objet
acApp.DoCmd.DeleteObject otTypeObjet, strNom

' On ferme !
acApp.Quit
Set acApp = Nothing
SuppressionObjetDistant = True
Exit Function

SODErr:
  MsgBox "Erreur " & Err.Number & vbCrLf & Err.Description, vbCritical
  SuppressionObjetDistant = False
  Exit Function
End Function

Tester le programme

Pour tester la commande, faites par exemple apparaître la fenêtre Exécution (Ctrl+G) et tapez-y :

? SuppressionObjetDistant("le chemin d'une base de données", "le nom d'une table", acTable)
...puis [Entrée] pour valider.

Vous pouvez bien sûr associer le code à un bouton de commande pour automatiser tout ça !

Raccourci Windows

Comment créer et paramétrer un raccourci Windows pointant vers la base de données ?

Un raccourci Windows présente plusieurs intérêts :

  • Placé sur le bureau Windows, il permet d'ouvrir rapidement votre base de données.
  • Le raccourci peut être complété de certains paramètres qui influent sur l'ouverture de la base.

Lire la suite...

dimanche 2 septembre 2007

Impossible MDE !

Je souhaiterais protéger une partie de ma base de données en la convertissant en fichier MDE, mais ça ne marche pas. Pourkoâ ?

Un fichier MDE est un fichier dont le code source Visual Basic a été supprimé. Le retour en arrière est impossible (conservez toujours votre original au format MDB).

La conversion en fichier MDE se fait via le menu Outils / Sécurité / Créer un fichier MDE. En général, si cette conversion échoue, c'est qu'il y a du code Visual Basic incorrect dans la base de données MDB. Pour le vérifier :

  1. Démarrez Access et ouvrez votre base de données.
  2. Si vous êtes sur Access 97, cliquez sur l'onglet Modules puis sur le bouton Nouveau (à moins que vous n'ayez déjà un module VBA, qu'il suffit dans ce cas d'ouvrir). Vous pouvez faire de même avec les versions 2000 et suivantes d'Access, ou simplement ouvrir Visual Basic Editor par Alt+F11.
  3. Cliquez sur le menu Débogage puis sur l'option Compiler.

Le compilateur s'arrêtera sur toute erreur qui peut empêcher un fonctionnement optimal de la base de données. Corrigez ces erreurs jusqu'à ce que la compilation passe. A partir de là, vous pourrez retenter d'effectuer une conversion au format MDE.

Trop de sécurité !

J'ai sécurisé une base Access. Le problème est que toutes mes autres bases sont verrouillées et qu'un mot de passe m'est demandé à chaque démarrage.

La sécurité est gérée par un fichier .mdw. C'est dans ce fichier que sont définis les groupes et les utilisateurs pouvant accéder à une base. Lorsque vous mettez en place la sécurité, vous associez une base de données à un fichier .mdw précis. L'association peut se faire de deux manières :

Vous associez Access tout entier à un fichier .mdw

Dans ce cas, Access ("tout entier") est connecté à un fichier .mdw sécurisé, il demande donc une identification à chaque démarrage. Ca ne signifie pas pour autant que toutes les bases sont verrouillées !

Cette association est établie via l'Administrateur de Groupe de travail (disponible dans le menu Démarrer / Programmes ou dans le dossier d'installation d'Access - cherchez wrkgadm.exe). A partir d'Access 2002, l'option est disponible directement depuis Outils / Sécurité.

Vous associez uniquement une base de données au fichier .mdw

Dans ce cas, seule la base concernée demande une identification au démarrage. Les autres continuent de fonctionner avec le fichier standard system.mdw. Dans ce second cas, l'association base / groupe de travail se fait au niveau du raccourci Windows.

3 options de ligne commande sont disponibles (consultez l'aide d'Access pour les détails) :

  • /wrkgrp définit le groupe de travail,
  • /user définit l'utilisateur par défaut, si nécessaire,
  • /pwd définit le mot de passe par défaut, si nécessaire aussi (ne pas abuser : un mot de passe en clair dans un raccourci n'est pas ce qu'on fait de mieux !).
Info
Pour plus de détails sur la création d'un raccourci Windows, lisez cet article du blog.

Conseils

  • Lorsque vous définissez des groupes et des utilisateurs, faites-le dans un fichier .mdw spécifique, pas dans le fichier system.mdw livré avec Access. Ca vous évitera justement de tout sécuriser !
  • Avant d'appliquer des procédures de sécurité (sécurité utilisateur, mots de passe, conversion .mde et ce genre de joyeusetés), n'oubliez pas de faire une copie de vos bases d'origine.
  • Consultez ces pages Sécurité pour plus de détails.

Conversions de bases de données

Comment convertir une base Access 97 en 2000, ou 2000 en 2002 et inversement ?

Convertir une base de données vers une version plus récente d'Access

D'une manière générale, lorsque vous passez d'un Access ancien à un Access plus récent, il suffit d'ouvrir le fichier .mdb dans votre nouveau logiciel. Par exemple, vous passez d'Access 97 à Access 2000 :

  1. Ouvrez le fichier .mdb (97) dans Access 2000.
  2. Une boîte de dialogue vous demande si vous souhaitez valider la base de données ou la convertir.
  • Optez pour la première solution si vous souhaitez travailler sur la base en conservant l'ancien format (97). Dans ce cas, toutes les opérations ne seront pas autorisées, mais le format restera inchangé.
  • Faites le second choix pour convertir la base au format 2000.

Revenir à une version antérieure d'Access

  1. Ouvrez le fichier .mdb dans Access 2000 ou 2002.
  2. Cliquez sur le menu Outils / Utilitaires de base de données / Convertir une base de données.
  3. Choisissez enfin le format de destination (Access 97, 2000 voire 2002).
Note
Cette opération de "retour en arrière" n'existe que dans Access 2000 et 2002, 2003 et 2007. Par ailleurs, il faut un peu s'en méfier : revenir à une version antérieure signifie parfois perdre certaines fonctionnalités des versions récentes.

Sécurité

Comment protéger ma base de données ?

Vaste sujet ! Plusieurs techniques peuvent être envisagées (définir des options de démarrage, convertir la base en fichier MDE), mais la plus complète - et complexe - consiste à passer par les notions de "sécurité utilisateur". Consultez cette page pour plus de détails.

- page 1 de 2