Utiliser en interne une requête sql dans un formulaire

Description

Ce code explique comment faire pour utiliser ou créer une requête SQL dans un formulaire sans être obliger d'avoir 200 requêtes enregistrées sous Access. On gère tout en interne et cela de manière transparente.

Source / Exemple :


Option Compare Database
Option Explicit

Dim sDateDeb As String ' var. DateDebut Rapport
Dim sDateFin As String ' var. DateFin Rapport

Dim sSQL As String     ' var. SQL->chaîne

Dim DB As Database     ' var. DB est une BD
Dim myRec As Recordset ' var. Enregistrement

Set db = CurrentDb

'on récupère les dates de début et fin de rapport des contrôles txt_DateDebut….	

  Me![txt_DateDebut].SetFocus
  sDateDeb = Me![txt_DateDebut].Text

  Me![txt_DateFin].SetFocus
  sDateFin = Me![txt_DateFin].Text

On Error GoTo nonTrouve  

' Traitement des erreurs : si erreur (enregistrement non trouve) alors passe au suivant

  nonTrouve:
  Resume Next
    

'REQUETE SQL -> NOMBRE DE PERSONNES ACCUEILLIES

sSQL = "TRANSFORM Count(activite.[N° Client]) AS CompteDeN° Client]" & _
       " SELECT clients.[nom client], Count(clients.[no client]) AS total" & _
       " FROM clients INNER JOIN activite ON clients.[no client] = activite.[N° Client]" & _
       " WHERE (((activite.[Type financement])='chèques' Or (activite.[Type financement])='monnaie' Or (activite.[Type financement])='carte' Or (activite.[Type financement])='gratuit') AND ((activite.[Dare accueil]) Between #" & sdatedeb & "# And #" & sDatefin & "#))" & _
       " GROUP BY clients.[nom client] PIVOT activite.[Type financement]; "

'assigne à la variable myRec la database et la requête conjointe

Set myrec = db.OpenRecordset(sSQL)

Me![nb accueils].SetFocus
myrec.MoveLast	 'on balaie les enregistrements
myrec.MoveFirst
Me![nb accueils].Text = myrec.RecordCount

Conclusion :


Ce petit listing est un exemple de code dans un formulaire qui me permet de calculer le RAPPORT D’ACTIVITE de ma société d’une pèriode choisie. Avec ce système je gère tous les paramètres financiers et les données liées à notre activité !

En ce moment je développe un moteur en VBA qui générera lui-même la requête SQL suivant les critères choisis (cases à cocher), c’est un challenge car les requêtes suivant les paramètres n’ont pas le même squelette étant donné qu’il faut prendre en compte parfois les relations croisées entre plusieurs tables.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.