IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Problème avec requetes sql UPDATE


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut Problème avec requetes sql UPDATE
    J'ai un problème avec ma requête UPDate, voici mon code de mon bouton OK:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Private Sub cmdeValider_click()
     
    Dim message As String, Element As String, Descriptif As String, Consigne As String, Outillage As String, Numero As String
    Dim ID_MaintenancePréventive As Integer, Ligne As Integer, Machine As Integer, Periodicite As Integer, TypeIntervention As Integer
    Dim DateDerniere As Date, DateProchaine As Date
    Dim oRst As DAO.Recordset
    Dim odb As DAO.Database
     
     
    'Test si des champs sont null : si oui message d'erreur et arrrét
    If IsNull(Me.listeLigne) Or IsNull(Me.listeMachine) Or IsNull(Me.listePeriodicité) Or IsNull(Me.txtDescriptif) Or IsNull(Me.txtElement) Or IsNull(Me.txtDateDernièreIntervention) Then
        MsgBox ("Merci de Remplir les champs Obligatoires")
        Exit Sub
    End If
     
    If Me.txtIDMP.Caption = "null" Then Exit Sub
     
    'Affectation des valeur correspondantes aux variables
    ID_MaintenancePréventive = Me.txtIDMP.Caption
    Ligne = Me.listeLigne
    Machine = Me.listeMachine
    Periodicite = Me.listePeriodicité
    TypeIntervention = Me.listeType
    Element = Me.txtElement
    Descriptif = Me.txtDescriptif
    Consigne = Me.txtConsigneSecurité
    Outillage = Me.txtOutillageSpécial
    Numero = Me.txtNumeroDeGamme
    DateDerniere = Me.txtDateDernièreIntervention
    DateProchaine = Me.txtDateProchaineIntervention
     
    'on remplace les apostrophe pas des doubles apostrophes sinon la réquéte ne fonctionne pas
    Element = Replace(Element, "'", "''")
    Descriptif = Replace(Descriptif, "'", "''")
    Consigne = Replace(Consigne, "'", "''")
    Outillage = Replace(Outillage, "'", "''")
    Numero = Replace(Numero, "'", "''")
    DateDerniere = Replace(DateDerniere, "'", "''")
    DateProchaine = Replace(DateProchaine, "'", "''")
     
    Set odb = CurrentDb
    sql = "select * from tbl_MaintenancePréventive where ID_MaintenancePréventive = " & ID_MaintenancePréventive & ";"
    Set oRst = odb.OpenRecordset(sql, dbOpenDynaset)
     
    Set odb = CurrentDb
    sql = "Update tbl_MaintenancePréventive set ID_Machine=" & Machine & ", ID_Périodicité=" & Periodicite & ", ID_Type=" & TypeIntervention & ", Element='" & Element & "', Descriptif='" & Descriptif & "' , ConsigneSécurité='" & Consigne & "', OutillageSpécial='" & Outillage & "', Gamme='" & Numero & "', DateDerniéreIntervention=" & DateDerniere & ", DateProchaineIntervention=" & DateProchaine & ";"
    odb.Execute (sql)
     
    message = MsgBox("Les modifications ont été prises en compte", vbInformation, "Modification Réussie")
     
    DoCmd.Close
     
    End Sub
    Le problème, c'est que quand je modifie un enregistrement de ma table, via mon formulaire de modif, dont le code du bouton ok est celui qui est ci dessus, tous les champs "Elements et descriptifs" prennent le nom de l'enregistrement que j'ai modifié. Et ensuite, sa me change le format de ma date, je me retrouve avec des formats du type :
    00:00:55
    ...

    Sa me déprime

    Si quelqu'un peut apporter une solution à ce problème???

    Si vous avez besoin d'avantage de précision, n'hésitez pas.

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Par défaut


    As tu fait un debug.Print de ta syntaxe sql Update, cela te permettrait de voir les valeurs reprises par tes variables

    Pour le problème d'heure peut-être en utilisant la fonction DateSerial pour reconvertir la valeur en date
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonjour,

    La syntaxe de l'update ne serait pas plûtot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Update
    SET... 'tes champs
    VALUES... 'tes valeurs
    Pour la date Jeannot45 ta donné la voie à suivre...
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  4. #4
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    Re que veut tu dire par:

    Update
    SET... 'tes champs
    VALUES... 'tes valeurs
    Jusqu'à maintenant, toutes mes requêtes UPDATE, ont étaient faites comme cela.

    Je ne comprend pas pourquoi sa me change tous mes champs de ma table... Je crois qu'il doit y avoir un autre problème quelque part

  5. #5
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    Comment s'utilise la fonction "DateSerial"?

    Merci

  6. #6
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Comment s'utilise la fonction "DateSerial"?


    http://mhubiche.developpez.com/vba/f...ions/datetime/
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  7. #7
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    Re, désolé j'avais remis une réponse, mais elle n'a pas était prise en compte...

    Je disais que pour le problème de date c'était OK, voila ce que j'ai mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set odb = CurrentDb
    sql = "Update tbl_MaintenancePréventive set ID_Machine=" & Machine & ", ID_Périodicité=" & Periodicite & ", ID_Type=" & TypeIntervention & ", Element='" & Element & "', Descriptif='" & Descriptif & "' , ConsigneSécurité='" & Consigne & "', OutillageSpécial='" & Outillage & "', Gamme='" & Numero & "', DateDerniéreIntervention= #" & Format(DateDerniere, "MM/DD/YYYY") & "#, DateProchaineIntervention= #" & Format(DateProchaine, "MM/DD/YYYY") & "#;"
    odb.Execute (sql)
    Par contre, j'ai toujours mon problème qui est le suivant:

    Quand je modifie un enregistrement, tous les autres enregistrements de ma table, prennet la même valeur. Si j'ai 40 enregistrement, et que j'en modifie 1 via mon formulaire de modif, tous les autres enregistrements dans la table prennent les même valeurs.

    Sa peut venir d'où dans mon code je vois pas la???

    Je pense que c'est un problème avec mon ID_MaintenancePreventive, ou avec mon sql, je ne sais pas...

    Si quelqu'un a vu ce qui n'allais pas...

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec requete SQL
    Par Winterrage dans le forum Langage SQL
    Réponses: 16
    Dernier message: 16/06/2008, 15h21
  2. pb get avec requete sql update
    Par babafredo dans le forum ASP
    Réponses: 1
    Dernier message: 09/10/2007, 09h35
  3. Problème avec requete SQL/type NumAuto
    Par Mimisio dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/07/2007, 11h56
  4. [ACCESS][SQL] Problème avec requete SQL ...
    Par mpascolo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/11/2005, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo