Cuestión : Email address del extracto de un campo de nota del acceso.

¿Hola los expertos,

How pueden yo extraen email address de qryEmail.Body (campo de nota) y lo añaden a tblEmail.Bounce en la misma base de datos 2007 del acceso? ¡

Thank usted!
class= del

Respuesta : Email address del extracto de un campo de nota del acceso.

¿Es el email address el ÚNICO artículo en ese campo de nota? I " m que lo apuesta no es, así que usted tendría que tener cierto método para encontrar ese email address en el campo de nota, y AFAIK allí no es ninguna acción macra del builtin que hará que - usted necesitará utilizar las expresiones regulares, que pueden evaluar una secuencia de texto/un archivo y volverle una secuencia emparejada, basadas en “la expresión” le fuente.

El código atado abajo hará esto. Apenas la copia/la goma esos artículos en un nuevo módulo estándar (nombre que los basTextFunctions del módulo, o algo similar), y entonces utiliza la función de FindEmailInString para volver el primer email address localizó en la secuencia. Para hacer que, si se asume que le tener una forma en la cual el campo de nota esté presente, usted podría incluir un botón para demostrar el valor:

Sub MyButton_Click ()
  Msgbox FindEmailInString (Me.YourMemoField)
Submarino del extremo

Observar el código para esa expresión regular vino de la página excelente de Juan Nurick aquí: http://www.j.nurick.dial.pipex.com/Code/index.htm

Para leer más sobre expresiones regulares, ver nuestro propio el artículo de Patrick Matthew sobre el 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:
Función pública FindEmailInString (StringToSearch como secuencia) como secuencia

sExp dévil como secuencia

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

Función del final
rgxExtract público de la función (blanco opcional de ByVal como variante, _
    Patrón opcional como la secuencia = "", _
    Artículo opcional de ByVal como de largo = 0, _
    Con diferenciación entre mayúsculas y minúsculas opcional como boleano = falso, _
    FailOnError opcional como boleano = verdad, _
    Opcional persistir como boleano = falso) _
  Como variante
   
  'Función que empareja de la expresión regular conveniente para el uso
  'en VB/A generalmente y en preguntas del acceso.
  'Por Juan Nurick. 14 de enero de 06 actualizado.
   
  'Toma una secuencia de búsqueda (blanco) y una expresión regular
  '(Patrón), y una discusión opcional del artículo.
  '- Si se omite el artículo y una subsecuencia de la blanco empareja el patrón,
  '  vueltas que subsecuencia.
  '- Si el patrón incluye agrupar paréntesis, una subsecuencia de la blanco
  '  empareja el patrón, y el artículo es un número entero, vuelve el submatch
  '  especificado por Item (el primer submatch es el punto 0). Si no hay
  '  bastantes submatches, falta de información de las vueltas. Valores negativos del comienzo del artículo
  '  contando con el submatch pasado.
  '- Si ningún fósforo, vueltas anula.
  '- Las vueltas anulan en error a menos que FailOnError sea verdad.
  '  Empareja siempre contra la blanco entera (es decir global y
  '  Multilínea ser verdad).
  
  'Fósforos con diferenciación entre mayúsculas y minúsculas sin importar caso.
 
  'Persisten los controles si el objeto compilado de RegExp
  'permanece en la memoria lista para la llamada siguiente a
  'función o si está dispuesta inmediatamente. Esto
  'significa que la función se puede utilizar en preguntas sin tener
  'para crear, compilar, utilizar y destruir un nuevo objeto de RegExp para
  'cada fila que es procesada. Pero también significa que el objeto
  los 'restos en memoria después de la pregunta han funcionado. Para destruir
  'oponerse y lanzar la memoria, llaman esta función una
  'vez última sin discusiones.
  '
  'Llamando la función con diversas discusiones (e.g. un nuevo
  El 'patrón) recompiles el objeto de RegExp, tan
  'la función se puede utilizar en diversas preguntas. Al menos allí
  'pueden ser los problemas si dos hilos de rosca están llamando la función en
  'el mismo tiempo.
 
  rgxPROC_NAME de Const = “rgxExtract”
  Mineral estático como objeto 'VBScript_RegExp_55.RegExp
    Los 'medios estáticos de la declaración no tenemos que crear
    'y compilar el objeto de RegExp cada sola hora
    'se llama la función.
  oMatches déviles como objeto 'VBScript_RegExp_55.MatchCollection
   
  En el error ErrHandler indicado
  valor de vuelta del defecto del rgxExtract = de la falta de información '
    'NOTA: si FailOnError es falso, vuelve la falta de información en error
 
  Si IsMissing (blanco) entonces
    'Ésta es la señal de disponer del mineral
    Fijar el mineral = nada
    Salir la función 'con el valor prefijado
  Terminar si
   
  'Crear el objeto de RegExp en caso de necesidad
  Si el mineral entonces no es nada
    Fijar el mineral = CreateObject (“VBScript.Regexp”)
  Terminar si
 
  Con el mineral
    'Comprobar si las discusiones actuales (con excepción de blanco)
    'ser diferente de ésos almacenados en mineral, y ponerlos al día
    '(de tal modo recompiling el regex) solamente en caso de necesidad.
    Si es con diferenciación entre mayúsculas y minúsculas = .IgnoreCase entonces
      .IgnoreCase = no .IgnoreCase
    Terminar si
    . Global = verdad
    . Multilínea = verdad
'    Si es multilínea <> . Multilínea entonces
'      . Multilínea = multilínea
'    Terminar si
    Si patrón <> . Patrón entonces
      . Patrón = patrón
    Terminar si
 
  'Finalmente, ejecutar el fósforo
    Si IsNull (blanco) entonces
      rgxExtract = falta de información
    
      Fijar los oMatches = oRE.Execute (la blanco)
      Si oMatches.Count > 0 entonces
        Si oMatches (0) .SubMatches.Count = 0 entonces
          'Ningún () grupo en patrón: volver el fósforo
          Si artículo < 0="" Then="">= oMatches.Count
              El 'artículo positivo excedió el número de fósforos
              rgxExtract = falta de información
              Si FailOnError entonces
                Err.Raise 9
              Terminar si
            Encajonar 
              rgxExtract = oMatches (artículo)
          Extremo selecto
         
          'Hay uno o más () grupos capturados en patrón
              'volver el que está especificado por Item
          Con los oMatches (0) .SubMatches
            Si artículo < 0="" Then="">=. Cuenta
                El 'artículo positivo excedió el número de submatches
                rgxExtract = falta de información
                Si FailOnError entonces
                  Err.Raise 9
                Terminar si
              Encajonar el 'número de artículo válido
                rgxExtract =. Artículo (artículo)
            Extremo selecto
          Extremo con
        Terminar si
      
        rgxExtract = falta de información
      Terminar si
    Terminar si
  Terminar con
 
  'Poner en orden y salida normal
  Si no persiste el mineral entonces fijado = nada
  Salir la función
 
ErrHandler:
  Si FailOnError entonces
    Con errar
      Seleccionar el caso. Número
        'Substituir el mensaje del “error objeto-definido” del defecto
        Caso 9: . Descripción = “subíndice fuera de la gama (el _ pedido del número de artículo”
          y “era mayor que el número de fósforos encontrados, o que el número” de _
          y “(...) el agrupar/que captura paréntesis en el patrón).”
        Caso 13: . Descripción = “tipo unión mal hecha, probablemente porque” _
          y “la discusión del "" de la blanco del "" no se podía convertir a una secuencia”
        Caso 5017: . Descripción = “error de sintaxis en la expresión regular”
        Caso 5018: . Descripción = “cuantificador inesperado en la expresión regular”
        Caso 5019: . Descripción = “esperado “]” en la expresión regular "
        Caso 5020: . Descripción = “esperado ")” en la expresión regular "
      Caso 
        Si el mineral no es nada entonces 'no podido para crear el objeto de Regexp
          . La descripción = “no podía crear el objeto de VBScript.RegExp. ” Y Err.Description
        'Error inesperado
          . Descripción = rgxPROC_NAME y “: ” y. Descripción
        Terminar si
      Terminar selecto
      Fijar el mineral = nada
      . Levantar Err.Number, rgxPROC_NAME, _
          rgxPROC_NAME y “(): ” y. Descripción
    Extremo con
  'Fall silenciosamente
    Err.Clear
    Fijar el mineral = nada
  Terminar si
Terminar la función
Otras soluciones  
 
programming4us programming4us