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
|
Private Sub btvalider2_Click()
On Error GoTo err
'Toutes les déclarations
Dim Db As DAO.Database
Dim QryModele As DAO.QueryDef
Dim RstTable As DAO.Recordset
Dim strSQLModele As String
Dim strNomRqt As String
Dim stDocName As String
'Instancie la base de données courante
Set Db = CurrentDb
'Ouvre la table des requetes sur l'enregistrement
'dont le nom de la requête est "rq dos_Temp"
strNomRqt = "rq dos_Temp"
'chr(34) en code ASCII donne les guillemets
Set RstTable = Db.OpenRecordset("SELECT * FROM TABLE_SQL WHERE NomRqt=" & Chr(34) & strNomRqt & Chr(34))
'Si la requête est trouvée dans la table,& Chr(34)
If Not RstTable.EOF Then
'Récupère le code correspondant
strSQLModele = RstTable.Fields("CodeRqt")
'Effectue le remplacement du critere par la valeur
strSQLModele = Replace(strSQLModele, "DEBUT", Chr(35) & Nz(Calendar0) & Chr(35))
strSQLModele = Replace(strSQLModele, "FIN", Chr(35) & Nz(Calendar1) & Chr(35))
'strSQLModele = Replace(strSQLModele, "[N° AFFAIRE?]", Chr(34) & (NumAffaire) & Chr(34))
'Si un objet requête existe déjà alors
If TesteExistenceRequete(strNomRqt) Then
'alors modifier le code de la requête
Db.QueryDefs(strNomRqt).SQL = strSQLModele
'Sinon
Else
'Créer la nouvelle requête
Db.CreateQueryDef strNomRqt, strSQLModele
End If
DoCmd.OpenReport "liste affaire ZC 2006", acViewPreview
'Sinon
Else
'Avertir que le code SQL n'est pas disponible
MsgBox "Impossible de trouver la requête : " & strNomRqt & " dans la table des requêtes"
End If
Exit Sub
err:
MsgBox "Une erreur est survenue" & vbCrLf & err.Description, vbCritical, "Mauvaise Dosimétrie"
End Sub |
Partager