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 :

INSERT INTO dans un champ mémo


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut INSERT INTO dans un champ mémo
    [Formulaire]

    Bonjour,

    Sur un formulaire, je souhaite créer un bouton qui me permettrait de rajouter dans le champ mémo, descritpionInter, la date et l’heure avant chacune de mes interventions. Ce fameux bouton a pour but de structurer les divers informations noter dans le champ mémo.

    Exemple :
    ----------------------------------------------------------------
    04/11/2006 10:17


    J’arrive déjà à afficher l’heure avec :
    Oui, je sais ce n'est pas dur ! C’est tt de même un bon début, il me semblait .. Mais pour aller l’écrire dans le champs spécifié, c’est une autre histoire.

    J’ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub InserDate_Click()
    INSERT INTO Inter (descriptionInter) VALUES ( “now” )
    End Sub
    Mais je dois faire une erreur de syntaxe, il me bloque à chaque fois que je fais une modification.

    Lorsque je recherche de l’aide pour trouver la syntaxe correct, je ne trouve que des pistes par rapport à des requêtes ..
    Il doit bien avoir un moyen plus simple .. ?

    Avez-vous une suggestion, ca fait une semaine que je cherche partout sur le net et dans l’aide d’access ? Je commence à vraiment à désespérer, cela semblait si simple en théorie ..

    Merci d’avance


    Désolé d'avoir été un peu long, mais c’était pour essayer d'être clair.

  2. #2
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut, essaye ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute "INSERT INTO Inter (descriptionInter) VALUES ( now )"

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 219
    Points : 227
    Points
    227
    Par défaut Format "Date" ton champ?
    Bonjour Cri Cross, il faudrait que tu te crée une requête d'ajout (le mode assistant peut t'aider pour cela) et ensuite que tu attache ta requête à ton bouton. Pour faire une conversion de ton type date à ton type string, c'est cstr(now).

    Bonne journée
    Alex

  4. #4
    Membre confirmé
    Avatar de Kalite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Points : 553
    Points
    553
    Par défaut
    si tu tien a le faire avec du code vb tu fai comme sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private sub insert()
    Application.docmd.RunSql "INSERT INTO Inter (descriptionInter) VALUES (" & Now & ");"
    End Sub
    si le format ne te convien pas tu peut utilisé la fonction format qui permet de formater une donnée (l'aide est dispo sur access et elle est assez complet).
    petit exemple d'utilisation:
    format te renvoi le numéro du moi de la date que courrante (Date est une fonctioàn qui permet de connaitre la date du système).

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour à chacun,

    Merci pour vos idées !
    Excusez-moi de ne répondre que maintenant, j'avais des soucis de connexion .
    Je tiens effectivement à rester en VB.
    Merci Kalite pour votre précision !

    J'ai essayé tout d'abord
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute "INSERT INTO Inter (descriptionInter) VALUES (Now)"
    Je n'ai pas de message d'erreur, mais rien ne se rajoute dans le champ descriptionInter.

    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.DoCmd.RunSQL "INSERT INTO Inter (descriptionInter)  VALUES (" & Now & ");"
    Access a l'air de bien retrouver l'heure, mais il lui manque apparement un opérateur :
    Erreur d'exécution '3075'
    Erreur de suntaxe (opérateur absent) dans l'expression '27/02/2007 9:48:05'.

    J'ai essayé plusieurs autres syntaxe, mais c'est encore pire ..

    Avez-vous des suggestions à me faire ?
    Merci encore

  6. #6
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut, bizarre...la 1ère syntaxe fonctionne chez moi.
    Sinon pour l'erreur de la seconde syntaxe, essaye plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "insert into inter (descriptionInter) VALUES ('" & Now & "');"

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour Faw,

    Merci pour ta réactivité !
    J'ai voulu voir si le souci ne venait pas du fait que je voulais complété un champ mémo. Je l'ai donc passer en texte, mais aucun changement.
    Par contre cela m'a permi de voir plus long, en fait effectivement ta proposition fonctionne bien ! Désolé ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute "INSERT INTO Inter (descriptionInter) VALUES (Now)"
    Mais au lieu de compléter le champ descriptionInter d'une intervention donnée, le code VB cree une nouvelle intervention avec tous les champs vides excepté descriptionInter. Donc je ne voyais pas cette création depuis mon formulaire.

    Comment présicer que je souhaite compléter le champ descriptionInter se rapportant à l'intervention visualisé par mon formulaire et pas en creer une nouvelle?
    Merci d'avance

  8. #8
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Evidemment! insert into crée un nouvel enregistrement et insère les valeurs
    dans les champs de destination.
    c'est une requête mise à jour qu'il te faut...
    Et il y en a sur le forum

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Excusez-moi, j'ai oublié de préciser qu'avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.DoCmd.RunSQL "INSERT INTO Inter (descriptionInter) VALUES('" & Now & "');"
    Je n'ai plus de message d'erreur, mais le même résultat qu'avec l'expression plus haut.

    Merci encore

  10. #10
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    En fait tu es dans un nouvel enregistrement et tu voudrais affecter Now() à
    ton champ avant toute chose. c'est ça?
    Si oui tu peux te contenter de mettre dans la valeur par défaut du champ (dans la structure de table)
    et le tour est joué. Autrement c'est une requête Màj qu'il te faut.
    ...
    désolé j'ai dû faire court, exemple d'update si tu es déjà sur un enregistrement
    existant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "update inter  set descriptionInter = now where Clé =" & me.clé
    * Clé est le champ clé de ta table et me.clé est le contrôle de form lié à Clé. Il est ici de type numérique.

    Ou encore mettre une zone de texte ds ton form que tu lies au champ descriptionInter et tu fais simplement

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour Faw,

    Merci pour tes suggestions détaillés !

    J'ai bien réussi à mettre en place la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "update inter  set descriptionInter = now where Clé =" & me.clé
    Mais celle-ci me supprimait ce qui était déjà écrit dans mon champ mémo.

    N'osant pas de nouveau solliciter ton aide, je me suis accroché à ta dernière idée : enregistrer ma description dans une zonedetexte !
    Après plusieurs longues heures de recherche, d’essai et d’erreur de syntaxe, car ce n’est pas encore mon fort... J'ai finalement abouti en la stockant plutôt dans une variable.

    Ca a été assez prise de tête pour moi, mais lorsqu’on arrive à percer .. ca fait plaisir !

    Cela te rappelle peut-être un peu tes débuts ..

    En tous cas, je tenais à te remercier encore pour ton aide et partager le résultat pour d’autres que cela interesserait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim texte As String
    Dim Tvar As DAO.Recordset
     
    Set Tvar = CurrentDb.OpenRecordset("select descriptionInter from Inter " & "where numIncid =" & Forms![IncidInter]!VisuNumInter)
    texte = vbCrLf & vbCrLf & " * * * * * " & Now & " * * * * * " & vbCrLf
    texte = Tvar!descriptionInter + texte
     
    Me!Texte44 = texte
     
    Tvar.Close
    Set Tvar = Nothing
     
    End Sub
    Voilà, c’était aussi pour que tu comprennes ce que je souhaitais vraiment faire. Apparemment, je n’avais pas été si clair que j’aurai voulu. Mais ce qui t’a induit en erreur je pense, c’est ma première idée qui me semblait coller avec mon besoin : la fonction INSERT.
    Je finirai en te partageant, que ca rassure de pouvoir compter sur des personnes plus fortes que soit pour nous aider lorsqu’on est vraiment bloquer. . surtout lorsque ce n’est qu’un problème de syntaxe qui nous empêche d’avancer et de savoir qu’on n’a pas pris la bonne voie.

    Aller j’arrête et passe à autre chose .. puisque ca marche maintenant !
    Ca fait plaisir de pouvoir développer des nouvelles fonctionnalités !
    Un grand Merci pour ce forum et à chacun qui le fait vivre !

    Bon Week-end à tous !

  12. #12
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut, mes débuts je les fais tous les jours
    Ce que tu fais dans ton code, tu peux en faire autant dans le SET de l'instruction UPDATE.
    exemple sans les vbcrlf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "update inter  set descriptionInter = descriptionInter & now where Clé =" & me.clé
    et donc plus besoin de lancer de recordset et plus besoin de zone de texte.
    A ce propos, la zone de texte ayant une moindre capacité en nombre de caracrères qu'un mémo, tu risquerais d'avoir des problèmes.
    Désolé, pas fait le lien sur le coup.

    Merci de taguer si tout est ok

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour Faw,

    Avant de taguer comme Résolu, j'attendais d'avoir ton retour :p, car je ne sais pas si on peut répondre, une fois qu'on a tagué "Résolu".

    Ca valait bien le détour ..

    Effectivement j'aurai pu faire bien plus simple, domage que je n'ai pas d'avantage insister avec la focntion update !
    Mais bon, on apprend tt les jours!

    Merci encore pour ton éclairage et ton aide !
    Bonne continuation à toi !

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

Discussions similaires

  1. [AC-2003] insertion d'un fichier texte dans un champ mémo
    Par dr_feelgood dans le forum IHM
    Réponses: 2
    Dernier message: 28/02/2012, 18h55
  2. INSERT INTO dans un champ avec contrainte.
    Par Brofestor dans le forum SQL
    Réponses: 7
    Dernier message: 16/09/2011, 14h34
  3. [resolut]Insertion d'une valeur vide dans un champ mémo
    Par bak47 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 23/04/2008, 19h24
  4. Insert into dans un champ de type "timestamp"
    Par sylvette dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/10/2007, 17h35
  5. [MySQL] insert into dans un for
    Par pimpmyride dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/12/2005, 17h55

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