[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.

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
Est ce un problème dépassement de mémoire ?
De code non valide (tableau) ?