Copier le résultat de 2 requetes SQL dans une feuille
Bonjour suite à un programme je demande à l'utilisateur se qu'il veut chercher soit :
les future client dans la base de données et lier à lui puis je les affiches
les clients lier à lui puis je les affiches
les deux pouis je les affiches
Pour "les deux" j'utilise la requete
Tout2 = "SELECT * FROM tbl_Clients WHERE tbl_Clients.tInitiales = 'B5557586' SELECT * FROM tbl_Projet WHERE tbl_Projet.tInitiales = 'B5557586'"
'connection au serveur
Set Connect = CreateObject("ADODB.Connection")
Set Recordset = CreateObject("ADODB.RecordSet")
Connect.Open "Provider=SQLOLEDB;Server=*********;Database=****************;Persist Security Info=False;Integrated Security=SSPI;" 'chaine de connection ou le mdp et l'utilisateur sont les meme que l'identification windows et définie par Integrated Security=SSP
Recordset.Open Tout2, Connect 'Create the recordset
If Recordset.BOF Then
MsgBox "ERREUR", vbCritical
Exit Sub
End If
ThisWorkbook.Worksheets("Résultat").Activate
Range("A2").CopyFromRecordset Recordset
Recordset.Close
Set Recordset = Nothing
Connect.Close 'fermeture de la connection à distancemais cela ne m'affiche que le premier select et pas le deuxieme , comment faire pour faire afficher les deux à la suite ?
Merci d'avance pour vos réponses.
Arthur
Re,
je vient d'essayer ça
DerLigne = Sheets("Résultat").Range("A65536").End(xlUp).Row
'Génération de la requete vérif1
Tout1 = "SELECT * FROM tbl_Clients WHERE tbl_Clients.tInitiales ='" & Environ("USERNAME") & "';"
Tout2 = "SELECT * FROM tbl_Clients WHERE tbl_Clients.tInitiales = 'B5557586'"
'connection au serveur
Set Connect = CreateObject("ADODB.Connection")
Set Recordset = CreateObject("ADODB.RecordSet")
Connect.Open "Provider=SQLOLEDB;Server=***************;Database=******************;Persist Security Info=False;Integrated Security=SSPI;" 'chaine de connection ou le mdp et l'utilisateur sont les meme que l'identification windows et définie par Integrated Security=SSP
Recordset.Open Tout2, Connect 'Create the recordset
If Recordset.BOF Then
MsgBox "ERREUR", vbCritical
Exit Sub
End If
ThisWorkbook.Worksheets("Résultat").Activate
Range("A2").CopyFromRecordset Recordset
Recordset.Close
Set Recordset = Nothing
Connect.Close 'fermeture de la connection à distance
'Génération de la requete vérif1
Tout1 = "SELECT * FROM tbl_Projet WHERE tbl_Projet.tInitiales = '" & Environ("USERNAME") & "';"
Tout2 = "SELECT * FROM tbl_Projet WHERE tbl_Projet.tInitiales = 'B5557586'"
'connection au serveur
Set Connect = CreateObject("ADODB.Connection")
Set Recordset = CreateObject("ADODB.RecordSet")
Connect.Open "Provider=SQLOLEDB;Server=***************;Database=****************;Persist Security Info=False;Integrated Security=SSPI;" 'chaine de connection ou le mdp et l'utilisateur sont les meme que l'identification windows et définie par Integrated Security=SSP
Recordset.Open Tout2, Connect 'Create the recordset
If Recordset.BOF Then
MsgBox "ERREUR", vbCritical
Exit Sub
End If
ThisWorkbook.Worksheets("Résultat").Activate
Range("A", DerLigne).CopyFromRecordset Recordset
Recordset.Close
Set Recordset = Nothing
Connect.Close 'fermeture de la connection à distancemais j'obtient l'erreur "La méthode 'Range' de l'objet '_Global' a échoué" , si quelqun sait comment corriger le code je suis preneur, ou alors me proposer une solutioj plus simple
Arthur
C'est bon,le code marche , c'était juste la variable DerLigne qui était trop haut dans le programme donc le code qui marche est celui la :
Client1 = "SELECT * FROM tbl_Clients INNER JOIN tbl_Projet ON IdClient = PtrIdClient WHERE tbl_Clients.tInitiales =" & Environ("USERNAME") & ";"
Client2 = "SELECT * FROM tbl_Clients INNER JOIN tbl_Projet ON IdClient = PtrIdClient WHERE tbl_Clients.tInitiales = 'B5557586' ;"
Prospects1 = "SELECT * FROM tbl_Clients FULL OUTER JOIN tbl_Projet ON IdClient = PtrIdClient WHERE (tbl_Clients.IdClient IS NULL OR tbl_Projet.PtrIdClient IS NULL) AND (tbl_Clients.tInitiales = '" & Environ("USERNAME") & "' OR tbl_Projet.tInitiales = '" & Environ("USERNAME") & "')"
Prospects2 = "SELECT * FROM tbl_Clients FULL OUTER JOIN tbl_Projet ON IdClient = PtrIdClient WHERE (tbl_Clients.IdClient IS NULL OR tbl_Projet.PtrIdClient IS NULL) AND (tbl_Clients.tInitiales = 'B5557586' OR tbl_Projet.tInitiales = 'B5557586')"
'connection au serveur
Set Connect = CreateObject("ADODB.Connection")
Set Recordset = CreateObject("ADODB.RecordSet")
Connect.Open "Provider=SQLOLEDB;Server=**********;Database=**********;Persist Security Info=False;Integrated Security=SSPI;" 'chaine de connection ou le mdp et l'utilisateur sont les meme que l'identification windows et définie par Integrated Security=SSP
Recordset.Open Prospects2, Connect 'Create the recordset
If Recordset.BOF Then
MsgBox "ERREUR", vbCritical
Exit Sub
End If
ThisWorkbook.Worksheets("Résultat").Activate
Range("A2").CopyFromRecordset Recordset
Recordset.Close
Set Recordset = Nothing
Connect.Close 'fermeture de la connection à distance
DerLigne = Sheets("Résultat").Range("A65536").End(xlUp).Row + 1
'connection au serveur
Set Connect = CreateObject("ADODB.Connection")
Set Recordset = CreateObject("ADODB.RecordSet")
Connect.Open "Provider=SQLOLEDB;Server=*********;Database=*******;Persist Security Info=False;Integrated Security=SSPI;" 'chaine de connection ou le mdp et l'utilisateur sont les meme que l'identification windows et définie par Integrated Security=SSP
Recordset.Open Client2, Connect 'Create the recordset
If Recordset.BOF Then
MsgBox "ERREUR", vbCritical
Exit Sub
End If
ThisWorkbook.Worksheets("Résultat").Activate
Cells(DerLigne, 1).CopyFromRecordset Recordset
Recordset.Close
Set Recordset = Nothing
Connect.Close 'fermeture de la connection à distance
MsgBox "Vos résultats ont étés chargés", vbInformation