Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/12/2011, 10h40   #1
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 130
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : mars 2010
Messages : 130
Points : 38
Points : 38
Par défaut AND dans une requette SQL

Bonjour,
j'ai un petit soucis dans une requete SQL que je ne sais pas résoudre, voici ce que je veux faire :

j'ai une table dans laquelle je veux pouvoir modifier un champ d'un enregistrement, hélas c'est une table "historique" où un même identifiant peut se trouver plusieurs fois. Une petite photo pour expliquer mon charabia :



J'ai écrit ce code SQL avec pour idée de sélectionner la ligne qui réponde à mon critère "ID_MATERIEL" et "HISTO_DATE" et "HISTO_HEURE".

Code :
1
2
3
4
Str_Req = "UPDATE HISTORIQUE SET ID_INGENIEUR = " & vIngenieur
    Str_Req = Str_Req & ", ID_LOCALISATION = " & vlocalisation
    Str_Req = Str_Req & ", COMMENTAIRE = '" & vCommentaire & "'"
    Str_Req = Str_Req & " WHERE ID_MATERIEL = " & vmateriel & " AND HISTO_DATE = " & vDate & "AND HISTO_HEURE = " & vHeure
C'est surement une aberration de l'écrire comme cela et la preuve c'est que cela ne marche pas! Je ne suis qu'un singe qui fait des copier/coller de code existant et je ne connais donc pas la syntaxe pour écrire ce que je veux, si quelqu'un pouvait m'aider, cela m'avancerait grandement.
Taiby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 11h38   #2
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
salut Taiby,

y a de l'idée mais les dates sont bornées par des "#".

vodiem est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/12/2011, 14h36   #3
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Vodiem a raison.
C'est aussi vrai pour l'heure.
De plus les dates doivent être au format US mois/jour/année.

Si vDate et vHeure sont de type DateTime :
Code :
1
2
3
    Str_Req = Str_Req & " WHERE ID_MATERIEL = " & vmateriel 
    Str_Req = Str_Req & " AND HISTO_DATE = #" & Format(vDate, "mm\/dd\/yyyy") & "#"
    Str_Req = Str_Req & " AND HISTO_HEURE = #" & Format(vHeure, "h\:nn\:ss") & "#"
Si vDate et vHeure ne sont pas de type DateTime, ces deux variables sont sûrement typées String.
Dans ce cas :
Code :
1
2
3
    Str_Req = Str_Req & " WHERE ID_MATERIEL = " & vmateriel 
    Str_Req = Str_Req & " AND HISTO_DATE = #" & Format(CDate(vDate), "mm\/dd\/yyyy") & "#"
    Str_Req = Str_Req & " AND HISTO_HEURE = #" & Format(CDate(vHeure), "h\:nn\:ss") & "#"
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 03/12/2011, 18h12   #4
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 130
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : mars 2010
Messages : 130
Points : 38
Points : 38
Merci à vous deux, c'est effectivement le # qu'il manquait (il fallait le trouver celui-là !).
Mon expression est du type string et tout marche parfaitement bien.

Merci encore

Taiby
Taiby est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h01.


 
 
 
 
Partenaires

Hébergement Web