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
| '######### requête pour les communes ########
Private Sub req_commune()
Dim db As DAO.Database
Dim QryModele As DAO.QueryDef
Dim RstTable As DAO.Recordset
Dim strSQLModele As String
Dim w_sql As String
Set db = CurrentDb
w_commune = Me.lst_commune 'On récupere le code de la commune
'Ouvre la table des requetes sur l'enregistrement dont le nom de la requête correspond à celle choisie dans la liste déroulante
Set RstTable = db.OpenRecordset("SELECT * FROM tblRequete WHERE NomRqt=" & Chr(34) & Me.lst_requete & Chr(34))
'Si la requête est trouvée dans la table,
If Not RstTable.EOF Then
'on récupère du code correspondant à la requête
strSQLModele = RstTable.Fields("CodeRqt")
'on ajoute la condition (ici la commune sélectionnée)
w_sql = strSQLModele & " WHERE CODGEO = '" & w_commune & "';"
'On nomme la requête
w_nomRq = Me.lst_requete & "_" & w_commune
'Si la requête existe déjà alors
If TesteExistenceRequete(w_nomRq) Then
'on met à jour le code de la requête
db.QueryDefs(w_nomRq).SQL = w_sql
Else
'Si elle n'existe pas, on créer la nouvelle requête
db.CreateQueryDef w_nomRq, w_sql
End If
'Ouverture de la requête
DoCmd.OpenQuery w_nomRq
If MsgBox("Voulez-vous exporter la requête dans Excel?", vbYesNo, "Exporter vers Excel") = vbYes Then
Call ExportExcel
End If
Else
'Si la requête n'existe pas, on avertit que le code SQL n'est pas disponible
MsgBox "Impossible de trouver la requête dans la table des requêtes. Elle n'a pas été créée..."
End If
Exit Sub
Err:
MsgBox "Une erreur est survenue" & vbCrLf & Err.Description, vbCritical, "ERREUR"
End Sub |
Partager