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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| Private Sub sortie_Click()
If MsgBox("Vous quitter la compétition, désirez-vous la sauvegarder? ", 4) = vbYes Then
Dim strdossier, strnombase, strtitre, strnomtable As String
Dim fd, Db As Office.FileDialog
Dim dbsnew As Database
Dim sqfsauve, sqfvide As QueryDef
Dim vtabarchive, vtabfiche, vtabtitre As Recordset
Set vtafiche = CurrentDb.OpenRecordset("fiche", dbOpenDynaset)
Set vtabarchive = CurrentDb.OpenRecordset("Archives", dbOpenDynaset)
Set vtabtitre = CurrentDb.OpenRecordset("Titre", dbOpenDynaset)
With vtabtitre
strtitre = !Titre & "_" & !Ville & "_" & Left(!Date, 2) & "-" & Mid(!Date, 4, 2) & "-" & Right(!Date, 2)
End With
strnombase = strtitre & ".accdb"
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
fd.Title = "Sélectionnez un dossier..."
If fd.Show() Then
strdossier = fd.SelectedItems(1)
End If
Set fd = Nothing
If Dir(strdossier & "\" & strnombase) = "" Then
With vtabarchive
.AddNew
!Nomarchive = strtitre
.Update
End With
Set Db = DBEngine.CreateDatabase(strdossier & "\" & strnombase, dbLangGeneral)
Else
If MsgBox("Cette compétition a déjà été sauvegarder, désirez-vous la remplacer", 4) = vbYes Then
Dim myFso, myFile, myFolder, strchemin
Set myFso = CreateObject("Scripting.FileSystemObject")
Set myFolder = myFso.GetFolder(strdossier)
strchemin = strdossier & "/" & strnombase
Kill (strchemin) 'strdossier & "\" & strnombase)
Set Db = DBEngine.CreateDatabase(strdossier & "\" & strnombase, dbLangGeneral)
Set dbsnew = DBEngine.Workspaces(0).OpenDatabase(strdossier & "\" & strnombase)
End If
End If
' Sauvegarde de titre
Set sqfsauve = CurrentDb.CreateQueryDef("", "SELECT Titre.* INTO Titre IN """ & strdossier & "\" & strnombase & """ FROM Titre;")
sqfsauve.Execute
' Sauvegarde de fiche
Set sqfsauve = CurrentDb.CreateQueryDef("", "SELECT fiche.* INTO fiche IN """ & strdossier & "\" & strnombase & """ FROM fiche;")
sqfsauve.Execute
' Sauvegarde de candidats
Set sqfsauve = CurrentDb.CreateQueryDef("", "SELECT Candidats.* INTO Candidats IN """ & strdossier & "\" & strnombase & """ FROM Candidats;")
sqfsauve.Execute
With vtafiche
If .EOF = False Then
.MoveFirst
Do While Not .EOF
strnomtable = !Nomfiche
Set sqfsauve = CurrentDb.CreateQueryDef("", "SELECT " & strnomtable & ".* INTO " & strnomtable & " IN """ & strdossier & "\" & strnombase & """ FROM " & strnomtable & ";")
sqfsauve.Execute
DoCmd.DeleteObject acTable, strnomtable
Set sqfvide = CurrentDb.CreateQueryDef("", "Delete fiche.nomfiche, fiche.Nombathlete FROM fiche WHERE (((fiche.nomfiche)= '" & strnomtable & "'));")
sqfvide.Execute
.MoveNext
Loop
End If
End With
DoCmd.Close acForm, "Menu principale"
DoCmd.OpenForm "Ouverture"
Else
DoCmd.Close acForm, "Menu principale"
DoCmd.OpenForm "Ouverture"
End If
End Sub |
Partager