Questione : Email address dell'estratto da un campo di appunto di accesso.

Ciao gli esperti, il

How possono io estraggono il email address da qryEmail.Body (campo di appunto) ed aggiungono a tblEmail.Bounce nella stessa base di dati 2007 di accesso?

Thank voi!
class= del

Risposta : Email address dell'estratto da un campo di appunto di accesso.

È il email address l'UNICO articolo in quel campo di appunto? I " m. che lo scommette non è, in modo da dovreste avere certo metodo per trovare quel email address nel campo di appunto e AFAIK là è azione a macroistruzione di builtin che basterà che - dovrete usare le espressioni normali, che possono valutare una stringa di testo/lima e restituire voi una stringa abbinata, basate “sull'espressione„ voi rifornimento.

Il codice allegato sotto farà questo. Appena la copia/colla quegli articoli in un nuovo modulo standard (nome che basTextFunctions del modulo, o in qualcosa di simile) ed allora usa la funzione di FindEmailInString per restituire il primo email address ha individuato nella stringa. Per fare che, ammettendolo avere una forma su cui il campo di appunto è presente, potreste includere un tasto per mostrare il valore:

Sub MyButton_Click ()
  Msgbox FindEmailInString (Me.YourMemoField)
Sommergibile dell'estremità

Notare il codice per quell'espressione normale è venuto dalla pagina eccellente del John Nurick qui: http://www.j.nurick.dial.pipex.com/Code/index.htm

Per leggere più circa le espressioni normali, vedere il nostro proprio l'articolo del Patrick Matthew sul registro 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:
Funzione pubblica FindEmailInString (StringToSearch come stringa) come stringa

sExp fioco come stringa

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

Funzione di conclusione
rgxExtract pubblico di funzione (obiettivo facoltativo di ByVal come variante, _
    Modello facoltativo come stringa = "", _
    Articolo facoltativo di ByVal come lungamente = 0, _
    Con distinzione delle maiuscole e delle minuscole facoltativo come booleano = falso, _
    FailOnError facoltativo come booleano = allinea, _
    Facoltativo persistere come booleano = falso) _
  Come variante
   
  'Funzione di corrispondenza di espressione normale adatta ad uso
  'in VB/A generalmente e nelle domande di accesso.
  'Da John Nurick. 14 gennaio 06 aggiornato.
   
  'Prende una stringa di ricerca (obiettivo) e un'espressione normale
  '(Modello) e una discussione facoltativa dell'articolo.
  '- Se l'articolo è omesso e una sottostringa dell'obiettivo abbina il modello,
  '  ritorni che sottostringa.
  '- Se il modello comprende il raggruppamento delle parentesi, una sottostringa dell'obiettivo
  '  abbina il modello e l'articolo è un numero intero, restituisce il submatch
  '  specificato da Item (il primo submatch è articolo 0). Se ci non è
  '  abbastanza submatches, posizione di segnale minimo di ritorni. Valori negativi dell'inizio dell'articolo
  '  contando con l'ultimo submatch.
  '- Se nessun fiammifero, ritorni annulla.
  '- I ritorni annullano sull'errore a meno che FailOnError sia allineare.
  '  Abbina sempre contro l'intero obiettivo (cioè globale e
  '  A più linee essere allineare).
  
  'Fiammiferi con distinzione delle maiuscole e delle minuscole senza riguardo al caso.
 
  'Persistono i comandi se l'oggetto compilato di RegExp
  'rimane nella memoria pronta per la chiamata seguente al
  'funzione o se è disfatta di immediatamente. Ciò
  'significa che la funzione può essere utilizzata nelle domande senza avere
  'per generare, compilare, usare e distruggere un nuovo oggetto di RegExp per
  'ogni fila che è procedata. Ma inoltre significa che l'oggetto
  'i resti nella memoria dopo la domanda hanno funzionato. Per per distruggere
  'obiettare e liberare la memoria, denominano questa funzione una
  'ultima volta senza le discussioni.
  '
  'Denominando la funzione con differenti discussioni (per esempio un nuovo
  'Il modello) recompiles l'oggetto di RegExp, così
  'la funzione può essere utilizzata nelle domande differenti. Per quanto là
  'possono essere i problemi se due filetti stiano denominando la funzione a
  'lo stesso tempo.
 
  rgxPROC_NAME di Const = “rgxExtract„
  Minerale metallifero statico come oggetto 'VBScript_RegExp_55.RegExp
    'Mezzi statici di dichiarazione non dobbiamo generare
    'e compilare l'oggetto di RegExp ogni singolo tempo
    'la funzione è denominata.
  oMatches fiochi come oggetto 'VBScript_RegExp_55.MatchCollection
   
  Sull'errore ErrHandler di avanzamento
  valore di ritorno di difetto di posizione di segnale minimo = del rgxExtract '
    'N.B.:: se FailOnError è falso, restituisce la posizione di segnale minimo sull'errore
 
  Se IsMissing (obiettivo) allora
    'Questo è il segnale disfare del minerale metallifero
    Regolare il minerale metallifero = niente
    Uscire la funzione 'con il valore di difetto
  Concluder se
   
  'Generare l'oggetto di RegExp se necessario
  Se il minerale metallifero allora è niente
    Regolare il minerale metallifero = CreateObject (“VBScript.Regexp„)
  Concluder se
 
  Con minerale metallifero
    'Controllare se le discussioni correnti (tranne l'obiettivo)
    'essere differente da quelli immagazzinati in minerale metallifero ed aggiornarle
    '(quindi recompiling il regex) soltanto se necessario.
    Se con distinzione delle maiuscole e delle minuscole = .IgnoreCase allora
      .IgnoreCase = non .IgnoreCase
    Concluder se
    . Globale = allineare
    . A più linee = allineare
'    Se a più linee <> . A più linee allora
'      . A più linee = a più linee
'    Concluder se
    Se modello <> . Modello allora
      . Modello = modello
    Concluder se
 
  'Per concludere, eseguire il fiammifero
    Se IsNull (obiettivo) allora
      rgxExtract = posizione di segnale minimo
    Altrimenti
      Regolare i oMatches = oRE.Execute (obiettivo)
      Se oMatches.Count > 0 allora
        Se oMatches (0) .SubMatches.Count = 0 allora
          'Nessun () gruppo nel modello: restituire il fiammifero
          Se articolo < 0="" Then="">= oMatches.Count
              'L'articolo positivo ha superato il numero dei fiammiferi
              rgxExtract = posizione di segnale minimo
              Se FailOnError allora
                Err.Raise 9
              Concluder se
            Mettere altrimenti
              rgxExtract = oMatches (articolo)
          Estremità prescelta
         
        Altrimenti  'ci sono uni o più () gruppi bloccati nel modello
              'restituire quello specificato da Item
          Con i oMatches (0) .SubMatches
            Se articolo < 0="" Then="">=. Conteggio
                'L'articolo positivo ha superato il numero dei submatches
                rgxExtract = posizione di segnale minimo
                Se FailOnError allora
                  Err.Raise 9
                Concluder se
              Mettere altrimenti 'il numero di articolo valido
                rgxExtract =. Articolo (articolo)
            Estremità prescelta
          Estremità con
        Concluder se
      Altrimenti
        rgxExtract = posizione di segnale minimo
      Concluder se
    Concluder se
  Concluder con
 
  'Riordinare ed uscita normale
  Se non persiste il minerale metallifero allora regolato = niente
  Uscire la funzione
 
ErrHandler:
  Se FailOnError allora
    Con errare
      Selezionare il caso. Numero
        'Sostituire “il messaggio di errore oggetto-definito„ di difetto
        Caso 9: . Descrizione = “sottoscritto fuori portata (il _ chiesto di numero di articolo„
          & “era maggior del numero dei fiammiferi trovati, o che il numero„ di _
          & “(...) raggruppare/che blocca le parentesi nel modello).„
        Caso 13: . Descrizione = “tipo disadattamento, probabilmente perché„ _
          & “la discussione del "" dell'obiettivo del "" non ha potuto essere convertita in stringa„
        Caso 5017: . Descrizione = “errore di sintassi nell'espressione normale„
        Caso 5018: . Descrizione = “quantifier inatteso nell'espressione normale„
        Caso 5019: . Descrizione = “preveduto “]„ nell'espressione normale "
        Caso 5020: . Descrizione = “preveduto ")„ nell'espressione normale "
      Caso altrimenti
        Se il minerale metallifero è niente di allora 'non riuscito per generare l'oggetto di Regexp
          . La descrizione = “non ha potuto generare l'oggetto di VBScript.RegExp. „ & Err.Description
        Altrimenti 'errore inatteso
          . Descrizione = rgxPROC_NAME & “: „ &. Descrizione
        Concluder se
      Concludere prescelto
      Regolare il minerale metallifero = niente
      . Alzare Err.Number, il rgxPROC_NAME, _
          rgxPROC_NAME & “(): „ &. Descrizione
    Estremità con
  Altrimenti 'venire a mancare silenziosamente
    Err.Clear
    Regolare il minerale metallifero = niente
  Concluder se
Concludere la funzione
Altre soluzioni  
 
programming4us programming4us