Problème syntaxe en VBA pour champ oui/non
Bonjour à tous,
Ce code informe dans la liste déroulante ChoixChamp les champs d'une table, quand le champ est sélectionné la deuxième liste déroulante ChoixValeur informe toutes les données représentées dans le champ sélectionné. ex: si choix prénom sélectionné dans ChoixChamp alors le champ ChoixValeur indique tous les prénoms se trouvant dans le champs Prénom.
Le problème est quand je sélectionne, après l'ouverture du formulaire d'où les deux listes déroulantes sont, dans la liste déroulante ChoixChamp un champ soit numérique soit texte soit date le choixValeur est renseigné et le sous-formulaire aussi, mais quand après plusieur sélections de champ je sélectionne un choix oui/non ACCESS m'indique une erreur de propriété du champ comme " vous avez inséré une valeur texte dans un champ non compatible... Avez-vous une solution ? Merci à vous tous et bonne soirée
Code:
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 64 65 66 67 68 69 70 71 72 73
| Private Sub ChoixValeur_AfterUpdate()
Dim ChampFiltre As String, Condition As String
Dim MonSQL As String, NbEnreg
Dim DateE As Date
'affecte le nom du champ sélectionné
'sur la liste déroulante ChoixChamp
'à la variable ChampFiltre
ChampFiltre = Me.ChoixChamp
'affecte la valeur sélectionnée
'sur la liste déroulante ChoixValeur
'à la variable condition
Condition = Me.ChoixValeur
'Teste si le code filtré est le studio
'car c'est le seul champ de type numérique
'dans la table Clients
'La clause WHERE doit être traitée différemment
'sur un champ Numérique et sur un champ Texte
If ChampFiltre = "Studio" Then
MonSQL = "SELECT * FROM Clients Where " & ChampFiltre & " = " & Condition
'ElseIf permet de créer des tests multiples
'ex: dans ce contexte les champs sont ou Integer ou Date ou String
'Il faut donc énumérer toutes les types de données.
ElseIf ChampFiltre = "Number" Then
MonSQL = "SELECT * FROM Clients Where " & ChampFiltre & " = " & Condition
ElseIf ChampFiltre = "CodeTitre" Then
MonSQL = "SELECT * FROM Clients Where " & ChampFiltre & " = " & Condition
ElseIf ChampFiltre = "Comptecomptable" Then
MonSQL = "SELECT * FROM Clients Where " & ChampFiltre & " = " & Condition
'Pour un champ DATE on doit introduire avant le guillemet, le diese puis fermer
'la condition par un & espace, guillemet, dièse et guillemet.
ElseIf ChampFiltre = "DateE" Then
MonSQL = "SELECT * FROM Clients Where " & ChampFiltre & " =#" & Condition & "#"
ElseIf ChampFiltre = "DateS" Then
MonSQL = "SELECT * FROM Clients Where " & ChampFiltre & " =#" & Condition & "#"
ElseIf ChampFiltre = "ADSL" Then
MonSQL = "SELECT * FROM Clients Where " & ChampFiltre & " = " & Condition
ElseIf ChampFiltre = "Analogique" Then
MonSQL = "SELECT * FROM Clients Where " & ChampFiltre & " = " & Condition
ElseIf ChampFiltre = "CodeTitre" Then
MonSQL = "SELECT * FROM Clients Where " & ChampFiltre & " = " & Condition
ElseIf ChampFiltre = "PasDeTéléphone" Then
MonSQL = "SELECT * FROM Clients Where " & ChampFiltre & " = " & Condition
Else
'Dans le cas d'un champ de type Texte
'la condition WHERE doit inclure un certain nombre de guillemets
' ou d'apostrophes
MonSQL = "SELECT * FROM Clients WHERE " & ChampFiltre & " = " & """" & Condition & """"
DoCmd.Requery
End If
'attribue à la propriété RecordSource du sous-formulaire
'SF_RechercheClients
'l'intruction SQL nommé MonSQL
Me.SF_rechercheClients.Form.RecordSource = MonSQL
End Sub |
Problème syntaxe en VBA pour champ oui/non
Salut,
La Ligne qui me pose problème c'est dans le sous-formulaire ci-joint le code:
Code:
Me.SF_rechercheClients.Form.RecordSource = MonSQL
quand je sélectionne plusieurs types de champs numériques ou textes tout va bien les données se positionnent dans mon sous-formulaire, puis si je séléctionne un champ oui/non alors blocage et j'ai en surbrillance mon code si dessus.
Par contre si le premier choix est un champs oui/non cela fonctionnne et les données se positionnent dans mon sous-formulaire, mais si après je sélectionne un champ texte ou numérique alors de nouveau blocage et c'est toujours le même code qui est surligné c'est à dire le code ci-dessus.
La chose bizarre c'est que je peux sélectionner aussi bien du texte puis du numérique puis du texte et encore du numérique sans rencontrer de problème et c'est simplement quand je choisi un champ oui/non que les problème arrivent.
Je dois donc avoir un problème de syntaxe pour définir le champ oui/non dans mon code.
Si tu as une solution ......
Merci et A+
Problème syntaxe en VBA pour champ oui/non
Salut LedzeppII,
J'ai essayé ta syntaxe sans succès. je t'envoi ma base en Zip afin que tu pisse voir réellement mon problème. En faite si dans le formulaire " rechercheClients" je sélectionne dans la liste déroulante ChoixChamp le un champs oui/non comme les champs ADSL, Analogique ou pasDeTéléphone lors je sélectionne le oui ou le non et une fenêtre me demande d'indiquer la valeur du champ si j'indique 0 ou -1 cela fonctionne. Je souhaite simplement éviter d'indiquer la valeur 0 ou -1.
As tu une solution à ce problème. Je pense que quelque par une erreur de syntaxe a été faite mais où je ne le sais pas.
Une bonne soirée à tous
Franck