2 requêtes SQL en VBA à la suite, pb avec les contrôles
zouhenlai
Messages postés2Date d'inscriptionvendredi 30 juin 2006StatutMembreDernière intervention16 juin 2008
-
30 juin 2006 à 15:46
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
1 juil. 2006 à 03:01
Bonjour,
J'ai un formulaire qui contient pleins de contrôles qui reçoivent des calculs faits en vba (pour utiliser la fonction SI)
A un moment je veut mettre le contenu de ces contrôles dans une table.
En fait j'ai deux tables à remplir, donc 2 requêtes "ajout" différentes exécutées à partir du vba, voici le code de l'une d'entre elles :
Dim sql As String
sql = "insert into CalculTemps(Nmat,dateS,H_normales,H_recup_acquises)values(Nmat,Date2,Hnorm,TotHRecup);"
DoCmd.RunSQL sql
Refresh
Ca marche bien quand j'execute une requête, mais quand je met les deux requêtes à la suite j'ai un soucis :
Juste après l'execution de la requête tous les contrôles du formulaires deviennent blanc pendant environ 0,3 secondes. Et comme la 2ème requête s'execute en moins de temps ben ça m'ajoute des champs blancs.
Si vous pouviez m'aider ce serais bien je me vois mal dire aux utilisateurs de cliquer sur 36 boutons au lieu d'un qui exécuterais tout en même temps.
Merci encore
<!-- / message -->
A voir également:
2 requêtes SQL en VBA à la suite, pb avec les contrôles
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 1 juil. 2006 à 03:01
Salut
Tu veux dire deux RunSQL à la suite, je suupose ?
Regarde si ton objet DoCmd a la propriété StillExecuting ou State + l'aide
Peut-être faut-il attendre que la première soit terminée avant de lancer la seconde, avec un truc du style :
Do While DoCmd.StillExecuting
DoEvents
Loop
ou
Do While DoCmd.State = ? (je ne connais pas la valeur)
De plus, ta syntaxe SQL est bizarre.
Exemple : Tel que tu l'as écrit (en oubliant les espaces entre les mots clé d'ailleurs --> risque d'erreur), tu vas écrire le texte "TotHRecup" dans le champ "H_recup_acquises"
Il faudrait plutôt qqchose du style :
"... values (" & Nmat & ", #" & Date2 & "#, " & Hnorm & ", " & TotHRecup & ");"
Il faut bien dissocier le monde VB et ses variables avec le monde SQL.
Je ne connaias pas assez le VBA et pas sûr de la syntaxe, je ne sais pas ce que représente tes Nmat, Date2 ...
En SQL il y a des règles de syntaxe à respecter :
- Si le champ est de type texte : il faut encadrer les données avec des '
- Si le champ est de type date : il faut encadrer les données avec des #
- Si le champ est de type numérique : pas d'encadrement
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accro