Bonjour,
Jai une fonction qui permet de cherche une liste d'email dans une table et de les exporter sous outlook.
Je choisi sur un formulaire les criteres de filtre sur la table.
Mon probleme est que si je souhaites choisir toutes les valeurs d'un criteres sans rien selectioner, un genre de * dans la requete en vba.
Voici mon code initiale complet:
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
| Private Sub Commande2_Click()
Dim db As Database
Set db = CurrentDb
Dim SQL As String, RS As DAO.Recordset
SQL = "SELECT Mid([email],9,Len([email])-9) AS EmailFormatte, Client.idTypeClient, Client.idActiviteClient, AdresseClient.idPays, TypeAdresseClient.AdresseDeFacturation FROM TypeAdresseClient INNER JOIN (Client INNER JOIN AdresseClient ON Client.idClient = AdresseClient.idClient) ON TypeAdresseClient.idTypeAdresseClient = AdresseClient.idTypeAdresseClient WHERE Mid([email],9,Len([email])-9) Is Not Null AND Client.idTypeClient= " & Me![TypeClient] & " AND Client.idActiviteClient=" & Me![ActiviteClient] & " AND AdresseClient.idPays=" & Me![Pays] & " AND TypeAdresseClient.AdresseDeFacturation=Yes;"
Set RS = db.OpenRecordset(SQL)
Dim list As String
Nb1 = RS.RecordCount
If [Nb1] > 0 Then
Do
list = list & RS![EmailFormatte] & ";"
RS.MoveNext
Loop While Not RS.EOF
'Loop While rs.RecordCount < 90
testing = list
Nb = RS.RecordCount
If [testing] <> "" Then
Application.FollowHyperlink "mailto:" & [testing]
End If
End If
testing = Null
End Sub |
LA aprtie qui est nous interresse:
SQL = "SELECT Mid([email],9,Len([email])-9) AS EmailFormatte, Client.idTypeClient, Client.idActiviteClient, AdresseClient.idPays, TypeAdresseClient.AdresseDeFacturation FROM TypeAdresseClient INNER JOIN (Client INNER JOIN AdresseClient ON Client.idClient = AdresseClient.idClient) ON TypeAdresseClient.idTypeAdresseClient = AdresseClient.idTypeAdresseClient WHERE Mid([email],9,Len([email])-9) Is Not Null AND Client.idTypeClient= " & Me![TypeClient] & " AND Client.idActiviteClient=" & Me![ActiviteClient] & " AND AdresseClient.idPays=" & Me![Pays] & " AND TypeAdresseClient.AdresseDeFacturation=Yes;"
Et voici un peu le genre de truc que je souhaiterais, mais ca ne fonctionne pas, la je lai modifier uniquement pour le type client deja dans un premier temps: à noter que Me!TypeClient est le controle deroulant sur le form et TypeClients est la variable que je crée pour la requete VBA:
1 2 3 4 5 6
| Dim TypeClients As String
TypeClients = Me![TypeClient]
If Me![TypeClient] Then
TypeClients = "*"
End If
SQL = "SELECT Mid([email],9,Len([email])-9) AS EmailFormatte, Client.idTypeClient, Client.idActiviteClient, AdresseClient.idPays, TypeAdresseClient.AdresseDeFacturation FROM TypeAdresseClient INNER JOIN (Client INNER JOIN AdresseClient ON Client.idClient = AdresseClient.idClient) ON TypeAdresseClient.idTypeAdresseClient = AdresseClient.idTypeAdresseClient WHERE Mid([email],9,Len([email])-9) Is Not Null AND Client.idTypeClient= " & TypeClients & " AND Client.idActiviteClient=" & Me![ActiviteClient] & " AND AdresseClient.idPays=" & Me![Pays] & " AND TypeAdresseClient.AdresseDeFacturation=Yes;" |
Merci pour votre aide
Partager