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 :

[Requete] Inserer une variable ou le repertoire courant dans une requete ?


Sujet :

Requêtes et SQL.

  1. #21
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    tu peux ajouter ton message dans le code de ton bouton
    ma solution consiste à travailler non pas sur la requête mais sur son querydef
    mais la tienne me semble parfaite

  2. #22
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par random
    tu peux ajouter ton message dans le code de ton bouton
    ma solution consiste à travailler non pas sur la requête mais sur son querydef
    mais la tienne me semble parfaite
    ok, dans ce cas, je garde la mienne car je ne connais pas le querydef vraiment et la, je n'ai pas beaucoup de temps pour l'etudier...

  3. #23
    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,

    il suffit de faire commencer le chemin par "\" pour que la requete recherche à partir de la racine du disque dur C:.

    Si on ne fait pas commencer le chemin par "\" il cherche à partir de
    "c:\documents and settings\UserEnCours\mes documents\"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    select * from matable IN '\matable.mdb';
    ' => cherche matable.mdb dans c:\
     
    select * from matable IN 'matable.mdb';
    ' => cherche matable.mdb dans c:\Documents and Settings\Utilisateur\Mes Documents\
     
    select * from matable IN '\MonRep\matable.mdb';
    ' => cherche matable.mdb dans c:\MonRep\
    Philippe

  4. #24
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par philben
    Bonjour,

    il suffit de faire commencer le chemin par "\" pour que la requete recherche à partir de la racine du disque dur C:.

    Si on ne fait pas commencer le chemin par "\" il cherche à partir de
    "c:\documents and settings\UserEnCours\mes documents\"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    select * from matable IN '\matable.mdb';
    ' => cherche matable.mdb dans c:\
     
    select * from matable IN 'matable.mdb';
    ' => cherche matable.mdb dans c:\Documents and Settings\Utilisateur\Mes Documents\
     
    select * from matable IN '\MonRep\matable.mdb';
    ' => cherche matable.mdb dans c:\MonRep\
    Philippe
    oui, je suis entierement d'accord avec ce que tu dis mais mon probleme ne vient pas de la, mon probleme, c'est que je ne connais pas a l'avance le chemin ou va se trouver la base de donnees. ca peut tres bien etre sur 'C:\' comme sur 'N:\mon repertoire\' ou encore tout autre chemin...

  5. #25
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Slt,

    J'ai peut-être loupé quelque chose mais pourquoi ne pas utiliser une table liée??
    C'est plus pratique, tu y gagnes en performance, et il y du code dans la FAQ et le forum pour gérer les attaches en VBA.

  6. #26
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Citation Envoyé par doudouallemand
    oui, je suis entierement d'accord avec ce que tu dis mais mon probleme ne vient pas de la, mon probleme, c'est que je ne connais pas a l'avance le chemin ou va se trouver la base de donnees. ca peut tres bien etre sur 'C:\' comme sur 'N:\mon repertoire\' ou encore tout autre chemin...
    Ne pourrais-tu pas imaginer creer cette requete depuis VBA (avec QueryDef etc. je crois), et ainsi tu n'auras plus besoin de passer par l'utilisation de variables/fonction dans le SQL.
    Tu mets ce code de creation sur le meme evenement qui declenche l'utilisation de cette requete et hop !

  7. #27
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par Demco
    Ne pourrais-tu pas imaginer creer cette requete depuis VBA (avec QueryDef etc. je crois), et ainsi tu n'auras plus besoin de passer par l'utilisation de variables/fonction dans le SQL.
    Tu mets ce code de creation sur le meme evenement qui declenche l'utilisation de cette requete et hop !
    oui, je crois que c'est ce que je vais faire car ca m'a l'air vraiment trop galere sinon...
    sinon, Arkham46, une table liee, oui, pourquoi pas... faut que je vois ca...mais c'est interne a la base de donnees ou non?

    ok, j'attends vos reponses et en fonction de ca, je ferai ce que tu as dis Demco...

  8. #28
    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
    Dans un programme je procède ainsi pour un problème similaire :

    Au lancement de l'application il cherche le chemin de la table dans une User propriété, s'il ne l'a trouve pas il propose une recherche manuelle ou automatique.

    Une fois le chemin de la table connu, je sauvegarde dans une User proprieté et au prochain lancement le programme il cherche dans la propriété, vérifie que le chemin est bon et hop.

    Philippe

  9. #29
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par philben
    Dans un programme je procède ainsi pour un problème similaire :

    Au lancement de l'application il cherche le chemin de la table dans une User propriété, s'il ne l'a trouve pas il propose une recherche manuelle ou automatique.

    Une fois le chemin de la table connu, je sauvegarde dans une User proprieté et au prochain lancement le programme il cherche dans la propriété, vérifie que le chemin est bon et hop.

    Philippe
    qu'appel tu "User propriete" ? un champ d'une table?

  10. #30
    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,

    J'ajoute une propriété utilisateur à ma base de données et je la gère par les fonctions suivantes SetMyProperty et getMyProperty (dans un module standard)
    et FileExists pour tester la présence de la table (ne pas oublier d'activer microsoft scripting runtime):

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    ' Fonction interne appelée par SetMyProperty
    Private Function ChangeProperty(strPropName As String, varPropType As Long, ByVal varPropValue As Variant, Optional ByVal sPathMdb As String = vbNullString) As Boolean
    On Error GoTo errortag
       Dim MyDb As dao.Database
       Dim prp As Property
       If sPathMdb = vbNullString Then
          Set MyDb = CurrentDb()
       Else
          Set MyDb = DBEngine.OpenDatabase(sPathMdb, True, False)
       End If
       MyDb.Properties(strPropName) = varPropValue
       ChangeProperty = True
    fin:
       Set prp = Nothing
       Set MyDb = Nothing
       Exit Function
    errortag: 'ATTENTION : la valeur des propriétés définies par utilisateur ne doivent pas être null
       If Err.Number = 3270 Then    ' Propriété non trouvée.
          Set prp = MyDb.CreateProperty(strPropName, varPropType, varPropValue)
          MyDb.Properties.Append prp
          Resume Next
       Else
          ChangeProperty = False
           Resume fin
       End If
    End Function
     
    Public Function SetMyProperty(sName As String, sVal As String, Optional sPathMdb As String = vbNullString) As Boolean
       Const DBText As Long = 10
       SetMyProperty = ChangeProperty(sName, DBText, sVal, sPathMdb)
    End Function
     
    Public Function GetMyProperty(sName As String, Optional sPathMdb As String = vbNullString) As String
    On Error GoTo errortag
       Dim MyDb As dao.Database
       If sPathMdb = vbNullString Then
          Set MyDb = CurrentDb()
       Else
          Set MyDb = DBEngine.OpenDatabase(sPathMdb, False, True)
       End If
       GetMyProperty = MyDb.Properties(sName).Value
    fin:
        Set MyDb = Nothing
        Exit Function
    errortag:
       GetMyProperty = vbNullString
       Resume fin
    End Function
     
    ' Test l'existence d'un fichier
    Public Function FileExists(sFile As String) As Boolean
    On Error GoTo errortag
        Dim fso As New Scripting.FileSystemObject
     
        FileExists = fso.FileExists(sFile)
    fin:
        Set fso = Nothing
        Exit Function
    errortag:
        FileExists = False
        Resume fin
    End Function
    ensuite dans le code il faut écrire un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    sMonChemin = GetMyProperty("MonCheminAMoi") 
     
    If sMonChemin = vbNullString or FileExists(sMonChemin) = false Then 
      ' => recherche manuelle du path par la boite OpenFile (téléchargeable sur le site)
      'vérifier la recherche manuelle, si Ok on sauve le chemin dans la propriété
      SetMyProperty("MonCheminAMoi", sMonChemin)
    endif
     
    ' Mon traitement avec le chemin sauvegardé
    Ainsi, on effectue une fois la recherche sur le poste fraichement installé puis après plus besoin, tout se fait automatiquement.

    Voilà le principe.

    @+

    Philippe

  11. #31
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    ok d'accord, merci beaucoup, j'ai compris.
    je vais donc passer finalement par le vba et une action sur bouton...
    a tous, je mets en ...
    solution: passer en code vba, ce qui revient au meme...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/10/2014, 10h28
  2. Réponses: 5
    Dernier message: 04/12/2008, 15h58
  3. Réponses: 4
    Dernier message: 14/05/2007, 13h44
  4. Réponses: 4
    Dernier message: 06/05/2007, 20h31
  5. afficher dans une boite de dialogue la valeur d'une variable
    Par micknic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/07/2005, 09h25

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