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

Macros et VBA Excel Discussion :

Des requetes sql en code vba de l'excel


Sujet :

Macros et VBA Excel

  1. #21
    Invité
    Invité(e)
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select champ from table1 inner join table2 on table2.champx=table1.champx
    C'est la même chose que
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select champ from table1 ,table2 where table2.champx=table1.champx
    Dernière modification par LittleWhite ; 21/08/2016 à 19h50. Motif: Coloration code

  2. #22
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    bah c'est ca ma question et Merci
    Sinon si vous avez un peu de temps à mettre des commentaires sur ton code ça me ferait plaisir

    et c'est la meme chose pour code vba?

  3. #23
    Invité
    Invité(e)
    Par défaut
    Non et comme la je suis sur mon téléphone portable c'est pas pratique, demain! Pas de problème.

    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
    Sub Test()
    Dim Cn As Object, Rst As Object, Sql As String, Fi1 As String, Fi2 As String,client  as String,safran   as String
    Fi2 = "C:\Users\admin\Desktop\nouveau travail\safran.xlsm"
    Fi1 = "C:\Users\admin\Desktop\nouveau travail\Copie de FormIDD_DERX189100_RETOUR_SES.xlsm"
    client = "Description_et_Decision_Techn"
    safran = "Feuil1"
    Set Cn = OpenConnetion(Fi1, False) 'ici j'ouvre une connexion adodb via une fonction
    If TypeName(Cn) = "Nothing" Then Exit Sub 'si la connexion ne se fait pas je quitte la sub
     
    'la je formule ma requête frm1 et ma sous requête frm2
    'il est possible d'imbriquer dz requête frm2 fait un jointure externe au deuxième fichier Excel 
    Sql = "Select Frm1.[F5]  from [" & client & "$] as  Frm1 inner join   (Select * from [" & safran & "$] in '" & Fi2 & "'  'excel 8.0;HDR=no;IMEX=1;' )as frm2 on frm2.[F2]=frm1.[F5]"
    Set Rst = OpenRecordSet(Sql, Cn) 'la j'ouvre mon recordset via une fonction 
    If TypeName(Rst) = "Nothing" Then Exit Sub 'si erreur je quitte la sub
    Range("A135").CopyFromRecordset Rst
    Rst.Close: Cn.Close
    Set Rst = Nothing: Set Cn = Nothing
    End Sub
     
    Public Function OpenConnetion(FichierXls As String, AvecTitre As Boolean) As Object
    'ouvre la connexion au fichier Excel 
    'FichierXls non et chemin complet du fichier
    'AvecTitre précise si la première ligne de l'onglet est les entête de colonnes ou pas
    'rzutourne la connexion 
    On Error Resume Next
    Dim HDR
    If Dir(FichierXls) = "" Then MsgBox FichierXls & vbCrLf & "Pas trouvé": Exit Function ' versifie si le fichier existe
    HDR = Array("No", "Yes")
    Set OpenConnetion = CreateObject("ADODB.Connection") Instancie un objet adosb c'est mieux que d'utiliser le références 
    With OpenConnetion
            .Provider = "Microsoft.ACE.OLEDB.12.0"
            .ConnectionString = "Data Source=" & FichierXls & ";Extended Properties=""Excel 12.0 Xml;HDR=" & HDR(Abs(AvecTitre)) & ";IMEX=1;"""
            .Open
            If Err Then
                MsgBox Err.Description
                Set OpenConnetion = Nothing
            End If
            Err.Clear
            On Error GoTo 0
    End With
    End Function
    Public Function OpenRecordSet(Sql, Cn As Object) As Object 'Retourne un recordset 
    'Retourne un RecordeSet
    On Error Resume Next
    Set OpenRecordSet = CreateObject("ADODB.Recordset")
    OpenRecordSet.Open Sql, Cn, 1, 3 'ouvre un recordset sur la requête SQL pour la connexion en lecteur écriture et ajou dynamique
    If Err Then
        MsgBox Err.Description
    Set OpenRecordSet = Nothing
    End If
    Err.Clear
    On Error GoTo 0
    End Function
    Dernière modification par Invité ; 26/07/2016 à 23h12.

  4. #24
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    Merci Pour votre aide

    quand j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Frm1.[F5]  from [" & client & "$] as  Frm1 ,   [" & safran & "$] in '" & Fi2 & "'  'excel 8.0;HDR=no;IMEX=1;' as frm2 where  frm2.[F2]=frm1.[F5] and  frm2.[F8]=frm1.[F9] and  frm2.[F7]=frm1.[F8]

    il m'a donné erreur dans la clause

  5. #25
    Invité
    Invité(e)
    Par défaut
    Tu est obligé de faire des requête imbriquer, dis toi qu'Excel n'est pas vraiment un base de données il faut composer!

    Si tu travaillais sur un autre onglets du même classeur tu ferais comme tu as l'habitude.
    Sql = "Select Frm1.[F5] from [" & client & "$] as Frm1, (Select * from [" & safran & "$] in '" & Fi2 & "' 'excel 8.0;HDR=no;IMEX=1;' )as frm2 Where frm2.[F2]=frm1.[F5]"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    in '" & Fi2 & "' 'excel 8.0;HDR=no;IMEX=1;' )
    Permet de faire une jointure externe een précisant le driver utiliser, ca pourrais être un fichier csv ,Accès ou autre
    Dernière modification par Invité ; 26/07/2016 à 23h30.

  6. #26
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    Encore je sais pas comment faire et j'ai tous ecris dans le commentaire du code

    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
    sqlmin = "Select  Frm2.[F9]  from [" & client & "$] as  Frm1 ,  (Select * from [" & safran & "$] in  '" & Fi2 & "'  'excel 8.0;HDR=no;IMEX=1;' )as frm2 where frm2.[F2]=frm1.[F5] and frm2.[F7]=frm1.[F8]   "
    sqlmin = "Select  Frm2.[F10]  from [" & client & "$] as  Frm1 , (Select * from [" & safran & "$] in  '" & Fi2 & "'  'excel 8.0;HDR=no;IMEX=1;' )as frm2 where frm2.[F2]=frm1.[F5] and frm2.[F7]=frm1.[F8]   "
     
    Set Rst = OpenRecordSet(Sql, Cn)
    Set rstmin = OpenRecordSet(sqlmin, Cn)
    Set rstmax = OpenRecordSet(sqlmax, Cn)
    If TypeName(Rst) = "Nothing" Then Exit Sub
     
    Rst.Close: Cn.Close
    Set Rst = Nothing: Set Cn = Nothing
    If Sql > sqlmin And Sql < sqlmax Then
       'pointer sur la cellule correspondante à sql dans la colonne [F14] et lui donner la valeur "AEE" je sais pas comment faire
    Else
       'pointer sur la cellule correspondante à sql dans la colonne [F14] et lui donner la valeur "INC" je sais pas comment faire
    End If

  7. #27
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Sql > sqlmin And Sql < sqlmax Then
       'pointer sur la cellule correspondante à sql dans la colonne [F14] et lui donner la valeur "AEE" je sais pas comment faire
    Else
       'pointer sur la cellule correspondante à sql dans la colonne [F14] et lui donner la valeur "INC" je sais pas comment faire
    End If
    là je ne comprends pas!
    Si tu veux modifier tes cellules via ado, il faut faire une requête de mise à jour, ado ne te donnera pas l'adresse de la cellule! Ca na plus rien à voir avec Excel mais avec une base de données.

    Envoi moi deux fichier Excel en exemple en remplaçant les données confidentiel par de données bidonnées.

    Dans l'éditeur click sur gérer les pièces jointes.

    Et détails moi ce que tu veux faire.

  8. #28
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    Ce que je veux faire c'est avoir des valeurs relevée corrseponds à l'item par exemple 234 de fichier excel client par la requete sql

    Et avoir la valeur mini accepte de la base critere de la societe par la requete sql mini

    Ainsi la valeur maxi par la requete sqlmax


    Apres comparer la valeur relevée avec la valeur min et max acceptée


    Si elle est dans l'intervalle on écrit dans la colonne de sanction coorsependant à la valeur que cest acceptee

    Sinon on ecrit rejetée

Discussions similaires

  1. requete sql et code vba concatenation champs par date
    Par elhaissoufi dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 13/12/2009, 01h33
  2. requete sql dans code vba
    Par kernel57 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/01/2008, 15h30
  3. [VBA][SQL] code pour requete sql update en vba
    Par titocv723 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 24/10/2006, 17h45
  4. Aide requete SQL ou fonction VBA
    Par nykola7 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 08/03/2006, 17h51
  5. Recuperer les erreurs des requetes sql en asp
    Par emile13 dans le forum ASP
    Réponses: 3
    Dernier message: 01/04/2004, 13h49

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