Parfois, vous avez besoin d'exécuter une succession de requêtes de mise à jour.
Une transaction permet, lorsqu'elle est ouverte, de lancer ces requêtes une-à-une et de valider ou annuler le résultat à la fin.
Imaginez, qu'une requête échoue au milieu de la transaction, il ne faut pas que les modifications apportées par les autres requêtes soient enregistrées,
au risque de corrompre l'ensemble des données. Vous devez donc annuler la transaction (rollback). En revanche, si tout s'est bien passé, vous pouvez la valider (commit).
Ton problème est que tu dois avoir une erreur dans un de tes modules.
Ouvres tes modules un à un puis compile les.
Attention également aux erreurs dues au mélange de versions des formats de base de données. Ainsi, par exemple, bien que Access 2002 sache travailler nativement avec des fichiers MDB au format Access 2000, il ne peut convertir en MDE que les fichiers MDB 2002......
Il faut posséder pour cela la version Microsoft Office développeur, dans laquelle on trouvera le Runtime Microsoft® Access®, qui est une version de MS-Access n'ayant aucun outil de création ou de modification, qui ne permet donc que l'exploitation de bases de données existantes.
Il faut se logger en tant qu'utilisateur : pour chaque mot de passe que vous voulez changer, vous devez vous logger avec le login de l'utilisateur et son mot de passe. Ensuite vous changez le mot de passe (outils/sécurité/gestion.../changer le mot de passe en vérifiant que ce soit le bon
utilisateur).
Ce bug de l'installation d'Access 2000 est répertorié sur le site de Microsoft.
La résolution se trouve décrite sur leur site à l'URL : http://support.Microsoft.com/default.aspx?scid=kb;fr;249065&Product=acc2000Fra
Là dessus, regardez dans ..\Fichiers Communs\... si vous ne trouvez pas dans ...\Common Files\... et dans ...\1036 à la place de ...\1033.
TRANSFORM First(IIf([ledebut]<[dd] And [lafin]>[df] Or [Ledebut]>=[DD]
And [LeDebut]<[DF] Or [LaFin]>[DD] And [LaFin]<=[DF],[LeSujet],"")) AS Expr2
SELECT Table2.DD, Table2.DF
FROM Table2, Table1
GROUP BY Table2.DD, Table2.DF
PIVOT Choose(Weekday([LaDate]),"dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi")
In ("Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche");
Cet exemple correspond à un emploi d'une semaine. Pour utiliser ce code sur un mois il faut remplacer le PIVOT par :
Il existe une option permettant de définir l'icône de l'application à afficher dans la barre de titre de la base de donnée : Menu Outils / Démarrage / Icône de l'application
Pour ouvrir un formulaire au démarrage de l'application, rendez-vous dans le
menu Outils puis Démarrage. Définissez la propriété Formulaire de démarrage.
Pour exécuter un traitement au lancement de l'application, créez une macro nommée AutoExec
incluant les actions dont vous avez besoin.
En général, le développeur dote cette macro d'une seule action : Exécuter Code,
permettant ainsi de lancer une fonction VBA au démarrage de son produit.
FunctionGetLinkedDBName(TableName AsString)
'***ex:GetLinkedDBName("ENFANT")'***\\serveur\basededonnées\Base_de_donnees.mdb'Dim db As Database, Ret
OnErrorGoTo DBNameErr
Set db =CurrentDb()
Ret = db.TableDefs(TableName).Connect
GetLinkedDBName =Right(Ret, Len(Ret) - (InStr(1, Ret, "DATABASE=") +8))
ExitFunctionDBNameErr:
GetLinkedDBName =0EndFunctionFunctionDriveLinkedTable() AsString'Retrouvelechemincompletdelabaseattachée'ex:\\serveur\basededonnées\Dim X AsString, I As Integer
Dim Path AsString
X$ =GetLinkedDBName("ENFANT") 'Chemincomplet'Voirci-dessuslafonctionGetLinkedDbName()For I =Len(X$) To1Step-1IfMid$(X$, I, 1) ="\"ThenExitForNext
Path$ =Left$(X$, I -1) &"\"
DriveLinkedTable = Path$
EndFunction
La fonction GetLinkedDBName() retourne le chemin réseau de la table passée en paramètre.
La fonction DriveLinkedTable() retourne ce même chemin mais sans le nom du fichier de la base de données.
Vous avez joué avec les options de démarrage et maintenant vous vous retrouvez sans menus lorsque vous lancer Access ?
Il vous suffit d'ouvrir le fichier Access en maintenant la touche shift de votre clavier appuyée. Tout vous sera alors affiché et il vous suffira de retourner dans les options de démarrage pour arranger tout cela.
Tout d'abord, Access est un front end Windows, non un front end Web.
Donc on ne peut utiliser l'interface (les formulaires) sur l'Internet, cependant les tables et leurs données sont utilisables.
Pensez peut-être aussi à passer d'Access à MySQL. MySQL est gratuit et se combine parfaitement avec le langage PHP.
Qu'utiliser alors pour l'interface ?
Toute technologie de page dynamique -> PHP et ASP en tête.
La solution est d'importer les objets voulus (requêtes, formulaires, tables, macros ou états).
Pour se faire ouvrez votre base de destination (créez-en une vierge si besoin est) et faites Insertion > Table > Importer la table.
Il ne vous reste alors qu'à naviguer entre les différents onglets et importer les objets dont vous avez besoin.
Non !
MDE : Fichier de base de données "semi-protégé" : un MDE est un MDB dans lequel il n'est plus possible d'ajouter ou de modifier des formulaires, des états ou des modules VBA. Contrairement à l'idée reçue, le MDE n'est pas une protection intégrale d'un MDB : les tables, requêtes et macros sont toujours accessibles.
Mais le MDE a subi une pseudo compilation. Tous les éléments disponibles pour la modification des modules (et modules de classes, donc états et formulaires inclus) ne sont plus accessibles.
MS Access n'est pas fait pour faire ce type d'application.
Depuis la version 2000, il est cependant possible de créer des projets MS Access.
Les projets MS Access sont la grosse nouveauté permettant de créer des clients de bases de données SQL Serveur.
Dans ce cas-là, on peut créer une application réellement client serveur.
Pour ce type d'architecture vous pourrez utiliser MSDE (version restreinte de SQL Server) qui est fournie sur le CD d'Office.
La sécurité de niveau Utilisateur est bien plus fine.
Elle est d'ores et déjà active, mais les paramètres sont tellement ouverts qu'on ne le voit pas :
Lorsque MS-Access se lance, une lecture est faite au niveau de la base de registres, allant chercher le fichier système qui va régir le DBEngine (DAO).
Une fois ces paramètres définis, la base de données s'ouvre, d'où le schéma DBENGINE-WORKSPACE-DATABASE, et la propriété SystemDB du DBEngine.
C'est à l'ouverture du Workspace que les user et pwd sont demandés, d'où la syntaxe CREATEWORKSPACE(<<Name>>,<<USER>>,<<PWD>>,...).
----------------------------------------------------------
Le fichier SystemDB, on peut le voir en lancant l'utilitaire wrkgadm.exe.
Il est même conseillé d'en créer un spécifique, en laissant le system.mdw existant intact. A quoi sert l'utilitaire :
-Créer de nouveaux fichiers de sécurité
-Modifier la base de registres en définissant le fichier de sécurité actif pour la prochaine
session MS-Access. A quoi sert ce fichier : A définir les Users et Groups
---------------------------------------------------------
Etapes :
1-Créer un fichier de sécurité
2-Ouvrir MS-Access
3-Faire Outils/Sécurité, définir tous les Users et Groups (minimum 1 User : MoiMeme, 1 Group : MonGroup)
4-Faire toutes les associations Users-Groups (dont MoiMeme-MonGoupe)
5-Mettre un des nouveaux Users ( MoiMeme) dans le groupe des Administrateurs
6-Enlever le User Administrateur du Groupe Administrateurs
7-Donner un mot de passe à l'Administrateur
8-Quitter MS-Access
9-Ouvrir MS-Access (pour mettre en place ces nouveaux paramètres)
10-Mettre le nom du nouveau User (MoiMeme) et aucun mot de passe
11-Créer une base de données (ainsi ce sera MoiMeme qui sera le propriétaire de la base)
12-Faire Outils/Sécurité pour paramétrer les droits:
Retirer tous les droits du groupe des Utilisateurs
Retirer tous les droits du groupe des administrateurs
Mettre tous les droits au groupe des développeurs
Et faire cela sur chacun des types d'objets, dont la base de données. Ainsi, la base de données ne pourra pas être ouverte pas l'utilisateur par défaut (Utilisateur Administrateur)
13-Importer tous les objets de la base d'origine.
---------------------------------------------------------
Cette base ne pourra être ouverte que si
1- on a le bon fichier mdw
2- si on connaît le mot de passe
Ensuite la meilleure solution est de créer un raccourci dont les propriétés sont les suivantes :
Utiliser les préfixes conventionnels est même fortement recommandé. Il est ainsi beaucoup plus aisé de relire son code. Vous vous en rendrez vraiment compte en relisant le code d'autres programmeurs.
Au fur et à mesure de l'utilisation de votre base de données, la taille du fichier tend à accroître considérablement.
Ceci est dû à la méthode utilisée par Access pour stocker les enregistrements. Il vous est donc recommandé de compacter régulièrement votre fichier.
De plus, depuis Access 2000, le compactage inclu la réparation du fichier s'il est endommagé.
VBA pour Visual Basic édition (ou en Anglais : "for") Application (càd. orienté vers les applications bureautiques de Microsoft, Access, Excel, Word, ...).
Certains éléments qu'on peut être amené à gérer dans une application en Access ou en Excel, par exemple, sont identiques. D'autres sont spécifiques.
VBA peut être vu comme une restriction de VB. Mais l'interface de développement d'Access, par exemple, apporte pas mal de facilités.
Un fichier Mde est une base de données Access stockée dans un état compilé.
La modification des formulaires, états, macros et modules y est impossible. La création d'un fichier Mde améliore les performances de l'application,
réduit sa taille et protège sa partie applicative des modifications. Attention, lorsque vous convertissez votre base en Mde,
gardez précieusement une copie du fichier Mdb originel car la compilation est irréversible.
Lire une application avec une version d'Access supérieure ou égale à celle utilisée lors du développement ne devrait pas poser de problème.
Cependant, l'inverse n'est pas vrai. A savoir qu'une base développée sous Access 2003 ET enregistrée au format Access 2003 ne sera pas exploitable par les versions antérieures d'Access.
Certains fichiers d'aide sont placés dans le dossier C:\Program Files\Common Files alors que l'aide cherche dans le dossier C:\Program Files\Fichiers communs.
Il vous suffit de copier l'aide dans le second dossier.
Pour Activer / Désactiver la correction orthographique des applications Office, il faut passer par la base de registre.
Pour votre sécurité, faites une sauvegarde de la base de registre avant de réaliser la modification.
Pour accéder à la base de registre tapez regedit dans la fenêtre Exécuter du menu Démarrer.
Dans un premier temps il faut ajouter la référence : TypeLib Information (C:\Winnt\system32\tblinf32.dll)
Ce code va vous permettre de lister les objets, méthodes et propriétés disponibles dans une version d'Access donnée.
Collez ce code dans un module.
PublicFunctionGetMethod(ByVal strRefName AsString, ByVal strObject AsString, _
Optional ByVal item AsString="*") As Collection
Dim objTLI As TypeLibInfo
Dim objInterFace As InterfaceInfo
Dim objMember As MemberInfo
Dim i As Integer
Dim strTypeName AsString, strLastAdded AsStringSet objTLI =New TypeLibInfo
objTLI.ContainingFile= Application.References(strRefName).FullPathFor i =1To objTLI.TypeInfos.CountIf (objTLI.TypeInfos(i).Name= strObject) ThenSet objInterFace = objTLI.TypeInfos(i).Interfaces(1)
ExitForEndIfNext i
IfNot (objInterFace IsNothing) ThenForEach objMember In objInterFace.MembersIfNot (Left$(objMember.Name, 1) ="_") And _
Not (objMember.Name= strLastFound) And _
(objMember.InvokeKind= INVOKE_FUNC Or _
objMember.InvokeKind= INVOKE_EVENTFUNC) And _
(objMember.Name Like item) Then
Debug.Print objMember.Name
strLastFound = objMember.NameEndIfNext objMember
EndIfEndFunction
C'est une unité de mesure utilisée par le VBA (et Access) qui correspond à 1/1440 pouces soit 2,54cm
Ce qui fait qu'un cm contient à peu près 567 twips
Cette unité de mesure est complètement dissociée de la notion de pixel.
Son objectif est de permettre un positionnement impeccable d'une fenêtre (au sens global du terme... cela englobe donc les contrôles, etc.) sur un écran, et ceci, quel que soit la résolution de ce dernier.
L'aide ADO n'est pas affichée lorsque vous faites référence à la bibliothèque d'objets ADO 2.7 ou ultérieur
La solution se trouve décrite sur le site de Microsoft à l'URL :
Les variables globales, c'est beurk de chez beurk parce que :
Une variable est un espace mémoire stockant des données. Moins on utilise d'espace mémoire pour stocker des données, plus on en a pour l'application elle-même.
Elles ont une durée de vie équivalente à la durée du projet (de l'ouverture à la fermeture de la base, en gros), ce qui signifie qu'elles conservent leurs valeurs pendant toute la durée d'exécution de la base. Or, il est extrêmement rare qu'une variable soit utilisée EN PERMANENCE. Donc, on se retrouve avec des données en mémoire, avec des temps de latence extrêmement longs. Donc, on monopolise de la mémoire pour... rien, la majeure partie du temps de travail de l'application. Stocker l'info dans une table, dans une propriété de la base, dans la base de registre, dans un fichier texte (etc.) reviendrait donc rigoureusement au même, mais sans utiliser la mémoire.
Deux problèmes rencontrés lors de l'installation d'Access97 sous Windows VISTA
1. impossibilité de créer le fichier System.mdw (groupe de travail) à l'installation ou ensuite en utilisant le Wrkgadm.exe. Même en ouvrant "en tant qu'administrateur". Solution : récupérer l'ancien fichier et le coller sous Windows\system32.
2. ouverture impossible d'Access : "mémoire insuffisante"
Erreur Microsoft. Solution : télécharger la mise à jour SR1 d'Office 97 Office 97 Service Release 1
Ouvrir le .exe de la mise à jour avec l'option "administrateur" (clic droit)