[Access] Enregistrement Requetes.

DJELiTe -  
 DJELiTe -
Voilà en fait j'aimerais qu'on sache sauvegarder les résultats d'une requête dans un table dont on définirait le nom à chaque fois...
Dans le genre de l'option save as ou save in je sais pas trop.
Il faudrait que ca crée la table avec les données de la requete en fait.. Est ce possible ?
Merci d'avance

13 réponses

  1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Salut, mes connaissance access remonte a la version 9x, et environ a la meme annee, mais oui c'est (c'etait en tout cas) possible au travers des macros ecrites en VBA :o)

    .  .  Dieu a inventé le chat
    \_/  pour que l'homme puisse caresser le tigre
    0
  2. DJELiTe
     
    Ah oki et t'aurais plus une petite idée des fonctions à utiliser par hasard ? Car j'suis "novice" en vba lol
    Merci
    0
  3. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Oula, c'est beaucoup demande a ma memoire, ca date de 5 ams je crois :o)
    Mais il me semble que ce que je faisais c'est prendre les resultats de la requete un a un et les inserer dans la nouvelle table (avec une boucle while), rien de sorcier mais je ne me souviens plus de la syntaxe...

    .  .  Dieu a inventé le chat
    \_/  pour que l'homme puisse caresser le tigre
    0
  4. DJELiTe
     
    Ah oki... Hum j'vais essayer de me documenter un peu... Le truc le plus dur c'est de demander quelle table on veut créer avec ces données et de dire de faire la table et de mettre les données dedans quoi :-/
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. DJELiTe
     
    Private Sub Command175_Click()
    Dim strInput As String, TableName As String, strMsg As String
    TableName = strInput
    strMsg = "In Wich Table?"
    strInput = InputBox(Prompt:=strMsg, Title:=("Save In"), XPos:=2000, YPos:=2000)
    If strInput <> "" Then
    DoCmd.CopyObject , "Query result", acTable, "TableName"
    Else
    MsgBox "You have to enter a table name"
    End If
    End Sub


    Suis-je dans la bonne voie ? :-/
    0
  7. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Oui :o) Sauf que je ne sais pas si le CopyObject est la bonne chose mais peut etre,...

    .  .  Dieu a inventé le chat
    \_/  pour que l'homme puisse caresser le tigre
    0
  8. DJELiTe
     
    Nop c'est pas ca ca foire a mort :-/
    0
  9. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    tu veux stocker dans une table qui existe déjà, ou il faut la créer à chaque fois ?

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    0
  10. DJELiTe
     
    Dans une nouvelle à chaque fois mais j'ai trouver :)
    Le seul prob c'est qu'il me mets les enregistrements en décallés a chaque fois en fait...
    Style :
    FLangue FSexe
    FR
    FR
    M
    F
    Etc...
    Sinon le code:
    s = InputBox(Prompt:="Table Name??", Title:=("Do you want to save the query results?"))
    DoCmd.RunSQL "create Table " & s & " (FLangage Text,FGender Text)"
    DoCmd.SetWarnings False
    DoCmd.RunSQL "insert into " & s & " (FLangage) select TblCustomer.FLangage FROM TblCustomer WHERE TblCustomer.FLangage = '" + (Combo1.Value) + "'"
    DoCmd.RunSQL "insert into " & s & " (FGender) select TblCustomer.FGender FROM TblCustomer"
    DoCmd.SetWarnings True
    0
  11. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    C'est parce que tu mets à jour ta table avec 2 requêtes l'une derrière l'autre ! Il ajoute d'abord les langages puis les fgender...

    Il faut mettre à jour les champs en même temps...

    Je peux te proposer du VBA un peu plus 'propre' si tu le souhaites :-)

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    0
  12. DJELiTe
     
    Ouep j'ai trouver pkoi ca faisait ca...
    DoCmd.RunSQL "create Table " & s & " (FLangage Text,FGender Text,FLastName Text,FFirstName Text,FTitel Text,FFunction Text,FHierarchy Text,FDept Text,FSpouse Text,FEmail Text,FHospital Text,FHospitalTel Text,FHospitalFax Text,FHospitalPager Text,FHospitalTelOR Text)"
    DoCmd.SetWarnings False
    
    DoCmd.RunSQL "insert into " & s & " (FLangage,FGender,FLastName,FFirstName,FTitel,FFunction,FHierarchy,FDept,FSpouse,FEmail,FHospital,FHospitalTel,FHospitalFax,FHospitalPager,FHospitalTelOR) select TblCustomer.FLangage,TblCustomer.FGender,TblCustomer.FLastName,TblCustomer.FFirstName,TblCustomer.FTitel,TblCustomer.FFunction,TblCustomer.FHierarchy,TblCustomer.FDept,TblCustomer.FSpouse,TblCustomer.FEmail,TblCustomer.FHospital,TblCustomer.FHospitalTel,TblCustomer.FHospitalFax,TblCustomer.FHospitalPager,TblCustomer.FHospitalTelOR FROM TblCustomer WHERE TblCustomer.FLangage = '" + (Combo1.Value) + "'AND TblCustomer.FFunction = '" + (Combo2.Value) + "'"
    DoCmd.SetWarnings False

    Comme ca le code est bon.

    Pkoi il faut mettre a jiur les champs au fait ?

    Merci :)
    0
  13. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Quand je disais "mettre à jour", je pensais à "création" d'une ligne dans la table avec l'ordre insert...

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    0
  14. DJELiTe
     
    Ah oké.. Ben maintenant c'est ok, j'te remercie pour tout :)
    0