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

Access Discussion :

insert into? [Infos]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 40
    Points : 32
    Points
    32
    Par défaut insert into?
    salut
    est ce que quelqu'un pourrait m'aider pour corriger cette instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.RunSQL"insert into fact(numclient,numprodui,dateachat,statut) values ('"&me.numclient.value&"','"&me.numprodui.value&"','"date()"','"regle"');"
    et pour mieux comprendre pourquoi on utilise &
    et merci

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Pour cela nous devons connaitre les types des champs

    Donc on va dire que

    NumClient : Numérique
    NumProduit : Numérique
    DateAchate : Date
    Statut : Texte


    Et que tes zones de texte contiennent :

    NumClient : 300
    NumProduit : 12

    La requête SQL devant être exécutée par le moteur JET sera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into fact(numclient,numprodui,dateachat,statut) values (300,12,#05/04/2005#,"regle")
    Donc en VBA il faut construire cette chaine de caractère qui sera envoyé au moteur de base de données via la commande docmd.RunSQL

    Donc on déclare une chaine de caractère


    Que l'on rempli avec le début de la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL="insert into fact(numclient,numprodui,dateachat,statut) values ("
    on y ajoute la valeur de la zone de texte numclient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL="insert into fact(numclient,numprodui,dateachat,statut) values (" & me.numclient.value
    puis la virgule et la zone de texte de reference produit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL="insert into fact(numclient,numprodui,dateachat,statut) values (" & me.numclient.value & "," & me.numprodui.value
    puis la virgule et la date d'aujourd'hui encadrée par des #. (Enfait les # seront à coté des virgules de chaque coté de la date)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL="insert into fact(numclient,numprodui,dateachat,statut) values (" & me.numclient.value & "," & me.numprodui.value & ",#" & Date() & "#,"
    puis enfin le mot regle encadré par des guillemets. Comme les guillemets serve aussi en VBA, VBA va les interprété comme une ouverture/fin de chaine au lieu de les inclure dans la chaine de caractère pour cela soit on double les " soit, on utilise la fonction Chr(X) qui retourne le caractère ascii X (X=34 pour avoir ")


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL="insert into fact(numclient,numprodui,dateachat,statut) values (" & me.numclient.value & "," & me.numprodui.value & ",#" & Date() & "#," & Chr(34) & "regle" & Chr(34) & ")"
    Pourquoi nous écrivons "relge" et non regle parce qu'il s'agit d'une chaine de caractères et non une variable.

    A ce stade tu peux utiliser

    afin d'afficher la requête construite. Elle correspond à ce que l'on attendait. On peut alors l'éxecuter.

    Il s'agit là des bases de la programmation et c'est inutile d'aller plus loin si tu n'arrives pas à concevoir le principe de Variable/Valeur/Opérateur et la différence SQL/VBA

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/10/2006, 15h28
  2. probleme clé sequentiel avec insert into
    Par shake dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2004, 16h54
  3. probleme d'INSERT INTO et JavaScript
    Par Matlight dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/03/2004, 16h36
  4. erreur SQL ...INSERT INTO
    Par naidinp dans le forum ASP
    Réponses: 20
    Dernier message: 18/09/2003, 12h38
  5. Insert Into + Date
    Par BoeufBrocoli dans le forum SQL
    Réponses: 10
    Dernier message: 13/08/2003, 12h23

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