Fråga : Extrakte-posten tilltalar från en ta frammemo sätter in.

Hi experter,

How kan I-extrakte-posten tilltala från qryEmail.Body (memoen sätter in), och att fästa till tblEmail.Bounce i samma tar fram databas 2007?

Thank dig!
" klar "

Svar : Extrakte-posten tilltalar från en ta frammemo sätter in.

Är e-posten tilltalar ENDA memoen för objektet däri sätter in? I " M som slå vad den är inte, så du skulle måste att ha någon metod som finner att e-posten tilltalar i memoen sätter in, och AFAIK där är ingen macro handling för builtin som ska gör att - du ska behov att använda stamgästuttryck, som kan utvärdera en text stränger/sparar, och retur till dig matchad stränger, baserade på ”uttryckt” dig tillförsel.

Det kodifiera ska fäste nedanfört gör detta. Precis kopiera/deg de objekt in i en ny standard enhet (namnge att enhetsbasTextFunctions eller något något liknande som) och använder därefter FindEmailInStringen fungerar för att gå den första e-posten tillbaka tilltalar lokaliserat i stränga. Att att göra, att och att anta dig ha, en bilda, som memoen sätter in på, är närvarande, dig kunde inkludera en knäppas för att visa värdera:

Sub MyButton_Click ()
  Msgbox FindEmailInString (Me.YourMemoField)
Avsluta suben

Notera kodifiera för det stamgästuttryck kom från John Nuricks den utmärkta sidan här: http://www.j.nurick.dial.pipex.com/Code/index.htm

Se vår den egna Patrick Matthews artikeln på Reg-före detta att läsa mer om stamgästuttryck: 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:
Allmänhet fungerar FindEmailInString (StringToSearch som stränger) som stränger

Dunkel sExp som stränger

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

Avsluta fungerar
Allmänhet fungerar rgxExtract (valfria ByVal uppsätta som mål som varianten, _,
    Valfritt mönstra som stränger = "", _,
    Valfritt ByVal objekt som Long = 0, _,
    Valfritt CaseSensitive som Boolean = falskt, _,
    Valfria FailOnError som Boolean = True, _,
    Valfritt framhärda som Boolean = falsk) _,
  Som Variant
   
  'Att matcha för stamgästuttryck fungerar passande för bruk
  'i VB/A allmänt och ta fram in queries.
  'Vid John Nurick. Uppdaterat 14 Jan 06.
   
  'Tar ett sökande stränger (uppsätta som mål) och ett stamgästuttryck
  '(Mönstra) och ett valfritt objektargument.
  '- Om objektet utelämnas, och en substring av uppsätta som mål matcher mönstrar,
  '  retur som substring.
  '- Om mönstra inkluderar gruppera parenteser, en substring av uppsätta som mål
  '  matcher mönstrar, och objektet är ett heltal, går submatchen tillbaka
  '  specificerat av Objekt (första submatch är objekt 0). Om det inte finns
  '  nog submatches, ogiltiga retur. Negationen värderar av objektstart
  '  räkna med den sist submatchen.
  '- Om ingen match, ogiltiga retur.
  '- Retur som är ogiltiga på fel, om inte FailOnError är riktig.
  '  Matchar alltid mot det helt uppsätta som mål (dvs. globalt och
  '  Multiline var riktig).
  
  'CaseSensitive matcher utan hänsyn till fall.
 
  'Framhärda kontrollerar den sammanställde RegExpen anmärker huruvida
  'remains i minne ordnar till för den nästa appellen till
  'fungera, eller huruvida den ordnas av omgående. Detta
  'hjälpmedlet fungera kan användas i queries utan att ha
  'att skapa, sammanställa, använda och förstöra en nya RegExp anmärka för
  'varje ror att bearbetas. Men det också hjälpmedel som anmärka
  'har remains i minne efter queryen kört. Att att förstöra
  'anmärka och frigör minnet, appell som detta fungerar en
  'sista gång med inga argument.
  ',
  'Kalla fungera med olika argument (e.g. ett nytt
  'Mönstra) recompiles RegExpen anmärker, så
  'fungera kan användas i olika queries. However där
  'kan vara problem, om två trådar kallar fungera på
  'samma tid.
 
  Const rgxPROC_NAME = ”rgxExtract”,
  Statisk elektricitetmalm som anmärker 'VBScript_RegExp_55.RegExp
    'Statisk elektricitetförklaringhjälpmedel vi måste inte att skapa
    'och sammanställa RegExpen anmärker varje singeltid
    'fungera kallas.
  Dunkla oMatches som anmärker 'VBScript_RegExp_55.MatchCollection
   
  På felet GoTo ErrHandler
  rgxExtract = ogiltig 'standardretur värderar
    'OBS: om FailOnError är falsk, går ogiltigt på fel tillbaka
 
  Om IsMissing (uppsätta som mål), därefter
    'Denna är signalera som ska kasseras av malm
    Fastställd malm = ingenting
    Gå ut fungerar 'med standard värderar
  Avsluta om
   
  'Skapa RegExpen anmärker, om nödvändigt
  Om malm är ingenting därefter
    Fastställd malm = CreateObject (”VBScript.Regexp”)
  Avsluta om
 
  Med malm
    'Kontrollera huruvida strömargumenten (annat än uppsätta som mål),
    'var olik från de som lagras i malm och uppdatera dem
    '(recompiling därmed regexen) om endast nödvändigt.
    Om CaseSensitive = .IgnoreCase därefter
      .IgnoreCase = inte .IgnoreCase
    Avsluta om
    . Globalt = True
    . Multiline = True
'    Om Multiline <> . Multiline därefter
'      . Multiline = Multiline
'    Avsluta om
    Om mönstra <> . Mönstra därefter
      . Mönstra = mönstra
    Avsluta om
 
  Utför matchen, 'slutligen
    Om IsNull (uppsätta som mål), därefter
      rgxExtract = ogiltigt
    Annars
      Fastställda oMatches = oRE.Execute (uppsätta som mål),
      Om oMatches.Count > 0 därefter
        Om oMatches (0) .SubMatches.Count = 0 därefter
          'Ingen () grupp mönstrar in: gå matchen tillbaka
          Om objekt < 0="" Then="">= oMatches.Count
              'Realitetobjektet överskred numrera av matcher
              rgxExtract = ogiltigt
              Om FailOnError därefter
                Err.Raise 9
              Avsluta om
            Case annars
              rgxExtract = oMatches (objektet)
          Avsluta valt
         
        Annars  'det finns en eller flera () fångade grupper mönstrar in
              'gå den som tillbaka specificeras av Objekt
          Med oMatches (0) .SubMatches
            Om objekt < 0="" Then="">=. Räkning
                'Realitetobjektet överskred numrera av submatches
                rgxExtract = ogiltigt
                Om FailOnError därefter
                  Err.Raise 9
                Avsluta om
              Det giltiga objektet för fallet annars 'numrerar
                rgxExtract =. Objekt (objekt)
            Avsluta valt
          Avsluta med
        Avsluta om
      Annars
        rgxExtract = ogiltigt
      Avsluta om
    Avsluta om
  Avsluta med
 
  'Tidy upp, och det normala går ut
  Om att inte framhärda därefter fastställd malm = ingenting
  Gå ut fungerar
 
ErrHandler:
  Om FailOnError därefter
    Med fela
      Välj fallet. Numrera
        'Byt ut meddelandet ”för detdefinierade felet” för standard
        Fall 9: . Beskrivningen = ”subscripten ut ur spänner (objektet numrerar bedd” _,
          & ”var mer stor än numrera av fann matcher, eller än numrera av” _,
          & ”(...) gruppera/som fångar parenteser i mönstra).”,
        Fall 13: . Beskrivning = ”typmismatch, antagligen, därför att” _,
          & ”""en uppsätta som mål "" argument kunde inte konverteras till en stränga”,
        Fall 5017: . Beskrivning = ”syntaxfel i stamgästuttryck”,
        Fall 5018: . Beskrivning = ”oväntad quantifier i stamgästuttryck”,
        Fall 5019: . Beskrivning = ”förväntat ”]” i stamgästuttryck ",
        Fall 5020: . Beskrivning = ”förväntat ”)” i stamgästuttryck ",
      Fall annars
        Om malm är ingenting 'som missas därefter för att skapa Regexp, anmärka
          . Beskrivningen = ”kunde inte skapa VBScript.RegExp anmärker. ” & Err.Description
        Annars 'oväntat fel
          . Beskrivning = rgxPROC_NAME & ”: ” &. Beskrivning
        Avsluta om
      Avsluta valt
      Fastställd malm = ingenting
      . Lönelyft Err.Number, rgxPROC_NAME, _,
          rgxPROC_NAME & ”(): ” &. Beskrivning
    Avsluta med
  Annars 'kuggning tyst
    Err.Clear
    Fastställd malm = ingenting
  Avsluta om
Avsluta fungerar
Andra lösningar  
 
programming4us programming4us