cs_lmondeil
Messages postés8Date d'inscriptionlundi 15 avril 2002StatutMembreDernière intervention11 juin 2002
-
18 avril 2002 à 16:30
cs_jeannot45
Messages postés112Date d'inscriptiondimanche 6 janvier 2002StatutMembreDernière intervention27 décembre 2004
-
27 avril 2002 à 10:14
Light. Je suis nul mais je me soigne!
Salut tout le monde!!!
je cherche a executer une requete sql depuis un formulaire via un bouton.
est ce que quelqu'un pourrait m'envoyer le code pour le faire sur l'exemple suivant :
J'ai une table "boisson" avec un champ "nom". Je voudrais executer la requete "select * from boisson where nom like 'coca%' "
Je voudrais aussi savoir ou le resultat est stocke et comment l'exploiter.
cs_lmondeil
Messages postés8Date d'inscriptionlundi 15 avril 2002StatutMembreDernière intervention11 juin 2002 22 avril 2002 à 09:48
Light. Je suis nul mais je me soigne!
Salut et merci pour ta reponse.
Ok pour la requete SQL, ca marche, mais j'arrive toutjours pas a le faire fonctionner dans du code VBA : Mon pb actuel est de pouvoir faire tout ca en cliquant sur un bouton . Je sais pas comment selecctionner une table a partir du code, executer la requete toujours dans du code et enfin recuperer les infos issues de la requete pour les afficher. C'est surtout ces parties de code que je n'arrive pas a faire.
cs_jeannot45
Messages postés112Date d'inscriptiondimanche 6 janvier 2002StatutMembreDernière intervention27 décembre 2004 27 avril 2002 à 10:14
Bonjour,
Excuse moi pour la réponse tardive, j'étais en déplacement.
Tu disposes de 2 solutions
Soit tu utilises D.A.O et tu as le code suivant :
Sub Extraction()
Déclaration des variables
Dim MaBd as Database (Variable objet Base de données)
Dim Marequete as QueryDef (Objet Structure d'une requête)
Dim MonSql as String (Chaine destinée à recueillir ta syntaxe Sql)
Initialisation des variables
Set MaBd = CurrentDb
MonSql="SELECT * FROM boisson WHERE nom LIKE ""coca*"";" (Remarque le doublement des guillements)
Set MaRequete = MaBd.CreateQuery("Nouvelle Requete",MonSql)
' Affichage des données dans une feuille de données
DoCmd.OpenQuery("Nouvelle requete")
End Sub
Soit tu utilises A.D.O et tu as le code suivant :
Dans un module tu déclares une variable globale Connexion
exemple : ' Déclaration d'une variable de Connexion ADODB
Global MaConnexion As ADODB.Connection
Dans un module tu crées ton jeu d'enregistrements :
Tu déclares au préalable une variable objet de portée module
Dim MaRequete As New ADODB.Recordset
Private Sub btnAfficher_Click()
Dim Sql As String
Dim Monjeu As Recordset
' Instanciation de la connexion
Set MaConnexion = New ADODB.Connection
' Ouverture de l'objet
MaConnexion.Open "SourceMdb" ' Déclarée dans la liaison ODBC (Via le Panneau de configuration)
' Ouverture de la requete
MaRequete.Open "Select * FROM boisson WHERE nom LIKE “”coca*””", MaConnexion, adOpenStatic, adLockOptimistic
' Appel de la procédure de rapatriement des valeurs
MaRequete.MoveFirst
‘Procédure d’affichage des données
End Sub
Private Sub Afficher()
Exemple : imaginons que dans notre formulaire il y ait deux Zones de Texte correspondant à deux champs de la requête nous pourrions avoir :
txtNom = MaRequete.Fields("Nom").Value
txtPu = MaRequete.Fields("Pu").Value
End Sub
Pour afficher les enregistrements suivants on pourrait avoir un second bouton sur lequel serait attachée la procédure suivante:
Private Sub btnSuivant_Click()
MaRequete.MoveNext
Afficher
End Sub