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 :

probleme requete vba access avec variables


Sujet :

VBA Access

  1. #1
    Membre régulier Avatar de alexkickstand
    Inscrit en
    Octobre 2002
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 165
    Points : 105
    Points
    105
    Par défaut probleme requete vba access avec variables
    Bonjour, je ne sais pas si je peux insérer dans une requete access une variable récupéré d'un formulaire :


    j'ai une requete en access qui s'appelle : QUERY_JOB_TRACKING
    cette requete récupère des données de la table Carte suivant un numéro de Job
    voici le code sql de la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT Carte.Job, Carte.Code_Ope, Carte.Date
    FROM Carte
    WHERE (((Carte.Job)=job_tracking));
    mon but est de copier les données d'une requete dans une table suivant un numero de job.


    j'ai un form avec un bouton avec le code suivant :

    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
     
    Private Sub Command0_Click()
     
      Dim dba As Database
      Dim Enreg As Recordset
      Dim tbl_def As TableDef
      Dim tbl_name As TableDef
      Dim STR_SQL1, STR_SQL2, STR_SQL3
     
      job_tracking = "10005"
      MsgBox (job_tracking)
     
      'Ouverture de la base de données "mabase.mdb"
       Set dba = OpenDatabase("V:\UPDATES\Alex\ACCESS\excel\mabase.mdb")
     
      'suppression de la table JOB_TRACKING si existante
       dba.TableDefs.Refresh
        ' If RecentHires query exists, delete it.
         For Each tbl_def In dba.TableDefs
            If tbl_def.Name = "JOB_TRACKING" Then
              dba.TableDefs.Delete tbl_def.Name
            End If
         Next tbl_def
     
    ' requete sql qui copie les données de la requete QUERY_JOB_TRACKING
    ' dans une nouvelle table JOB_TRACKING suivant le numéro de job_tracking
     
    STR_SQL1 = "SELECT QUERY_JOB_TRACKING.* INTO"
    STR_SQL2 = " [JOB_TRACKING] FROM QUERY_JOB_TRACKING "
    STR_SQL3 = "WHERE [Carte].Job = '" & job_tracking & "';"
    STR_SQL = STR_SQL1 & STR_SQL2 & STR_SQL3
     
    Debug.Print STR_SQL
     
    dba.Execute (STR_SQL)
     
    dba.Close
     
    End Sub
    j'ai une erreur :

    error runtime 3061
    Too few parameters. Expected 1.

    Merci d'avance pour de l'aide

    Alex

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Il manque un espace à la fin de STR_SQL2.

    Si tu avais fait un tu l'aurais vu.

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    STR_SQL1 = "SELECT QUERY_JOB_TRACKING.* INTO"
    STR_SQL2 = " [JOB_TRACKING] FROM QUERY_JOB_TRACKING "
    STR_SQL3 = "WHERE [Carte].Job = '" & job_tracking & "';"
    STR_SQL = STR_SQL1 & STR_SQL2 & STR_SQL3
    ce n 'est pas une requete d'insertion de données dans une table...

    Voir les requetes <INSERT INTO ...>

    cordialement,

    Philippe

  4. #4
    Membre régulier Avatar de alexkickstand
    Inscrit en
    Octobre 2002
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 165
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par philben Voir le message
    bonjour,



    ce n 'est pas une requete d'insertion de données dans une table...

    Voir les requetes <INSERT INTO ...>

    cordialement,

    Philippe

    Hello merci de ta précision.

    mais le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select "requete".* INTO 
    table FROM requete
    copie toute les données d'une requete dans une table ca fonctionnes tres bien sauf que pour mon cas j'ai rajouté un WHERE puis la ca fonctionnes plus.

    merci

    Alex

    ps : Si tu as une idée je suis preneur !!!

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    tu as raison, essaye avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    STR_SQL1 = "SELECT QUERY_JOB_TRACKING.* INTO"
    STR_SQL2 = " [JOB_TRACKING] FROM QUERY_JOB_TRACKING "
    STR_SQL3 = "WHERE [QUERY_JOB_TRACKING].Job = '" & job_tracking & "';"
    cordialement,

    Philippe

  6. #6
    Membre régulier Avatar de alexkickstand
    Inscrit en
    Octobre 2002
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 165
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par philben Voir le message
    bonjour,

    tu as raison, essaye avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    STR_SQL1 = "SELECT QUERY_JOB_TRACKING.* INTO"
    STR_SQL2 = " [JOB_TRACKING] FROM QUERY_JOB_TRACKING "
    STR_SQL3 = "WHERE [QUERY_JOB_TRACKING].Job = '" & job_tracking & "';"
    cordialement,

    Philippe

    Re , toujours la meme erreur
    j'ai l'impression que cette méthode ne prend pas en compte un WHERE

    je vais essayer de faire une requete et ensuite d'enregistrer le résultat dans une table .

    merci de ton aide !!

    Alex

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    La clause Where est acceptée.

    j'ai vérifié, l'erreur vient probablement du fait <job> est un champ numérique.

    Avec un peu de chance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    STR_SQL1 = "SELECT QUERY_JOB_TRACKING.* INTO "
    STR_SQL2 = "[JOB_TRACKING] FROM QUERY_JOB_TRACKING "
    STR_SQL3 = "WHERE [QUERY_JOB_TRACKING].Job = " & job_tracking & ";"
    Philippe

  8. #8
    Membre régulier Avatar de alexkickstand
    Inscrit en
    Octobre 2002
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 165
    Points : 105
    Points
    105
    Par défaut
    Re, le champs job est au format texte mais contient un numero

    en tout cas j'ai testé ton code puis j'ai toujours la meme erreurs

    est-ce que le code sql de ma requete est correct ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT Carte.Job, Carte.Code_Ope, Carte.Date
    FROM Carte
    WHERE (((Carte.Job)=job_tracking));

    merci encore de ton aide

    Alex

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    ben non ta variable n'est pas vue par ta requete enregistrée.

    Si j'ai bien compris, pourquoi ne pas écrire directement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    STR_SQL1 = "SELECT Carte.* INTO [JOB_TRACKING] FROM " & _
                      "Carte WHERE Carte.Job = '" & job_tracking & "';"
    Philippe

  10. #10
    Membre régulier Avatar de alexkickstand
    Inscrit en
    Octobre 2002
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 165
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par philben Voir le message
    ben non ta variable n'est pas vue par ta requete enregistrée.

    Si j'ai bien compris, pourquoi ne pas écrire directement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    STR_SQL1 = "SELECT Carte.* INTO [JOB_TRACKING] FROM " & _
                      "Carte WHERE Carte.Job = '" & job_tracking & "';"
    Philippe
    pourquoi vouloir faire compliquer quand c'est simple !!!

    lol j'y avais pas penser merci ca fonctionnes nikel

    je peux passer a l'étape 2

    merci beaucoup au plaisir de t'aider

    Alex

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

Discussions similaires

  1. [Débutant] Probleme vba access avec ADODB
    Par judejuda dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/05/2013, 08h45
  2. Réponses: 5
    Dernier message: 15/05/2007, 16h19
  3. Requête access avec variable
    Par hari37 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/04/2007, 18h16
  4. Requete sous Access avec AND et OR
    Par paflolo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/02/2006, 10h35
  5. Réponses: 8
    Dernier message: 20/02/2006, 23h25

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