Requêtes en VBA

Telliouze Messages postés 2 Date d'inscription samedi 25 mai 2002 Statut Membre Dernière intervention 26 mai 2002 - 25 mai 2002 à 18:53
Telliouze Messages postés 2 Date d'inscription samedi 25 mai 2002 Statut Membre Dernière intervention 26 mai 2002 - 26 mai 2002 à 12:41
Salut, je voudrai savoir comment executer une requete en VBA sous un bouton de formulaire, et surtout kelle est la synthaxe pour faire cette requête (recordset ?)

Merci d'avance

2 réponses

cs_pheno Messages postés 141 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 23 mars 2005 1
26 mai 2002 à 10:09
salut
Propriete du bouton, onglet evenement, tu cliques sur la zone de liste a cote de la propriete SUR CLIC
et tu prends [Procédure événementielle]
Puis tu cliques sur les 3 petit points
normalement ca t a genere ceci dans la fenetre Visual basic d ACCESS
Private Sub NOMDUBOUTON_Click()

end sub

Dans l exple que je vais te passer, on affiche les coordonnees d 'un fournisseur sur le formulaire

Sub affiche()
'Déclaration de la base de donnée, et du Recordset
Dim mabase As Database
Dim rs As Recordset
'On initialise la variable mabase comme étant la base de
'donnée ouverte
Set mabase = CurrentDb
'Traitement des erreurs
On Error Resume Next
'Requete SQL
'On sélectionne toute une ligne de la table Emprunt, si le
'Numfournisseur est égale à celui de la zone de liste (Clé Cachée)texterequete "select * from TFOURNISSEUR where numfournisseur" & lblfournisseur & ""
'lblfournisseur c est la zone de liste que j ai sur mon formulaire.
'on instancie le recordset en mémoire
Set rs = mabase.OpenRecordset(texterequete, dbOpenDynaset)
'On met dans les zones de texte les valeurs des champs du recordset
txtnomcom.Value = rs!nomcommercial
txtrue.Value = rs!rue
txtville.Value = rs!ville
txtcode.Value = rs!codepostal

'Si l'opération se termine mal alors
If Err.Number <> 0 Then
'On envoie à l'utilisateur, une boite dialogue
MsgBox " Une erreur inattendue est survenue. " + Err.Description
'Et l'on quitte la procédure
Exit Sub
End If
'On ferme le recordset et la variable de type Database
rs.Close
mabase.Close
End Sub

dans le string texterequete tu peux ecrire toute les requetes sql que tu veux (delete, truncate, update), il faut juste que la syntaxe soit bonne 'Set rs mabase.OpenRecordset(texterequete, dbOpenDynaset) a la place de texterequete (string) tu peux faire un recordset sur une table au quelle cas tu ecris Set rs mabase.OpenRecordset("NOMDETABLE", dbOpenDynaset)

Maintenant je te met le code qui permet d ecrire dans ta table

Dim db As Database
Dim ra As Recordset
Set db = CurrentDb
'recordset sur la table TCOMMANDE
'recordset sur la table TCOMMANDE
Set ra = db.OpenRecordset("TCOMMANDE", dbOpenDynaset)
'Ajout d un enregistrement dans le recordset
ra.AddNew
ra!datecommande = Me!txtdatecom
ra!destinationcom = Me!txtdestination
ra!extfournisseur = Me!lblfournisseur
'mise a jour du recordset
ra.Update
ra.Close
db.close

j espere que j ai ete clair, sinon dis le moi
Chevalier Pheno Starboard, membre de la Freeman-Corp
0
Telliouze Messages postés 2 Date d'inscription samedi 25 mai 2002 Statut Membre Dernière intervention 26 mai 2002
26 mai 2002 à 12:41
Merci de la reponse Pheno mais , entre temps, j'ai trouvé encore plus simple pour une base locale :

Application.CurrentProject.Connection.Execute ("delete from albums WHERE nom_album='" & Nom_Album.Value & "'")

et ca marche !

merci kan meme !!! :big)
0
Rejoignez-nous