[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 :
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) ?