Function Delete_Table(NomTable As String) As Boolean Dim db As DAO.Database Dim tbl As DAO.TableDef Dim conf Delete_Table = False Set db = CurrentDb For Each tbl In db.TableDefs If tbl.Name = NomTable Then Delete_Table = True Else Delete_Table = False End If Next tbl End Function ------------------------------------------------------------------ Private Sub FichierReservations_Click() Dim oDb As DAO.Database Dim oNouvelleTable As DAO.TableDef Dim oChamp, oChamp2 As DAO.Field Dim oIndex, oIndex2 As DAO.index Dim tb As String Dim con tb = "Réservations" 'Instancie la base de données Set oDb = CurrentDb 'Crée la nouvelle table Set oNouvelleTable = oDb.CreateTableDef("Réservations") 'Crée le champ N_Cin Set oChamp = oNouvelleTable.CreateField("N_Cin", dbText, 15) Set oChamp2 = oNouvelleTable.CreateField("Numéro", dbInteger, 10) 'Définit le champ en numero_auto ' oChamp.Attributes = dbAutoIncrField 'Ajoute le champ à la table oNouvelleTable.Fields.Append oChamp oNouvelleTable.Fields.Append oChamp2 'Crée les champs nom , prenom , adresse , profession et telephone et les ajoute oNouvelleTable.Fields.Append oNouvelleTable.CreateField("Date_Arrivee", dbDate) oNouvelleTable.Fields.Append oNouvelleTable.CreateField("Date_Depart", dbDate) oNouvelleTable.Fields.Append oNouvelleTable.CreateField("Date_Reservation", dbDate) oNouvelleTable.Fields.Append oNouvelleTable.CreateField("Nb_pers", dbInteger, 15) 'définit les deux clés primaires sur N_Cin et numéro Set oIndex = oNouvelleTable.CreateIndex("PK_N_Cin-Numéro") With oIndex .Primary = True .Fields.Append .CreateField("N_Cin") .Fields.Append .CreateField("Numéro") End With 'Ajoute l'index à la table oNouvelleTable.Indexes.Append oIndex 'supprimer la table si elle existe deja If Delete_Table(tb) = True Then con = MsgBox("la table " & tb & " existe deja , voulez vous supprimer cette table et creer une nouvelle?", vbYesNo + 256 + vbQuestion, "Confirmation") If con = vbYes Then oDb.TableDefs.Delete ("Réservations") MsgBox "L'ancienne table " & tb & " a bien été éffacée." oDb.TableDefs.Append oNouvelleTable MsgBox "La Nouvelle Table Réservations a été créer.", vbInformation + vbOKOnly + vbDefaultButton1, "Confirmation " Else: MsgBox "action annulé" End If Else oDb.TableDefs.Append oNouvelleTable MsgBox "La Table Réservations a été créer.", vbInformation + vbOKOnly, "Confirmation " End If 'Libère les variables oDb.Close Set oIndex = Nothing Set oChamp = Nothing Set oNouvelleTable = Nothing Set oDb = Nothing End Sub -------------------------------------------------------------------------------------------------------------- Private Sub FichierClients_Click() Dim oDb As DAO.Database Dim oNouvelleTable As DAO.TableDef Dim oChamp, oChamp2 As DAO.Field Dim oIndex, oIndex2 As DAO.index Dim tb As String Dim con tb = "Clients" 'Instancie la base de données Set oDb = CurrentDb 'Crée la nouvelle table Set oNouvelleTable = oDb.CreateTableDef("Clients") 'Crée le champ N_Cin Set oChamp = oNouvelleTable.CreateField("N_Cin", dbText, 15) 'Set oChamp2 = oNouvelleTable.CreateField("Numéro", dbInteger, 10) 'Définit le champ en numero_auto ' oChamp.Attributes = dbAutoIncrField 'Ajoute le champ à la table oNouvelleTable.Fields.Append oChamp 'oNouvelleTable.Fields.Append oChamp2 'Crée les champs nom , prenom , adresse , profession et telephone et les ajoute oNouvelleTable.Fields.Append oNouvelleTable.CreateField("Nom", dbText, 15) oNouvelleTable.Fields.Append oNouvelleTable.CreateField("Prenom", dbText, 15) oNouvelleTable.Fields.Append oNouvelleTable.CreateField("Profession", dbText, 15) oNouvelleTable.Fields.Append oNouvelleTable.CreateField("Adresse", dbText, 25) oNouvelleTable.Fields.Append oNouvelleTable.CreateField("Telephone", dbText, 15) Set oIndex = oNouvelleTable.CreateIndex("PK_N_Cin") oIndex.Primary = True oIndex.Fields.Append oIndex.CreateField("N_Cin") 'Ajoute l'index à la table oNouvelleTable.Indexes.Append oIndex 'supprimer la table si elle existe deja If Delete_Table(tb) = True Then con = MsgBox("la table " & tb & " existe deja , voulez vous supprimer cette table et creer une nouvelle?", vbYesNo + 256 + vbQuestion, "Confirmation") If con = vbYes Then oDb.TableDefs.Delete ("Clients") MsgBox "L'ancienne table " & tb & " a bien été éffacée." oDb.TableDefs.Append oNouvelleTable MsgBox "La Nouvelle Table Clients a été créer.", vbInformation + vbOKOnly + vbDefaultButton1, "Confirmation " Else: MsgBox "action annulé" End If Else oDb.TableDefs.Append oNouvelleTable MsgBox "La Table Clients a été créer.", vbInformation + vbOKOnly, "Confirmation " End If 'Libère les variables oDb.Close Set oIndex = Nothing Set oChamp = Nothing Set oNouvelleTable = Nothing Set oDb = Nothing End Sub