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

Requêtes et SQL. Discussion :

format et requete


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 77
    Points : 37
    Points
    37
    Par défaut format et requete
    Bonjour,


    1) Pour créer ma table j'ai des chiffres ou des lettres ou bien je peux avoir des chiffres et des lettres combinées (ex 1 ou 15 ou ab ou ac 8 etc)


    comment mettre le format des données de la table?



    2) Pour créer une requête je voudrai avoir tous les chiffres non utilisés dans une table (dans ma table les chiffres vont de 1 à 600; je peux avoir du 1 au 88 ne pas avoir le 89 puis j' ai les chiffres du 90 au 500)

    je veux le critère de ma requête qui me donne le 89 puis les chiffres du 501 au 600.


    a+

  2. #2
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    salut);
    1/ pour le format du champs;puisque on a un melange des chiffres et des lettres donc on choisit un format texte.
    2/ la requete;vous voulez d'apres ce que j'ai compris; la requete nous fait sortir 89 et du 501 au 600..


    voici la requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Table1.c1
    FROM Table1
    WHERE (((Table1.c1)="89" Or ((Table1.c1) Between "501" And "600")));

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 77
    Points : 37
    Points
    37
    Par défaut requete
    Bonjour

    merci pour la premiere question (format texte) je vais essaye

    mais pour ma 2 emme question: je debute dans acces et pour faire ma requete je ne sais que inscrire les conditions dans la colone correspondante et sur la ligne critere

    comment inscrire une formule?


    a+

  4. #4
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut requete
    il y a 2 methodes;
    avec assistant ou bien en mode texte.
    1. 1/ clicker sur REQUETE dans menu a gauche.
      2/ clicker sur creer une requte en mode creation.
      3/ choississez la table.
      4/ double clicker sur le champ que vous voulez faire les conditions
      5/ dans la 5emme ligne (ds la ligne des criteres) vous tapez la condition utilisant les vrai mots reserves comme:89 or (between 501 and 600)
      oubien en semi formelle:89 Ou Entre (501 Et 600)
    2. sinon on utilise le mode texte sql
      1/ clicker sur REQUETE dans menu a gauche.
      2/ clicker sur creer une requte en mode creation.
      3/ fermer la boite de dialogue.
      4/ dans la zone superieur on clicke bouton droit choisissant MODE SQL ou bien dans le menu on choisit AFFICHAGE >MODE SQL 5/ ecrire la requete comme je l'ai envoye.


    Bon courage
    Zoheir BOUSSAFI

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 77
    Points : 37
    Points
    37
    Par défaut format et requete
    Bonsoir


    pour le format:

    (c'est une table liée venant d'excel) et en mettant sur la table access format texte cela ne marche pas.

    pour la requete:

    j'ai une longue list eet moui je souhaiterai connaitre les chiffres non utilisé ou non inscrit dans ma table entre 1 et 600?

    a+

  6. #6
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,

    Une solution basique consisterait à créer une autre table contenant les enregistrements de 1 à 600, puis de créer une requête de non-concordance.

    Bon courage,

  7. #7
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    re,

    Un peu de code pour t'aider à créer tes enregistrements de référence : tu crées une table nommée matable avec un champ ref de 3 caractères.

    Tu exécutes le code suivant (par exemple à partir d'un bouton) :
    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
    Private Sub Commande7_Click()
        Dim oRst As DAO.Recordset
        Dim oDb As DAO.Database
        Dim index As Integer
        Set oDb = CurrentDb
        Set oRst = oDb.OpenRecordset("matable", dbOpenTable)
        CurrentDb.Execute ("DELETE  * FROM matable;") 'Suppression des données existantes
        index = 1
        While index < 601
            oRst.AddNew 'Passe en mode Ajout
            oRst.Fields("ref").Value = CStr(index) 'Affecte le champ
            oRst.Update 'Met à Jour
            index = index + 1
        Wend
        'Libération des objets
        oRst.Close
        oDb.Close
        Set oRst = Nothing
        Set oDb = Nothing
    End Sub
    Puis tu te fais une belle requête de non-concordance.


  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 77
    Points : 37
    Points
    37
    Par défaut requete
    Bonjour

    moi j'utilise pour faire une requete le mode création

    j'ai créer ma table de 1 à 600

    j'ai fais une relation entre mes 2 tables

    comment faire ma requete pour ecrire le critere dans ma requete?


    a+

  9. #9
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    salut:

    table1 est la plus complet 1..600

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Table1.code
    FROM Table1 LEFT JOIN table2 ON Table1.code = table2.code
    WHERE (table2.code) Is Null);
    cette solution la plus rapide mais reellement, la requete est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select Table1.code from table1
    where table2.code  not in (select Table2.code from table2)
    cette requete est plus professionnelle mais elle est plus loude(lente) pour une table de donnees importantes

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 77
    Points : 37
    Points
    37
    Par défaut format cellule
    bonjour,

    c'est du VBA?

    je suis novice dans access et que faire avec ce qui est inscrit???

    a+

  11. #11
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par al1000 Voir le message
    bonjour,

    c'est du VBA?

    je suis novice dans access et que faire avec ce qui est inscrit???

    a+
    Bonjour,

    Novice aussi, j'ai appris à inscrire des code SQl dans les requêtes.

    La requête que tu utilises, ouvre la en mode création puis fais un clic droit et choisis "mode SQL".
    Là tu verras en fait les formules SQL de tes requêtes.
    Fais donc un copier-coller des codes qui te sont proposés ici, en prenant soin de remplacer ce qui doit l'être par les noms de tes tables.
    Si je reprends les codes de Boussafi,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Table1.code
    FROM Table1 LEFT JOIN table2 ON Table1.code = table2.code
    WHERE (table2.code) Is Null);
    eh bien tu remplaces Table1 par le nom de la table concernée et le .code par le champs concerné.

    Exemple, si tu avais la table POPOLE reliée par son champs nompopole à la table PUPULE via le champs numpupule, le code serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT POPOLE.nompopole
    FROM POPOLE LEFT JOIN PUPULE ON POPOLE.nompopole = PUPULE.numpupule
    WHERE (PUPULE.numpupule) Is Null);

    Voilà !

    Corrigez si je me trompe les experts !

  12. #12
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut
    Bonjour,

    A propos du format : Attention de ne pas mélanger Fomat et Type de données.
    1. Type de données : précise le type d'info contenu soit texte, numérique etc ...
    2. Format : précise la manière dont sera affichée l'information


    Peux-tu préciser ce que tu entends donc par "format texte"

    A propos de la requete : La proposition de créer une table de tous les codes reste le plus facile (mais peut-être le plus fastidieux à réaliser). Larequete qui te donnera le résultat attendue pourra être simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Controle.CodeControle
    FROM Controle
    WHERE Controle.CodeControle) Not In (SELECT CodeEssai FROM Essai);
    Remarques :
    1. La table Controle contient tous les numéros de 1 à X
    2. La table Essai est une table dans laquelle j'ai tout mes codes avec les ruptures de séquences (1,2,4,8,..)
    3. La Sequence SQL dans la clause WHERE permet de récupérer la liste de tous les codes existants dans la table Essai. En appliquant l'opérateur Not In, cette séquence SQL me liste automatiquement tous les numéros de codes à exclure


    Bon courage

  13. #13
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    salut

    d'apres mes experiences, si on a des tables enormes, NOT IN dure longtemps.
    j'ai propose une solution ;le 04/11/2007 10h48 ds cette discussion;plus rapide sous access.

    et si c'est possible de tester la requete de MINUS sous ORACLE; elle est plus professionnelle et rapide.


    Bon courage
    Zoheir BOUSSAFI

  14. #14
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 081
    Points : 24 726
    Points
    24 726
    Par défaut
    Bonjour,

    Il y a une très grosse différence entre IN et NOT IN. Le premier est optimisable mais pas le second. Comme LIKE qui suivant les jokers utilisés l'est ou ne l'est pas.

    En ce qui concerne le IN ou NOT IN (SELECT...) ce n'est pas une écriture conforme au SQL Access. Je ne sais même pas si elle est conforme tout court.

    D'un point de vue strictement logique vous demandez à JET de faire 2 requêtes et de les faire correspondre dans un where. Pourquoi ne pas utiliser tout simplement les relations. Vous n'avez qu'une requete et les relations sont, dans la majorité des cas, optimisables.

    A force de faire du capilotractage on fini par devenir chauve.

    En ce qui concerne la remarque de Boussafi sur "Oracle plus professionnel et rapide", je pense qu'il n'a pas choisi les bons vocables. Oracle est plus robuste à forte charge.

    Cordialement,

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par loufab Voir le message
    A force de faire du capilotractage on fini par devenir chauve.
    Et c'est vrai, allez-voir ici.

Discussions similaires

  1. LDAP - format objectSid requete
    Par nightgringo dans le forum Windows
    Réponses: 1
    Dernier message: 26/03/2012, 14h48
  2. formater montant requete sql server
    Par esthr dans le forum Développement
    Réponses: 1
    Dernier message: 19/10/2007, 13h58
  3. formater montant requete sql server
    Par esthr dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/10/2007, 13h58
  4. Probleme de format dans requete
    Par reuel dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 11/08/2007, 10h28
  5. Format dans Requete SQL sous VBA
    Par Sam 069 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/07/2006, 13h09

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