Pytanie : Ekstrakt adres emaila od Dojazdowy notatka pole.

Cześć Ekspert,

How móc I wydobywać adres emaila od qryEmail.Body (notatka pole) i append tblEmail.Bounce w the ten sam Dojazdowy 2007 baza danych?

Thank ty!

Odpowiedź : Ekstrakt adres emaila od Dojazdowy notatka pole.

Być the adres emaila the JEDYNY rzecz w ten notatka pole? I " m ono być, więc ty musieć niektóre metoda że Adres emaila w the Notatka pole, i AFAIK tam  być żadny builtin makro- akcja który robić że - ty potrzebować Miarowy Wyrażenie, che móc tekst sznurek/kartoteka i ty dopasowywać sznurek, oparty na the "wyrażenie" ty dostawa.

The kod dołączać dołączać robić to. Właśnie kopiować/pasta tamte rzecz w nowy Standardowy Moduł (imię który moduł basTextFunctions, lub właśnie lubić że), i wtedy używać the FindEmailInString funkcja the pierwszy Adres emaila lokalizować w the sznurek. Że, zakładać ty mieć Forma na che the Notatka pole być teraźniejszy, ty móc guzik the wartość:

Okręt podwodny MyButton_Click ()
  Msgbox FindEmailInString (Me.YourMemoField)
Końcówka Okręt podwodny

Zauważać the kod dla ten Miarowy Wyrażenie przychodzić od John Nurick's znakomity strona tutaj: http://www.j.nurick.dial.pipex.com/Code/index.htm

Więcej o Miarowy Wyrażenie, widzieć nasz swój Patrick Matthew artykuł na Reg Swój: 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:
Jawny Funkcja FindEmailInString (StringToSearch Sznurek) Sznurek

Ciemnawy sExp Sznurek

sExp = "\ B [A-Z0-9. _%+-] +@ [A-Z0-9. -] + \. [A-Z] {2,4} \ B"
FindEmailInString rgxExtract (StringToSearch, sExp)

Końcówka Funkcja
Jawny Funkcja rgxExtract (Fakultatywny ByVal Cel Jako Wariant, _
    Fakultatywny Wzór Jako Sznurek = "", _
    Fakultatywny ByVal Rzecz Długo = (0), _
    Fakultatywny CaseSensitive Boolowski = Fałszywy, _
    Fakultatywny FailOnError Boolowski = Prawdziwy, _
    Fakultatywny Upierać się Boolowski = Fałszywy) _
  Jako Wariant
   
  'Miarowy wyrażeniowy dopasowywanie funkcja stosowny dla use
  'w VB/A ogólny i w Dojazdowy zapytanie.
  'John Nurick. Uaktualniony 14 Jan 06.
   
  'Brać rewizja sznurek (Cel) i miarowy wyrażenie
  '(Wzór), i fakultatywny Rzecz argument.
  '- Jeżeli Rzecz pomijać i substring Cel dopasowanie Wzór,
  '  powrót który substring.
  '- Jeżeli Wzór zawierać grupowanie nawias, substring Cel
  '  dopasowanie Deseniować, i Rzecz być integer, wracać the submatch
  '  precyzować Rzecz (pierwszy submatch być rzecz (0)). Jeżeli tam  być
  '  dosyć submatches, powrót Nieobowiązujący. Negatywny wartość Rzecz początek
  '  liczyć z the ostatni submatch.
  '- Jeżeli żadny dopasowanie, powrót Nieobowiązujący.
  '- Powrót Nieobowiązujący na błąd jeśli FailOnError być Prawdziwy.
  '  Zawsze dopasowywać przeciw the całkowity Cel (i.e. Globalny i
  '  Być być Prawdziwy).
  
  'Skrzynka dopasowanie niezależnie od skrzynka.
 
  'Upierać się kontrola czy the kompilować RegExp przedmiot
  'resztki w pamięć przygotowywać dla the następny wezwanie the
  'funkcja lub czy ono disposed natychmiast. To
  'znaczyć the funkcja móc używać w zapytanie bez
  ', i nowy RegExp przedmiot dla
  'przetwarzać rząd. Ale ono także znaczyć że the przedmiot
  'resztki w pamięć po the zapytanie biegać. The
  'protestować i uwalniać the pamięć, dzwonić ten funkcja jeden
  'ostatni raz bez argument.
  '
  'Dzwonić the funkcja z różny argument (e.g nowy
  'Wzór) recompiles the RegExp przedmiot, w ten sposób
  'the funkcja móc używać w różny zapytanie. Jakkolwiek tam 
  'móc problem jeżeli dwa nić dzwonić the funkcja przy
  'the ten sam czas.
 
  Const rgxPROC_NAME = "rgxExtract"
  Statyczny kruszec Jako Przedmiot 'VBScript_RegExp_55.RegExp
    'Statyczny deklaracja sposób my musieć
    'i kompilować the RegExp przedmiot każdy pojedynczy czas
    'the funkcja dzwonić.
  Ciemnawy oMatches Jako Przedmiot 'VBScript_RegExp_55.MatchCollection
   
  Na Błąd Rozpoczynający ErrHandler
  rgxExtract = Nieobowiązujący 'Brak powrót wartość
    'NB: jeżeli FailOnError być fałszywy, wracać Nieobowiązujący na błąd
 
  Jeżeli IsMissing (Cel) Wtedy
    'Kruszec być the sygnał dispose kruszec
    Ustalony kruszec = Nic
    Wyjście Funkcja 'z brak wartość
  Kończyć Jeżeli
   
  'Tworzyć the RegExp przedmiot jeżeli konieczny
  Jeżeli kruszec Być Kruszec Wtedy
    Ustawiać kruszec = CreateObject ("VBScript.Regexp")
  Kończyć Jeżeli
 
  Z kruszec
    'Sprawdzać czy the aktualny argument (cel Cel)
    'być różny od kruszec przechować w kruszec, i aktualizować
    '(w ten sposób w ten sposób the regex) tylko jeżeli konieczny.
    Jeżeli .IgnoreCase = .IgnoreCase Wtedy
      .IgnoreCase = Nie .IgnoreCase
    Kończyć Jeżeli
    . Globalny = Prawdziwy
    . Multiline = Prawdziwy
'    Jeżeli Multiline <> . Multiline Wtedy
'      . Multiline = Multiline
'    Kończyć Jeżeli
    Jeżeli Wzór <> . Wzór Wtedy
      . Wzór = Wzór
    Kończyć Jeżeli
 
  'W końcu, wykonywać the dopasowanie
    Jeżeli IsNull (Cel) Wtedy
      rgxExtract = Nieobowiązujący
    Inny
      Ustalony oMatches = oRE.Execute (Cel)
      Jeżeli oMatches.Count > (0) Wtedy
        Jeżeli oMatches ((0)) .SubMatches.Count = (0) Wtedy
          'Żadny () grupa w Wzór: wracać the dopasowanie
          Jeżeli Rzecz < 0="" Then="">= oMatches.Count
              'Pozytywny Rzecz przewyższać the liczba dopasowanie
              rgxExtract = Nieobowiązujący
              Jeżeli FailOnError Wtedy
                Err.Raise 9
              Kończyć Jeżeli
            Pakować Inny
              rgxExtract = oMatches (Rzecz)
          Końcówka Wybiórka
         
        Inny  'Tam  być jeden lub więcej () schwytany grupa w Wzór
              'wracać the jeden precyzować Rzecz
          Z oMatches ((0)) .SubMatches
            Jeżeli Rzecz < 0="" Then="">=. Obliczenie
                'Pozytywny Rzecz przewyższać the liczba submatches
                rgxExtract = Nieobowiązujący
                Jeżeli FailOnError Wtedy
                  Err.Raise 9
                Kończyć Jeżeli
              Pakować Inny 'ważny Rzecz liczba
                rgxExtract =. Rzecz (Rzecz)
            Końcówka Wybiórka
          Końcówka Z
        Kończyć Jeżeli
      Inny
        rgxExtract = Nieobowiązujący
      Kończyć Jeżeli
    Kończyć Jeżeli
  Kończyć Z
 
  'Sprzątać wyjście i normalny wyjście
  Jeśli nie Upierać się Wtedy Ustawiać kruszec = Upierać się
  Wychodzić Funkcja
 
ErrHandler:
  Jeżeli FailOnError Wtedy
    Z Błądzić
      Wybierać Skrzynka. Liczba
        'Zamieniać the brak "protestować-definiować błąd" wiadomość
        Skrzynka 9: . Opis = "Subscript z pasmo (the Rzecz liczba prosić" _
          & "być większy niż the liczba dopasowanie znajdować, lub the liczba" _
          & "(...)/nawias w the Wzór)."
        Skrzynka 13: . Opis = "Typ niedopasowanie, prawdopodobnie ponieważ" _
          & "the "" Cel "" argument móc nawracać smyczkowy"
        Skrzynka 5017: . Opis = "Składnia błąd w miarowy wyrażenie"
        Skrzynka 5018: . Opis = "Niespodziewany kwantyfikator w miarowy wyrażenie"
        Skrzynka 5019: . Opis = ""]" W miarowy wyrażenie "
        Skrzynka 5020: . Opis = "")" w miarowy wyrażenie "
      Skrzynka Inny
        Jeżeli kruszec Być Przedmiot Wtedy 'Nie Udać Się Regexp przedmiot
          . Opis = "Móc VBScript.RegExp przedmiot. " & Err.Description
        Inny 'Niespodziewany błąd
          . Opis = rgxPROC_NAME & ": " &. Opis
        Kończyć Jeżeli
      Kończyć Wybiórka
      Ustawiać kruszec = Nic
      . Podnosić Err.Number, rgxPROC_NAME, _
          rgxPROC_NAME & "(): " &. Opis
    Końcówka Z
  Inny 'Fail po cichu
    Err.Clear
    Ustalony kruszec = Nic
  Kończyć Jeżeli
Kończyć Funkcja
Inne rozwiązania  
 
programming4us programming4us