Question : Email address d'extrait d'un champ de note d'accès.

Salut les experts, le

How peuvent j'extraient l'email address à partir de qryEmail.Body (champ de note) et l'apposent à tblEmail.Bounce dans la même base de données 2007 d'accès ?

Thank vous !
class= de

Réponse : Email address d'extrait d'un champ de note d'accès.

L'email address est-il le SEUL article dans ce domaine de note ? I " m le pariant n'est pas, ainsi vous devriez avoir une certaine méthode pour trouver cet email address dans le domaine de note, et AFAIK là n'est aucune macro action de builtin qui suffira que - vous devrez employer les expressions régulières, qui peuvent évaluer une corde des textes/dossier et te renvoyer une corde assortie, basées sur « l'expression » vous approvisionnement.

Le code joint ci-dessous fera ceci. Juste la copie/pâte ces articles dans un nouveau module standard (nom qui des basTextFunctions de module, ou n'importe quoi de pareil), et emploient alors la fonction de FindEmailInString pour renvoyer le premier email address a placé dans la corde. Pour faire que, en vous assumant avoir une forme sur laquelle le champ de note est présent, vous pourriez inclure un bouton pour montrer la valeur :

Substrater MyButton_Click ()
  Msgbox FindEmailInString (Me.YourMemoField)
Sous-marin d'extrémité

Noter le code pour cette expression régulière est venu de l'excellente page de John Nurick ici : http://www.j.nurick.dial.pipex.com/Code/index.htm

Pour lire plus au sujet des expressions régulières, voir le notre propre article de Patrick Matthew sur le repérage ex : http://www.experts-exchange.com/articles/Programming/Languages/Visual_Basic/Using-Regular-Expressions-in-Visual-Basic-for-Applications-and-Visual-Basic-6.html?sfQueryTermInfo=1+30+express+regular





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 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 :
142 :
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 :
152 :
153 :
154 :
155 :
156 :
157 :
158 :
159 :
160 :
161 :
162 :
163 :
164 :
165 :
166 :
167 :
168 :
169 :
170 :
171 :
172 :
173 :
174 :
175 :
176 :
177 :
178 :
179 :
180 :
181 :
182 :
183 :
184 :
185 :
186 :
Fonction publique FindEmailInString (StringToSearch comme corde) comme corde

Faible sExp comme corde

sExp = « \ b [A-Z0-9. _%+-] +@ [A-Z0-9. -] + \. [A-Z] {2.4} \ b »
rgxExtract de FindEmailInString (StringToSearch, sExp)

Fonction de fin
rgxExtract public de fonction (cible facultative de ByVal comme variante, _
    Modèle facultatif comme corde = "", _
    Article facultatif de ByVal en tant que longtemps = 0, _
    Distinguant majuscules et minuscules facultatif comme booléen = faux, _
    FailOnError facultatif comme booléen = rectifient, _
    Facultatif persister en tant que booléen = faux) _
  Comme variante
   
  'Fonction assortie d'expression régulière appropriée pour l'usage
  'dans VB/A généralement et dans des questions d'accès.
  'Par John Nurick. 14 janvier 06 mis à jour.
   
  'Prend une corde de recherche (cible) et une expression régulière
  '(Modèle), et un argument facultatif d'article.
  '- Si l'article est omis et une sous-chaîne de cible assortit le modèle,
  '  retours qui sous-chaîne.
  '- Si le modèle inclut grouper des parenthèses, une sous-chaîne de cible
  '  assortit le modèle, et l'article est un nombre entier, renvoie le submatch
  '  spécifique par Item (le premier submatch est le point 0). S'il n'y a pas
  '  assez de submatches, nulle de retours. Valeurs négatives de début d'article
  '  comptant avec le dernier submatch.
  '- Si aucune allumette, retours n'annulent.
  '- Les retours annulent sur l'erreur à moins que FailOnError soit vrai.
  '  Assortit toujours contre la cible entière (c.-à-d. global et
  '  Multiligne être vrai).
  
  'Allumettes distinguant majuscules et minuscules indépendamment de cas.
 
  'Persistent les commandes si l'objet compilé de RegExp
  'reste dans la mémoire prête pour le prochain appel au
  'fonction ou si elle est débarrassée immédiatement. Ceci
  'signifie que la fonction peut être employée dans les questions sans avoir
  'pour créer, compiler, utiliser-et détruisent un nouvel objet de RegExp pour
  'chaque rangée étant traitée. Mais il signifie également que l'objet
  les 'restes dans la mémoire après la question ont fonctionné. Pour détruire
  'objecter et libérer la mémoire, appellent cette fonction une
  'la fois passée sans des arguments.
  '
  'Appelant la fonction avec différents arguments (par exemple un nouveau
  Le 'modèle) recompiles l'objet de RegExp, ainsi
  'la fonction peut être employée dans différentes questions. De quelque manière que là
  'peuvent être les problèmes si deux fils appellent la fonction à
  'le même temps.
 
  rgxPROC_NAME de Const = « rgxExtract »
  Minerai statique comme objet 'VBScript_RegExp_55.RegExp
    'Des moyens statiques de déclaration nous ne devons pas créer
    'et compiler l'objet de RegExp chaque seule heure
    'la fonction s'appelle.
  Faibles oMatches comme objet 'VBScript_RegExp_55.MatchCollection
   
  Sur l'erreur ErrHandler GoTo
  valeur de retour de défaut de rgxExtract = de nulle '
    'NOTA: : si FailOnError est faux, renvoie la nulle sur l'erreur
 
  S'IsMissing (cible) puis
    'C'est le signal pour se débarrasser du minerai
    Placer le minerai = rien
    Sortir la fonction 'avec la valeur par défaut
  Finir si
   
  'Créer l'objet de RegExp au besoin
  Si le minerai n'est rien alors
    Placer le minerai = CreateObject (« VBScript.Regexp »)
  Finir si
 
  Avec du minerai
    'Vérifier si les arguments courants (autre que la cible)
    'être différent de ceux stockés en minerai, et les mettre à jour
    '(recompiling de ce fait le regex) seulement au besoin.
    Si distinguant majuscules et minuscules = .IgnoreCase alors
      .IgnoreCase = pas .IgnoreCase
    Finir si
    . Global = rectifier
    . Multiligne = rectifier
'    Si multiligne <> . Multiligne puis
'      . Multiligne = multiligne
'    Finir si
    Si modèle <> . Modèle alors
      . Modèle = modèle
    Finir si
 
  'En conclusion, exécuter l'allumette
    S'IsNull (cible) puis
      rgxExtract = nulle
    Autrement
      Placer les oMatches = l'oRE.Execute (la cible)
      Si oMatches.Count > 0 puis
        Si oMatches (0) .SubMatches.Count = 0 puis
          'No () groupe dans le modèle : renvoyer l'allumette
          Si article < 0="" Then="">= oMatches.Count
              'L'article positif a dépassé le nombre d'allumettes
              rgxExtract = nulle
              Si FailOnError alors
                Err.Raise 9
              Finir si
            Enfermer autrement
              rgxExtract = oMatches (article)
          Extrémité choisie
         
        Autrement  'il y a un ou plusieurs () groupes capturés dans le modèle
              'renvoyer celui spécifique par Item
          Avec les oMatches (0) .SubMatches
            Si article < 0="" Then="">=. Compte
                'L'article positif a dépassé le nombre de submatches
                rgxExtract = nulle
                Si FailOnError alors
                  Err.Raise 9
                Finir si
              Enfermer autrement 'le nombre d'article valide
                rgxExtract =. Article (article)
            Extrémité choisie
          Extrémité avec
        Finir si
      Autrement
        rgxExtract = nulle
      Finir si
    Finir si
  Finir avec
 
  'Ranger et sortie normale
  Sinon persistent le minerai alors réglé = rien
  Sortir la fonction
 
ErrHandler :
  Si FailOnError alors
    Avec errer
      Choisir le cas. Nombre
        'Remplacer le message « d'erreur objet-définie » de défaut
        Affaire 9 : . Description = « indice inférieur hors de gamme (le _ demandé de nombre d'article »
          et « était plus grand que le nombre d'allumettes trouvées, ou que le nombre » de _
          et « (...) groupement/capturant des parenthèses dans le modèle). »
        Affaire 13 : . Description = « type disparité, probablement parce que » _
          et « l'argument de "" de cible de "" n'a pas pu être converti en corde »
        Affaire 5017 : . Description = « erreur de syntaxe dans l'expression régulière »
        Affaire 5018 : . Description = « quantifier inattendu dans l'expression régulière »
        Affaire 5019 : . Description = « prévu « ] » dans l'expression régulière "
        Affaire 5020 : . Description = « prévu ") » dans l'expression régulière "
      Cas autrement
        Si le minerai n'est rien alors 'pour créer l'objet de Regexp
          . La description = « n'a pas pu créer l'objet de VBScript.RegExp.  » Et Err.Description
        Autrement 'erreur inattendue
          . Description = rgxPROC_NAME et « :  » et. Description
        Finir si
      Finir choisi
      Placer le minerai = rien
      . Soulever Err.Number, rgxPROC_NAME, _
          rgxPROC_NAME et « () :  » et. Description
    Extrémité avec
  Autrement 'échouer silencieusement
    Err.Clear
    Placer le minerai = rien
  Finir si
Finir la fonction
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us