Exécuter une requette SQL avec VBA (Access)

h_adil Messages postés 231 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 10 juin 2009 - 29 juil. 2008 à 18:13
 Utilisateur anonyme - 24 juin 2009 à 20:37
Bonjour,
je veux exécuter une requette sql à partir de vba access (modul)
l'objectif de ce programme est de récuperer la valeur d'un critère et de l'appliquer dans plusieurs requettes
voila un appercu de mon code :

Dim val As String
Dim s As String
Dim rst As DAO.Recordset
Dim bds As DAO.Database


Set bds = CurrentDb
val = ("Saisir une date"))
s = "SELECT .NB_COL, Sum([Total unités]) AS [SommeDeTotal unités] FROM matable GROUP BY NB_COL, [Date] HAVING ((([Date])=[" & val & "]));"
Set rst = bds.OpenRecordset(s, dbOpenTable, dbAppendOnly)

Mais le problème est que jai tourjours un message d'erreur,

Merci de votre aide
Un problème = des solutions
programation .....

3 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
29 juil. 2008 à 18:24
salut,
Un problème = des solutions
Mais ou est donc le problème ?
Sans desciption de l' erreur, on ne saura jamais de quoi il s' agit.

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
29 juil. 2008 à 18:26
en devinant ça serait peut être
HAVING ((([Date])=#[" & val & "]#));"

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0
Utilisateur anonyme
24 juin 2009 à 20:37
apparemment dao genere un erreur a l ouverture du recordset

1- ouvre ton recordset avec un Type dbOpenDynaset ainsi :
set rRecordset= dDatabase.OpenRecordset(sSqlcommande,dbOpenDynaset,..)

2- pour l avenir prevoit de préinformer ton code en inserant
avant ta ligne de code suceptible de generer une erreur
la routine ligne suivante :
ON ERROR GOTO ERROR1
... ta ligne de code possiblement "incertaine" ...
... suite de ton code
... derniere ligne de ton code (hors End Sub ou End Function etc)
... quitter la procedure
EXIT Sub (ou Function, etc)' pour ne pas lire ERROR1 si aucune erreur
ERROR1: ' à placer avant le End Sub ou end function etc
MSGBOX VBA.ERR.DESCRIPTION ' (affiche, ou recupère autrement)
...si possible : code reecrivant la ligne ayant provoqué l erreur
... retour a la ligne ayant provoqué l erreur(GOTO 0)
...a defaut:retour a la ligne suivante RESUME NEXT... etc
...ou bien fin de la routine EXIT ..
...fermer la procedure
End Sub (ou End Function etc ) ' fin de ta routine

cordialement
ATRFV
0
Rejoignez-nous