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

VBA Access Discussion :

problème date dans un insert [AC-2007]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 30
    Points
    30
    Par défaut problème date dans un insert
    Bonjour à tous,
    Voila j'ai un problème et je ne sais pas vraiment ou est la cause
    j'ai une table solde et solde_initial :
    Solde : j'y stock les données solde initial et final pour pouvoir les afficher dans un etat
    solde_initial : normalement je veux qu'elle contienne le solde initial du debut de chaque mois de telle façon que si la date existe deja lors de l'execution du code le solde va etre modifier sinon il va etre inserer mais le problème c'est que quand j'insere la date comme vous verrez dans le code elle est sensé etre le 31/10/2012 or la date qui est stocké dans la table est 24/05/1905
    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
    If Not myrst.EOF Then
         ' tant qu'il n'est pas vide
         Do While Not myrst.EOF
         myrst.Edit
         myrst!initial = soldeinit
         myrst.Update
         soldefin = soldeinit + myrst!diff
     
         myrst.Edit
         myrst!final = soldefin
         myrst.Update
         DateT = myrst!DateCA
         'MsgBox (dateT)
         soldeinit = soldefin
     
         myrst.MoveNext
         'If Not myrst.EOF Then
     
         'End If
     
        Loop
    End If
    db.Execute "INSERT INTO Solde_initial(DateCA,initial) VALUES(" & Format(DateT, "yyyy-mm-dd") & "," & soldefin & ");"
    PS : au debut je mettais pas le format() je mettais juste dateT et ça me stocké une valeur genre 00:35:43 ou qlq chose du genre

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 090
    Points : 5 207
    Points
    5 207
    Par défaut
    Et oui 2012-10-31=1971 soit 5 ans et des poussières...

    Il y a plusieurs syntaxes pour écrire une date en SQL, celle recommandée consiste à la mettre entre # mais j'utilise aussi celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...VALUES(cdate('" & DateT & "')," & soldefin & ");"
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2012
    Messages : 84
    Points : 78
    Points
    78
    Par défaut
    Bonjour Sihameln,
    Comme t as dit nico84, tu dois mettre normalement la date entre # dans le langage SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    VALUES(#" & Format(DateT, "yyyy-mm-dd") & "#, ...
    Pour plus d info regarde : http://ledzeppii.developpez.com/instrsqlvb/

    Et aussi concernant ton code :

    1) Ton if ne sert à rien, le Do While Not myrst.EOF est suffisant
    2) Utilise un bloc With myrst ... End With pour plus de lisibilité

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    Bonjour merci nico et jazzy pour la réponse oui effectivement ça marche
    Encore une chose comme j'ai dis je voulais faire le test que si la date existe deja je la modifie sinon j'insere voila ce que j'ai fais mais ça me donne une erreur comme quoi le moteur de recherche ne trouve pas la table ou requete mysql... et est ce que c'est la seule methode pour le faire?? mercii
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    mySql = "SELECT [solde_initial].* From [Solde_initial] where [solde_initial].dateCA = (#" & Format(dateTA, "mm-dd-yyyy") & "#)"
    MsgBox (mySql)
    Set mytst = CurrentDb.OpenRecordset("mySql", dbOpenForwardOnly)
     
    If Not myrst.EOF Then
    mytst.Edit
    mytst!initial = soldefin
    mytst.Update
    Else
    db.Execute "INSERT INTO Solde_initial(DateCA,initial) VALUES(#" & Format(dateTA, "mm-dd-yyyy") & "#," & soldefin & ");"
    End If

  5. #5
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 090
    Points : 5 207
    Points
    5 207
    Par défaut
    mysql est une variable, il ne faut pas la mettre entre " (comme pour le msgbox au-dessus)
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    Merci beaucoup nicolas c'est bien ça, ça marche

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 20/11/2008, 18h24
  2. Problème insertion date dans base Access
    Par pep972 dans le forum JDBC
    Réponses: 2
    Dernier message: 13/06/2008, 11h15
  3. Desactiver mot-cle Date dans un Insert
    Par nuriel2 dans le forum C#
    Réponses: 2
    Dernier message: 19/10/2007, 15h58
  4. Pb de conversion de date dans un Insert
    Par Oncle_Pete dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/03/2007, 14h07
  5. [Access 2003] - Problème date dans requête
    Par Leesox dans le forum Access
    Réponses: 11
    Dernier message: 14/10/2005, 08h51

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