Frage : Auszugemail address von einem Zugangsprotokollfeld.

Hallo können Experten,

How ich extrahieren email address von qryEmail.Body (Protokollfeld) und hinzufügen zu tblEmail.Bounce in der gleichen Zugangsdatenbank 2007?

Thank Sie!

Antwort : Auszugemail address von einem Zugangsprotokollfeld.

Ist das email address das EINZIGE Einzelteil in diesem Protokollfeld? I " m es wettend ist nicht, also würden Sie irgendeine Methode haben müssen, zum dieses email address im Protokollfeld zu finden, und AFAIK dort ist keine builtin Makrotätigkeit, die dass tut - Sie müssen die regulären Ausdrücke, die verwenden eine Textfolge/eine Akte auswerten und zu Ihnen eine zusammengebrachte Schnur zurückbringen können, auf dem „Ausdruck“ Sie basiert Versorgungsmaterial.

Der Code, der unten angebracht wird, tut dies. Gerade Kopie/Paste jene Einzelteile in ein neues Standardmodul (Name das Modul basTextFunctions oder in etwas Ähnliches) und verwenden dann die FindEmailInString Funktion, um das erste email address zurückzubringen fanden in der Schnur. Um zu tun dass, Sie annehmend eine Form haben auf der das Protokollfeld anwesend ist, konnten Sie einen Knopf mit einschließen um den Wert zu zeigen:

Sub MyButton_Click ()
  Msgbox FindEmailInString (Me.YourMemoField)
Enden-Unterseeboot

Den Code für diesen regulären Ausdruck merken herkam ausgezeichneten Seite von der John-Nuricks: http://www.j.nurick.dial.pipex.com/Code/index.htm

Um mehr über reguläre Ausdrücke zu lesen, unseres eigenen Artikel Patrick-Matthews auf ex Ausrichtung sehen: 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:
6:
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:
Allgemeine Funktion FindEmailInString (StringToSearch als Schnur) als Schnur

Schwaches sExp als Schnur

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

Enden-Funktion
Allgemeines Funktion rgxExtract (wahlweise freigestelltes ByVal Ziel als Variante, _
    Wahlweise freigestelltes Muster als Schnur = "", _
    Wahlweise freigestelltes ByVal Einzelteil als lang = 0, _
    Wahlweise freigestelltes CaseSensitive, wie Boolesch = falsch, _
    Wahlweise freigestelltes FailOnError, wie Boolesch = richten, _ aus
    Wahlweise freigestellt als Boolesches = falsches) _ fortbestehen
  Als Variante
   
  'Zusammenpassende Funktion des regulären Ausdrucks verwendbar für Gebrauch
  'in VB/A im Allgemeinen und in den Zugangsfragen.
  'Durch John Nurick. Modernisiertes 14. Januar 06.
   
  'Nimmt eine Suchschnur (Ziel) und einen regulären Ausdruck
  '(Muster) und ein wahlweise freigestelltes Einzelteilargument.
  '- Wenn Einzelteil ausgelassen wird und eine Teilkette des Ziels Muster zusammenbringt,
  '  Rückkehr die Teilkette.
  '- Wenn Muster die Gruppierung von Klammern umfaßt, eine Teilkette des Ziels
  '  bringt Muster zusammen und Einzelteil ist eine ganze Zahl, zurückbringt das submatch
  '  spezifiziert durch Item (erstes submatch ist Einzelteil 0). Wenn es nicht gibt
  '  genügende submatches, Rückkehr Null. Negative Werte des Einzelteilanfangs
  ',   zählend mit dem letzten submatch.
  '- Wenn kein Gleiches, Rückkehr Null.
  '- Rückkehr Null auf Störung, es sei denn FailOnError zutreffend ist.
  '  Passt immer an das gesamte Ziel an (d.h. global und
  '  Mehrkanal zutreffend sein).
  
  'CaseSensitive Gleiche unabhängig davon Fall.
 
  'Bestehen Kontrollen ob der kompilierte RegExp Gegenstand weiter
  'bleibt im Gedächtnis, das zum folgenden Anruf zu bereit ist
  'Funktion oder, ob sie sofort entledigt wird. Dieses
  'bedeutet, dass die Funktion in den Fragen ohne zu haben verwendet werden kann
  'zu verursachen, einen neuen RegExp Gegenstand für kompilieren, benutzen und zerstören
  'jede Reihe, die verarbeitet wird. Aber es bedeutet auch dass der Gegenstand
  'Überreste im Gedächtnis nach der Frage ist gelaufen. Zu zerstören
  'das Gedächtnis einwenden und freigeben, benennen diese Funktion eine
  'letztes Mal ohne Argumente.
  '
  ', die Funktion mit verschiedenen Argumenten benennend (z.B. ein neues
  'Muster) recompiles den RegExp Gegenstand, so
  'die Funktion kann in den verschiedenen Fragen verwendet werden. Jedoch dort
  'sein können Probleme, wenn zwei Gewinde die Funktion an benennen
  'die gleiche Zeit.
 
  Const rgxPROC_NAME = „rgxExtract“
  Statisches Erz als Gegenstand 'VBScript_RegExp_55.RegExp
    'Statische Erklärungmittel müssen wir nicht verursachen
    'und den RegExp Gegenstand jede einzelne Zeit kompilieren
    'die Funktion wird benannt.
  Schwache oMatches als Gegenstand 'VBScript_RegExp_55.MatchCollection
   
  Auf Störung Goto- ErrHandler
  rgxExtract = Null-'Rückstellungsrückholwert
    'Notiz:: wenn FailOnError falsch ist, bringt Null auf Störung zurück
 
  Wenn IsMissing (Ziel) dann
    'Dieses ist das Signal, sich Erz zu entledigen
    Erz einstellen = nichts
    Funktion 'mit Default-Wert herausnehmen
  Beenden wenn
   
  'Den RegExp Gegenstand wenn notwendig verursachen
  Wenn Erz nichts dann ist
    Erz = CreateObject („VBScript.Regexp“) einstellen
  Beenden wenn
 
  Mit Erz
    'Überprüfen, ob die gegenwärtigen Argumente (anders als Ziel)
    'zu denen unterschiedlich sein, die im Erz gespeichert werden, und sie aktualisieren
    '(dadurch recompiling das regex) nur wenn notwendig.
    Wenn CaseSensitive = .IgnoreCase dann
      .IgnoreCase = nicht .IgnoreCase
    Beenden wenn
    . Global = ausrichten
    . Mehrkanal = ausrichten
'    Wenn Mehrkanal <> . Mehrkanal dann
'      . Mehrkanal- = Mehrkanal
'    Beenden wenn
    Wenn Muster <> . Muster dann
      . Muster = Muster
    Beenden wenn
 
  'Schließlich, das Gleiche durchführen
    Wenn IsNull (Ziel) dann
      rgxExtract = Null
    Sonst
      oMatches = oRE.Execute (Ziel) einstellen
      Wenn oMatches.Count > 0 dann
        Wenn oMatches (0) .SubMatches.Count = 0 dann
          'Keine () Gruppe im Muster: das Gleiche zurückbringen
          Wenn Einzelteil < 0="" Then="">= oMatches.Count
              'Positives Einzelteil überstieg die Zahl der Gleicher
              rgxExtract = Null
              Wenn FailOnError dann
                Err.Raise 9
              Beenden wenn
            Sonst umkleiden
              rgxExtract = oMatches (Einzelteil)
          Ende auserwählt
         
        Sonst  'es gibt eine oder mehrere () gefangengenommenen Gruppen im Muster
              'das zurückbringen, das von Item spezifiziert wird
          Mit oMatches (0) .SubMatches
            Wenn Einzelteil < 0="" Then="">=. Zählimpuls
                'Positives Einzelteil überstieg die Zahl submatches
                rgxExtract = Null
                Wenn FailOnError dann
                  Err.Raise 9
                Beenden wenn
              'Gültige Einzelteilzahl sonst umkleiden
                rgxExtract =. Einzelteil (Einzelteil)
            Ende auserwählt
          Ende mit
        Beenden wenn
      Sonst
        rgxExtract = Null
      Beenden wenn
    Beenden wenn
  Mit beenden
 
  'Aufräumen und normaler Ausgang
  Wenn, nicht dann fortzubestehen Erz = nichts einstellte
  Funktion herausnehmen
 
ErrHandler:
  Wenn FailOnError dann
    Mit sich irren
      Fall vorwählen. Zahl
        'Die Mitteilung „der Gegenstand-definierten Störung“ der Rückstellung ersetzen
        Rechtssache 9: . Beschreibung = „Tiefzeichen aus Strecke (das Einzelteilzahl erbetene“ _ heraus
          u. „war grösser als die Zahl der gefundenen Gleichen oder als die Zahl von“ _
          u. „(...) Gruppierung/, die gefangennimmt Klammern im Muster).“
        Rechtssache 13: . Beschreibung = „Art Fehlanpassung, vermutlich, weil“ _
          u. „das "" Ziel "" Argument konnte nicht in eine Schnur umgewandelt werden“
        Rechtssache 5017: . Beschreibung = „Syntaxstörung im regulären Ausdruck“
        Rechtssache 5018: . Beschreibung = „unerwarteter Quantifizierer im regulären Ausdruck“
        Rechtssache 5019: . Beschreibung = „erwartet worden „]“ im regulären Ausdruck "
        Rechtssache 5020: . Beschreibung = „erwartet ")“ im regulären Ausdruck "
      Fall sonst
        Wenn Erz nichts 'Regexp Gegenstand verursachen dann nicht gekonnt ist
          . Beschreibung = „konnte VBScript.RegExp Gegenstand nicht verursachen. “ U. Err.Description
        Sonst 'unerwartete Störung
          . Beschreibung = rgxPROC_NAME u. „: “ u. Beschreibung
        Beenden wenn
      Auserwähltes beenden
      Erz einstellen = nichts
      . Err.Number, rgxPROC_NAME, _ anheben
          rgxPROC_NAME u. „(): “ u. Beschreibung
    Ende mit
  Sonst 'Ausfallen still
    Err.Clear
    Erz einstellen = nichts
  Beenden wenn
Funktion beenden
Weitere Lösungen  
 
programming4us programming4us