Pb requete via vba (pour acess)
Fermé
Vincent
-
29 juin 2004 à 16:37
siribie Messages postés 3 Date d'inscription vendredi 24 décembre 2004 Statut Membre Dernière intervention 12 septembre 2005 - 17 janv. 2005 à 15:30
siribie Messages postés 3 Date d'inscription vendredi 24 décembre 2004 Statut Membre Dernière intervention 12 septembre 2005 - 17 janv. 2005 à 15:30
A voir également:
- Pb requete via vba (pour acess)
- Find vba - Astuces et Solutions
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Impossible d'envoyer le message via free erreur 0 - Forum Mobile
- Mkdir vba ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
2 réponses
Salut,
à mon avis, ce vient du fait que dans la définition en SQL de ta requête, tu fasses directement appel à la valeur d'un contrôle d'un formulaire.
J'écrirais un truc du type :
Set resrqidT = db.OpenRecordset("SELECT idT FROM Type where NomT= " & [Formulaires]![ajout]![TypeM], dbOpenDynaset)
Et attention :
- si le type de TypeM est numérique, il faut mettre cstr([Formulaires]![ajout]![TypeM])
- si le type est une chaîne de caractères, alors il faut ajouter dans la définition de la requête des apostrophes :
where NomT= """ & [Formulaires]![ajout]![TypeM] & """"
(et cerise sur le gâteau, vérifier si la valeur de TypeM ne comprend pas elle-même des apostrophes auquel cas il faut les doubler)
à mon avis, ce vient du fait que dans la définition en SQL de ta requête, tu fasses directement appel à la valeur d'un contrôle d'un formulaire.
J'écrirais un truc du type :
Set resrqidT = db.OpenRecordset("SELECT idT FROM Type where NomT= " & [Formulaires]![ajout]![TypeM], dbOpenDynaset)
Et attention :
- si le type de TypeM est numérique, il faut mettre cstr([Formulaires]![ajout]![TypeM])
- si le type est une chaîne de caractères, alors il faut ajouter dans la définition de la requête des apostrophes :
where NomT= """ & [Formulaires]![ajout]![TypeM] & """"
(et cerise sur le gâteau, vérifier si la valeur de TypeM ne comprend pas elle-même des apostrophes auquel cas il faut les doubler)
siribie
Messages postés
3
Date d'inscription
vendredi 24 décembre 2004
Statut
Membre
Dernière intervention
12 septembre 2005
17 janv. 2005 à 15:30
17 janv. 2005 à 15:30
Je compète ce que JefEnSuz à écrit.
Si vous voulez être à 100% sûr que ça marche, précisez davantage
(dans le cas où vous auriez des champs de noms identiques dans des tables différentes) en faisant :
VotreTable1.VotreChampIdentique
Votretable2. VotreChampIdentique
Set resrqidT = db.OpenRecordset("SELECT Type.idT FROM Type where Type.NomT= " & [Formulaires]![ajout]![TypeM], dbOpenDynaset)
Si vous voulez être à 100% sûr que ça marche, précisez davantage
(dans le cas où vous auriez des champs de noms identiques dans des tables différentes) en faisant :
VotreTable1.VotreChampIdentique
Votretable2. VotreChampIdentique
Set resrqidT = db.OpenRecordset("SELECT Type.idT FROM Type where Type.NomT= " & [Formulaires]![ajout]![TypeM], dbOpenDynaset)