Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Existe-t-il une alternative à FULL OUTER en SQL ?
auteur : SQLpro
Un Full Outer est l'équivalent de :

Select ...
From T1
Left Outer Join T2
On...
Union
Select ...
From T2
Left Outer Join T1
On... 

Comment éviter d'avoir une division par zero dans une requête SQL
auteur : Lucifer
Lorsque nous avons une expression comme celle-ci :
( [A] / [B] )
où [B] est susceptible de prendre pour valeur 0, alors nous pouvons utiliser ceci :
iif( [B]=0, 0, [A]/[B] )

Passage de paramètres dans des requêtes
auteur : Philou22
Pour passer des paramètres à une requête, il y a bien sûr les Paramètres de la requête, voire des variables définies en VB, mais il existe aussi une solution simple :
Une table ne contenant qu'un seul enregistrement.
Cet enregistrement peut bien sûr contenir beaucoup de champs tels que TxTVA1, TxTVA2, Date_fin_periode etc....

On insère la table dans la requête nécessitant les paramètres et on se sert des champs comme critères ou constantes.

Attention :
  • Garantir un seul enregistrement (il y a un post la-dessus sur ce site) sinon gare aux petits lapins comme on dit chez nous (multiplication des enregistrements)
  • Ne marche pas si on a des jointures externes dans la requête (c.a.d des flèches sur les liens), mais il suffit souvent de décaler le pb en faisant une deuxième requête.

On a avec cette solution la souplesse d'utilisation des tables ... et des possibilités quasi infinies puisqu'on peut facilement modifier les paramètres via des requête appropriées.


Critère de requête entre un champ date et un champ date et heure.
auteur : Etienne Bar
Nous avons dans une table, un champ de type Date qui contient la date plus l'heure, ex : 12/05/2004 19:45:20.
Voici la requête permettant de connaître toutes les lignes d'une table dont le champ date correspond à la date du jour :
Select * From LATABLE Where int( LADATE ) = Date()
La fonction int() permet de ne sélectionner seulement la date et non la date suivie de l'heure.


Connaître le temps de traitement d'une requête
auteur : bigquick
Ce code va permettre de récupérer le temps d'exécution de la requête en prenant le moment avant exécution puis en réalisant la différence à la fin de l'exécution
Sub TpsRequete()

    Dim sngDebut As Single
    sngDebut = VBA.DateTime.Timer
     'execution de la requete
    DoCmd.RunSQL CurrentDb.QueryDefs("MaRequete").SQL
    MsgBox "Temps d'executiuon : " & Str(VBA.DateTime.Timer - sngDebut) & " secondes"

End Sub

Comment pour chaque requête obtenir la liste des tables qu'elle utilise ?
auteur : MashiMaro
ATTENTION : L'utilisation des tables système (MSYSxxxxxxx) n'est pas recommandé. L'utilisation de telles procédures se fait à vos risques et péril.
SELECT A.name AS Requete, B.name1 AS Lst_Table
FROM MSysObjects AS A INNER JOIN MSysQueries AS B ON A.id=B.objectid
WHERE A.type=5
and B.attribute=5;
MSysObjects est la table qui contient tous les objets qui existent dans ta base.
Dans cette base, type=5 permet d'identifier les Requêtes

MSysQueries est la table qui contient tout le détail des requêtes qui existent dans ta base.
Dans cette base, attribute=5 permet de définir (par rapport à l'id) ce qui est contenu dans le FROM (table ou requête).
D'autres valeur d'attribute vous permet de savoir si vous êtes dans le SELECT le WHERE ou l'ORDER BY.

Pour visualiser ces tables, il faut aller dans le menu Outils->Options... l'onglet affichage et cocher Objets Systeme.


Comment faire pour afficher 'Oui' ou 'Non' plutôt que 0 ou -1 dans le résultat d'une requête ?
auteur : Maxence HUBICHE
Première solution en agissant sur la table :

Onglet données
Source contrôle : ton champ
Origine source : Liste valeurs
Contenu : -1;oui;0;non
Onglet Format
Nbre colonnes : 2
Largeurs Colonnes : 0

Seconde solution en agissant sur la requête :

Il suffit dans le Select de la requête de mettre une condition sur l'affichage de la valeur du champ.

iif(TonChamp;'Oui';'Non')

Différence de syntaxe entre SQL server et Access pour les requêtes avec jointures
auteur : mouuaahh
Les requêtes contenant des jointures peuvent être valides sous SQL SERVER et pas sous Access.
Pour résoudre ce problème, il suffit de placer le nom des tables entre crochets. Sinon vérifiez la compatibilité des mots clés SQL.


Comment enlever des occurences dans un SELECT ?
auteurs : Cafeine, Tofalu

Voici une petite fonction à intégrer dans votre SELECT pour enlever les occurences.

Function myRTrim2(vChaine As Variant, strSearch As String) As Variant
If Not IsNull(vChaine) Then
    Do While vChaine Like "*" & strSearch
        vChaine = Left(vChaine, Len(vChaine) - Len(strSearch))
    Loop
    myRTrim2 = vChaine
End If
End Function

Comment incrémenter un champ dans une requête SQL ?
auteur : francishop
Ce code permet d'incrémenter un champ d'une requete SQL :
SELECT TonChamp,
 
       (SELECT COUNT(TonChamp)
 
        FROM tbl_Exemple AS LaTable_Alias2 
 
        WHERE TonChamp <  tbl_Exemple.TonChamp)+1 AS Classement
 
FROM tbl_Exemple 
 
ORDER BY TonChamp;

Ceci permet de faire un clasement

ChampNum Champ ChampIncrementer
1 Test1 1
5 Test2 2
3 Test3 3
2 Test4 4
4 Test5 5

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2004  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com