[Cours] analyse de la structure d'une base de données simple
Ce cours se compose pour l'instant
- d'un vieux con, le professeur : papyturbo
- et d'un jeune con, l'élève : Serge57
Tout le monde peut participer si, étant débutant, quelque chose n'est pas clair : toutes les questions sont bienvenues.
Mais, débutant ou expert, merci de ne pas partir dans toutes les directions avec des questions hors sujet : elles seront déplacées dans le sujet prévu pour cela : [Cours papyturbo]Commentaires, remarques et suggestions
----------------------------------------------------------------
Objectif de ce cours :
Ce sujet (antérieurement nommé : Impossible de quitter Access) a commencé comme une question simple : comment réaliser une requête ?
Réponse sommaire (voir les premières réponses) : il faut revoir la structure de la base de données, les relations...
Nous allons donc prendre le temps qu'il faut pour
- explorer et comprendre les mécanismes de liaison entre les tables, c'est à dire la structure de la base de données,
- expliquer par l'exemple quelques termes de base comme jointures, relations et intégrité référentielle...
- le but est d'arriver à la même requête, mais sur une base "propre".
----------------------------------------------------------------
Conseil à tous les lecteurs : vous pouvez télécharger la base que Serge57 a mise en exemple dans la réponse #14, pour faire les exercices chez vous, en parallèle.
----------------------------------------------------------------
Le sujet d'origine débute ici :
----------------------------------------------------------------
Aprés l'execution du code VBA dans un module (sous access 2000 SP3), plus moyen de quitter access. La seule solution par le gestionnaire de taches Windows XP.
Voici la copie du code.
Principe : Remplir une Nouvelle Table avec des enregistrements d'autres tables triés par une requète.
Est ce un problème dépassement de mémoire ?
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Sub SommeAvancementEtudePerFou() On Error GoTo Err_SommeAvancementEtudePerFou Dim NouvelleTable As New ADODB.Recordset Dim RequeteFournisseur As DAO.QueryDef Dim HSSF As DAO.Recordset Dim HSSP As DAO.Recordset Set RequeteFournisseur = CurrentDb.QueryDefs("HeureSectionSommeFournisseur") Set HSSF = RequeteFournisseur.OpenRecordset NouvelleTable.Open "Temp_AvancementEtudePerFou", CurrentProject.Connection, adOpenDynamic, adLockOptimistic ' Effacement des enregistrements de NouvelleTable NouvelleTable.Delete 'Parcours de la RequeteFournisseur et ajoute à NouvelleTable Compteur = 0 Do Until HSSF.EOF With NouvelleTable .AddNew Array(0, 1, 2), Array(HSSF(0), HSSF(1), HSSF(2)) .Update End With HSSF.MoveNext Loop Exit_SommeAvancementEtudePerFou: 'Fermeture des recordsets NouvelleTable.Close HSSF.Close Set NouvelleTable = Nothing Set HSSF = Nothing Set RequeteFournisseur = Nothing Exit Sub Err_SommeAvancementEtudePerFou: If Err = 3021 Then ' gestion de l'erreur "NouvelleTable" vide Resume Next End If MsgBox "Erreur sur la procédure SommeAvancementEtudePerFou" Resume Exit_SommeAvancementEtudePerFou
De code non valide (tableau) ?
Partager