Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2011, 09h06   #1
Invité de passage
 
Homme Philippe
Developpeur access
Inscription : décembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : Nouvelle-Calédonie

Informations professionnelles :
Activité : Developpeur access
Secteur : Transports

Informations forums :
Inscription : décembre 2011
Messages : 7
Points : 3
Points : 3
Par défaut Opérateur absent Recordsource formulaire

Bonjour à tous,
je developpe une petite base de données sous access 2007 dans laquelle deux listes deroulantes d'un formulaire me permettent de mettre a jour les enregistrements d'un sous-formulaire. Ce n'est pas la premiere fois que je fais cela mais la j'ai un code d'erreur (operateur absent) sur la requete SQL et je ne comprends vraiment pas pourquoi. Pouvez-vous m'aider?

je vous livre le code:

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
'met a jour les enregistrements du sous formulaire en fonction des criteres
 
Dim champcrit, critere, compt As Variant
Dim strNewRecord, moncheck, stTri As String
 
'initialise les valeurs
 
champcrit = Me!Ch_Crit1 (Liste qui renvoit les champs de la requete source)
critere = Me!Crit1 (liste mise a jour par les valeurs distinctes de champcrit)
 
strNewRecord = "SELECT R_tri_date.* FROM R_tri_date WHERE (((R_tri_date." & champcrit & ")= '" & critere & "')) ORDER BY R_tri_date.Numero;"
stTri = "(((R_tri_date." & champcrit & ")='" & critere & "'))"
 
End Select
 
'met a jour les enregistrements du sous formulaire
 
Forms![F_RECH]![SF_FREX].Form.RecordSource = strNewRecord
Me!SF_FREX.Requery
'met a jour le nombre d'enregistrement
compt = DCount("*", "R_tri_date", stTri)
Me!E_crit.Caption = compt & " fiches correspondent aux critères sélectionnés"
 
End Sub
le copier/coller du code a generé des retours sur l'expression SQL mais elle se trouve en une seule ligne dans mon code.
A noter que cette fonction fonctionnait tres bien sous access 2003 mais je suis passé à 2007 et depuis je n'arrive plus a la faire fonctionner.
L'erreur est sur la propriete recordsource (operateur absent ou erreur de syntaxe) et aussi sur la fonction DCount.
Merci de bien vouloir m'aider car je m'arrache les cheveux.
Jordywolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 23h19   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 479
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 479
Points : 7 568
Points : 7 568
Vérfie si tu n'as pas une référence brisée.

Vois aussi si définir ton objet recordset de type DAO.Recordset ne résoudrait pas le problème.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 05h19   #3
Invité de passage
 
Homme Philippe
Developpeur access
Inscription : décembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : Nouvelle-Calédonie

Informations professionnelles :
Activité : Developpeur access
Secteur : Transports

Informations forums :
Inscription : décembre 2011
Messages : 7
Points : 3
Points : 3
Merci marot,

mais je pense que cela est du au fait que j'ai des apostrophes dans mes critères et je vais résoudre cela en changeant les apostrophes par des guillemets.
Encore merci
A+
Jordywolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 20h54   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 479
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 479
Points : 7 568
Points : 7 568
Oui en effet je n'avais pas pensé à cela.

Tu peux aussi si tu veux doubler tes ' dans tes paramètres avec une petite fonction du type :

Code :
1
2
3
4
5
6
7
8
9
public sub DoublerApostrophe(prmValeur as variant) as variant
  dim result as variant:result=null
 
  if not isnull(prmValeur) then
    result=replace(prmvaleur,"'","''")
  end if
 
  DoublerApostrophe=result
end function
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h18.


 
 
 
 
Partenaires

Hébergement Web