Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
834 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  problème avec apostrophes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème avec apostrophes

n°660669
fun74
Posté le 02-03-2004 à 10:20:08  profilanswer
 

Bonjour,  
 
je rencontre qq problèmes dans ma base de données access à cause des apostrophes:  
- je ne peux pas avoir de fiches avec des apostrophes dans les champs car le logiciel ne me les accepte pas dans la recherche:  
voilà le code:  
Code:  
[/cpp]Private Sub Commande29_Click()  
Dim recRecherche As DAO.Recordset  
Dim reqRecherche As String  
Dim marqueur As Integer  
marqueur = 0  
'requete de base pour la recherche  
'reqRecherche = "SELECT Entreprises.[Raison sociale], Entreprises.Adresse, Entreprises.[Adresse 2], " & _  
" Entreprises.[Code postal], Entreprises.Ville, Entreprises.Pays, Interlocuteurs.Titre, Interlocuteurs.[Nom interlocuteur], Interlocuteurs.Prénom,Interlocuteurs.Fonction, " & _  
" Entreprises.[Type de relation], Contrats.Type, Contacts.Intéret, Contacts.[Date du contact]," & _  
" Contrats.Date FROM ((Entreprises LEFT JOIN Contrats ON Entreprises.[Raison sociale] = Contrats.Société)" & _  
" LEFT JOIN Interlocuteurs ON Entreprises.[Raison sociale] = Interlocuteurs.Société) " & _  
" LEFT JOIN Contacts ON Interlocuteurs.[Nom interlocuteur] = Contacts.Interlocuteur " & _  
" GROUP BY Entreprises.[Raison sociale], Entreprises.Adresse, Entreprises.[Adresse 2], " & _  
" Entreprises.[Code postal], Entreprises.Ville, Entreprises.Pays, Interlocuteurs.Fonction, " & _  
" Entreprises.[Type de relation], Contrats.Type, Contacts.Intéret, Contacts.[Date du contact], " & _  
" Contrats.Date  "  
reqRecherche = "SELECT Entreprises.[Raison sociale], Entreprises.Adresse, Entreprises.[Adresse 2], " & _  
" Entreprises.[Code postal], Entreprises.Ville, Entreprises.Pays, Interlocuteurs.Titre, " & _  
" Interlocuteurs.[Nom interlocuteur], Interlocuteurs.Prénom, Interlocuteurs.Fonction, " & _  
" Entreprises.[Type de relation], Contrats.Type, Contacts.Intéret, Contacts.[Date du contact], " & _  
" Contrats.Date " & _  
" FROM ((Entreprises LEFT JOIN Contrats ON Entreprises.[Raison sociale] = Contrats.Société) " & _  
" LEFT JOIN Interlocuteurs ON Entreprises.[Raison sociale] = Interlocuteurs.Société) " & _  
" LEFT JOIN Contacts ON Interlocuteurs.[Nom interlocuteur] = Contacts.Interlocuteur" & _  
" GROUP BY Entreprises.[Raison sociale], Entreprises.Adresse, Entreprises.[Adresse 2], " & _  
" Entreprises.[Code postal], Entreprises.Ville, Entreprises.Pays, Interlocuteurs.Titre, " & _  
" Interlocuteurs.[Nom interlocuteur], Interlocuteurs.Prénom, Interlocuteurs.Fonction, " & _  
" Entreprises.[Type de relation], Contrats.Type, Contacts.Intéret, Contacts.[Date du contact]," & _  
" Contrats.Date"  
'concatenation des criteres des recherche  
If Me.Rech_Fonction <> "" Then  
    reqRecherche = "" & reqRecherche & " HAVING(((Interlocuteurs.Fonction) = '" & Me.Rech_Fonction & "')) "  
    marqueur = 1  
End If  
    If Me.Rech_TypeRel <> "" Then  
    reqRecherche = "" & reqRecherche & "" & IIf(marqueur = 1, Me.txt_ANDOR_typerel, " HAVING " ) & "(((Entreprises.[Type de relation]) = '" & Me.Rech_TypeRel & "')) "  
    If marqueur <> 1 Then  
        marqueur = 1  
    End If  
     
End If  
If Me.Rech_TypeContrat <> "" Then  
    reqRecherche = "" & reqRecherche & "" & IIf(marqueur = 1, Me.txt_ANDOR_typecontrat, " HAVING " ) & "  (((Contrats.Type) = '" & Me.Rech_TypeContrat & "')) "  
If marqueur <> 1 Then  
        marqueur = 1  
    End If  
     
End If  
If Me.Rech_IntPot <> "" Then  
    reqRecherche = "" & reqRecherche & "" & IIf(marqueur = 1, Me.txt_ANDOR_intPot, " HAVING " ) & "  (((Contacts.Intéret) = '" & Me.Rech_IntPot & "'))"  
If marqueur <> 1 Then  
        marqueur = 1  
    End If  
     
End If  
If Me.Rech_IntPot1 <> "" Then  
    reqRecherche = "" & reqRecherche & "" & IIf(marqueur = 1, Me.txt_ANDOR_intPot1, " HAVING " ) & "  (((Contacts.Intéret) = '" & Me.Rech_IntPot1 & "'))"  
If marqueur <> 1 Then  
        marqueur = 1  
    End If  
     
End If  
If Me.Rech_IntPot2 <> "" Then  
    reqRecherche = "" & reqRecherche & "" & IIf(marqueur = 1, Me.txt_ANDOR_intPot2, " HAVING " ) & "  (((Contacts.Intéret) = '" & Me.Rech_IntPot2 & "'))"  
If marqueur <> 1 Then  
        marqueur = 1  
    End If  
     
End If  
If Me.Rech_DateContactDebut <> "" And Me.Rech_DateContactFin <> "" Then  
    reqRecherche = "" & reqRecherche & "" & IIf(marqueur = 1, Me.txt_ANDOR_DateContact, " HAVING " ) & " (((Contacts.[Date du contact]) Between #" & Me.Rech_DateContactDebut & "# And #" & Me.Rech_DateContactFin & "#))"  
If marqueur <> 1 Then  
        marqueur = 1  
    End If  
     
End If  
If Me.Rech_DateContratDebut <> "" And Me.Rech_DateContratFin <> "" Then  
    reqRecherche = "" & reqRecherche & "" & IIf(marqueur = 1, Me.txt_ANDOR_DateContrat, " HAVING " ) & "(((Contrats.Date) Between #" & Me.Rech_DateContratDebut & "# And #" & Me.Rech_DateContratFin & "#))"  
End If  
'Afficher la ligne suivante pour débugger au cas où la requête ne fonctionne pas  
'MsgBox "" & reqRecherche  
Set recRecherche = CurrentDb.OpenRecordset(reqRecherche)  
 
 
'Insertion des résultats dans la table T_RESULTATRECHERCHE  
CurrentDb.Execute ("DELETE * FROM T_RESULTATRECHERCHE" )  
While recRecherche.EOF <> True  
    CurrentDb.Execute ("INSERT INTO T_RESULTATRECHERCHE([Raison sociale],[Adresse],[Adresse 2],[Code Postal],[Ville],[Pays],[Titre],[Nom interlocuteur],[Prénom]) " & _  
    " VALUES('" & recRecherche![Raison sociale] & "','" & recRecherche!Adresse & "','" & recRecherche![Adresse 2] & "'," & _  
    "'" & recRecherche![Code postal] & "','" & recRecherche![Ville] & "','" & recRecherche![Pays] & "'," & _  
    "'" & recRecherche![Titre] & "','" & recRecherche![Nom interlocuteur] & "','" & recRecherche![Prénom] & "')" )  
         
    recRecherche.MoveNext  
Wend  
'affichage des résultats  
If MsgBox("Voulez vous afficher les résultats ?", vbYesNo, "Résultats de la recherche" ) = vbYes Then  
    DoCmd.OpenQuery "T_RESULTATRECHERCHE Requête"  
    End If  
End Sub

Code :
  1. - je rencontre également ce problème dans un code sur un bouton qui utilise un champ
  2. voici le code:
  3. Code:
  4. [cpp]Private Sub contacts_Click()
  5. On Error GoTo Err_contacts_Click
  6.     Dim stDocName As String
  7.     Dim stLinkCriteria As String
  8.     stDocName = "Interlocuteurs"
  9.     stLinkCriteria = "Interlocuteurs.Société = '" & Me.Raison_sociale & "'"
  10.     DoCmd.OpenForm stDocName, , , stLinkCriteria
  11. Exit_contacts_Click:
  12.     Exit Sub
  13. Err_contacts_Click:
  14.     MsgBox Err.Description
  15.     Resume Exit_contacts_Click
  16.    
  17. End Sub


 
Que peut-on faire?
 
Merci d'avance

mood
Publicité
Posté le 02-03-2004 à 10:20:08  profilanswer
 

n°660876
pumpkin031​2
Posté le 02-03-2004 à 13:39:34  profilanswer
 

En effet, vb ne "voit" pas un code écrit aprés une apostrophe.
Dans ton code sur bouton (ce sera pareil pour ton autre code, mais il était trop long, j'ai pas tout lu), si la valeur selectionnée de ton champs "Raison_sociale" comporte une apostrophe, ça fait planter ton code. Il faut donc mettre cette valeur entre guillemets, de façon à ce que l'apostrophe soit inclu dans la chaine de texte.
En modifiant ton code avec cette valeur, ça devrait fonctionner :
 
Dim Quote
Quote = """"
 
stLinkCriteria = "Interlocuteurs.Société = " & Quote & Me.Raison_sociale & Quote
 
(remplace les apostrophes de ton code par cette "Quote", et il incluera les apostrophes de tes raisons sociales dans la chaine de texte.)

n°660939
latruffe
Bdovore
Posté le 02-03-2004 à 14:27:44  profilanswer
 

Autre solution : tu double les quote ...
 
Si tu remplace le ' qui est dans ta variable par par '' et ça marche.
 

Code :
  1. Genre maVariable = Replace(maVariable, "'", "''" ) avant d'executer ta commande.


Message édité par latruffe le 02-03-2004 à 14:28:04

---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  problème avec apostrophes

 

Sujets relatifs
Gros problème pour réaliser un programmeProbleme de recopie de champs
programmation QT : problème de débutant[Posgres+Tomcat] Problème de driver
[Coppermine] problème d'instalation coppermine :??: (galerie d'image)[ASP] Problème avec formulaire
[DEBUTANT]Problème avec const charpetit probleme epineux d'authentification automatique
Probleme de menuProblème avec les apostrophes en programmation Mysql
Plus de sujets relatifs à : problème avec apostrophes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR