Foros del Web » Soporte técnico » Ofimática »

Consulta access

Estas en el tema de Consulta access en el foro de Ofimática en Foros del Web. Buenos dias, Soy novato en access, he creado una tabla con varios campos de fichas de clientes, entre ellos el e-mail. ¿Como podría hacer para ...
  #1 (permalink)  
Antiguo 19/06/2008, 10:32
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Consulta access

Buenos dias,

Soy novato en access, he creado una tabla con varios campos de fichas de clientes, entre ellos el e-mail.

¿Como podría hacer para obtener un texto plano o informe en el cual me apareciese el mail separado por punto y coma?

De la siguiente manera:
[email protected]; [email protected]; [email protected];[email protected]

He probado con un informe y no consigo sacar así los datos.

Un saludo
  #2 (permalink)  
Antiguo 19/06/2008, 10:42
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Consulta access

Cita:
Iniciado por turquele Ver Mensaje
Buenos dias,

Soy novato en access, he creado una tabla con varios campos de fichas de clientes, entre ellos el e-mail.

¿Como podría hacer para obtener un texto plano o informe en el cual me apareciese el mail separado por punto y coma?

De la siguiente manera:
[email protected]; [email protected]; [email protected];[email protected]

He probado con un informe y no consigo sacar así los datos.

Un saludo
No entiendo, ¿tienes en un solo campo el email? ¿cómo guardas los datos en el campo?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 19/06/2008, 12:30
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Consulta access

Hola

Tengo varios campos:
id, referencia, nombre, telefono, email, etc
Pero me interesaría un listado completo de los e-mails con ese formato

Gracias
  #4 (permalink)  
Antiguo 19/06/2008, 12:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Consulta access

Cita:
Iniciado por turquele Ver Mensaje
Hola

Tengo varios campos:
id, referencia, nombre, telefono, email, etc
Pero me interesaría un listado completo de los e-mails con ese formato

Gracias
A ver si entendí, quieres obtener el email de todos los registros de la tabla en el formato [email protected];[email protected];... ¿es así?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 19/06/2008, 13:43
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Consulta access

Efectivamente, así es
  #6 (permalink)  
Antiguo 20/06/2008, 02:53
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Consulta access

Podrias abrir un recordset sobre la tabla, recorrer todos sus registros, e ir concatenando en una variable de tipo string los email separados por ;

Luego, depende de donde quieras mostrar ese string, habria que actuar de una forma u otra. Seria algo asi:

dim rst as dao.recordset
dim VarEmails as string

set rst=currentdb.openrecordset ("Select email from tabla")

while not rst.eof
VarEmails= VarEmails & rst!Email & ";"
rst.movenext
wend

'Esto es por si quieres quitar el ; que qudara al final
if nz(VarEmails,"")<>"" then
VarEmails=left(VarEmails,len(VarEmails)-1)
end if

'Aqui tendras todos los email concatenados
msgbox VarEmails


Un saludo
  #7 (permalink)  
Antiguo 20/06/2008, 03:05
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Consulta access

Ok Taribo, Muchas gracias

Pero no se muy bien como hago eso, soy novato en access.

La tabla se llama Clientes y el campo en que estan los mails DirCorreoElectrónico, supongo que tengo que modificar el código.

Despues com lo aplico? No se donde lo tengo que meter ni como.
Vamos no tengo ni p.. idea
  #8 (permalink)  
Antiguo 20/06/2008, 05:41
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Consulta access

Pues es que depende de lo que necesites. Un ejemplo. Create un form, ponle un boton, situate sobre el, boton derecho, generar evento, evento de codigo. Se te abrira la ventana de VBA en el evento click del boton. Pues ahi pega esto:

dim rst as dao.recordset
dim VarEmails as string

set rst=currentdb.openrecordset ("Select DirCorreoElectrónico from Clientes")

while not rst.eof
VarEmails= VarEmails & rst!DirCorreoElectrónico& ";"
rst.movenext
wend

'Esto es por si quieres quitar el ; que qudara al final
if nz(VarEmails,"")<>"" then
VarEmails=left(VarEmails,len(VarEmails)-1)
end if

'Aqui tendras todos los email concatenados
msgbox VarEmails


Ahora, sin salir de la ventana de codigo, te vas a el menu de arriba. Herramientas >> referencias. Tienes que activar una que se llama Microsoft DAO X.XX object Library

Las X.XX dependen de tu version de access.

Guarda el formulario, pulsa el boton y veras que te sale un mensaje con el listado.

Ahora depende de donde y como quieras esa lista.

Un saludo
  #9 (permalink)  
Antiguo 22/06/2008, 08:30
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Consulta access

Muchas gracias Taribo, me funciona.

Lo que pasa es que me gustaría que esos e-mails me apareciesen listados en un txt o en un archivo que me permitieses copiarlos y pegar en el CCO del Outlook, de esta manera no puedo.

Un saludo
  #10 (permalink)  
Antiguo 23/06/2008, 01:42
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Consulta access

Una opcion puede ser abrir directamente el outlook (realmente, esta instruccion abre el correo predeterminado), con el contenido de la variable en el campo cco:

DoCmd.SendObject , , , , VarEmails

Otra es abrir un bloc de notas y escribir el contenido de la variable.

Otra es insertar ese contenido, por ejemplo, en un cuadro de texto del form donde has puesto el boton, y copiarlo desde ahi.

Un saludo
  #11 (permalink)  
Antiguo 23/06/2008, 06:07
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Consulta access

Para mi lo ideal en este momento quizás sería que esa lista me aparezca en un bloc de notas. Es posible?
  #12 (permalink)  
Antiguo 23/06/2008, 07:44
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Consulta access

Si claro, prueba con esto:

'************************************************* *****************
Dim rst As DAO.Recordset
Dim VarEmails As String
Dim LngFichero As Long
Dim StrFichero As String


'Establcemos la ubicacion del fichero, en la misma que la bd
StrFichero = CurrentProject.Path & "\Direcciones.txt"
LngFichero = FreeFile

Set rst = CurrentDb.openrecordset("Select DirCorreoElectrónico from Clientes")

While Not rst.EOF
VarEmails = VarEmails & rst!DirCorreoElectrónico & ";"
rst.MoveNext
Wend

'Esto es por si quieres quitar el ; que quedara al final
If Nz(VarEmails, "") <> "" Then
VarEmails = Left(VarEmails, Len(VarEmails) - 1)
'Abrimos el fichero como escritura, si no existe lo crea
Open StrFichero For Output As #LngFichero
'escribimos en el fichero el contenido de la variable
Print #LngFichero, VarEmails
'cerramos el fichero
Close #LngFichero
Else
MsgBox "Ninguna direccion de correo seleccio nada"
End If

rst.Close
Set rst = Nothing
'************************************************* **********

Un saludo
  #13 (permalink)  
Antiguo 23/06/2008, 12:53
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Consulta access

Muchas gracias Taribo, me va perfecto.

Quería pedirte una última cosa si no es muy costosa.
Mi tabla tiene un campo que se llama mailing cuyas opciones son si o no. ¿Como podria hacer para que en el listado solo aparezcan los que tienen la opcion si activada? Sería muy complicado?

Un saludo
  #14 (permalink)  
Antiguo 24/06/2008, 05:53
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Consulta access

Nada, solo añade esa condicion a al sql:

Set rst = CurrentDb.openrecordset("Select DirCorreoElectrónico from Clientes Where mailing =true")

Un saludo
  #15 (permalink)  
Antiguo 24/06/2008, 11:54
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Consulta access

Taribo, me veo en la obligación de agradecerte tu inestimable ayuda.

Es un placer contar con gente como tú en este foro.

Un saludo.

José Alonso
  #16 (permalink)  
Antiguo 03/12/2008, 04:58
 
Fecha de Ingreso: diciembre-2008
Mensajes: 1
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consulta access

Cita:
Iniciado por Taribo007 Ver Mensaje
Si claro, prueba con esto:

'************************************************* *****************
Dim rst As DAO.Recordset
Dim VarEmails As String
Dim LngFichero As Long
Dim StrFichero As String


'Establcemos la ubicacion del fichero, en la misma que la bd
StrFichero = CurrentProject.Path & "\Direcciones.txt"
LngFichero = FreeFile

Set rst = CurrentDb.openrecordset("Select DirCorreoElectrónico from Clientes")

While Not rst.EOF
VarEmails = VarEmails & rst!DirCorreoElectrónico & ";"
rst.MoveNext
Wend

'Esto es por si quieres quitar el ; que quedara al final
If Nz(VarEmails, "") <> "" Then
VarEmails = Left(VarEmails, Len(VarEmails) - 1)
'Abrimos el fichero como escritura, si no existe lo crea
Open StrFichero For Output As #LngFichero
'escribimos en el fichero el contenido de la variable
Print #LngFichero, VarEmails
'cerramos el fichero
Close #LngFichero
Else
MsgBox "Ninguna direccion de correo seleccio nada"
End If

rst.Close
Set rst = Nothing
'************************************************* **********

Un saludo

Hola Taribo, estuve buscando por los foros y encontré esto que hiciste como respuesta a Turquele y que me viene muy bien (lo cual agradezco enormemente), para armar un txt mas sencillo que con "especificación de importación/exportación" y realmente te felicito porque esto funciona rápido y simple.

Te pregunto: ¿Cómo puedo enviar desde Access por correo este archivo ("Direcciones.txt") creado por este procedimiento ?

Porque la acción enviar objeto (sendobject) solo permite enviar un objeto Access y no un txt (esto es lo que creo yo). Y si envío una tabla con DoCmd.SendObject en formato texto (acFormatTXT) lo que envía es la tabla completa (con los nombres de campos y las separaciones "|") que le dan visualmente aspecto de tabla parecido a lo de abajo:

----------------------------------------------------------------------------------------------
| IdCliente | NombreYApellid | Domicilio | Telefono |
----------------------------------------------------------------------------------------------
| 23659 | Juan Carlos Pexxx | fffff 23 | 02212-963xxx|


y yo necesito que el resultado final del txt a enviar adjunto sea como esto:

000022200022-12101/1210000-2220002215/01/20091253933333333333333
000000000222-61301/0610000-0000022215/01/20095039d22223565566693
222200000223-152002/1512222-0000022310/01/2009157,33333333333339

donde cada línea es un registro.

Esto lo consigo como te decía antes, mediante especificación de importación/exportación, pero parte del proceso hay que hacerlo manualmente.
Yo no veo como automatizar esto y tampoco sé como enviar desde acces un txt adjunto por correo.

Vos que la tenés bien clara por lo que veo, me tiras un cable?, por favor.

Ojalá haya sido claro con la pregunta.

Desde ya gracias por tu tiempo y por tu respuesta.

Librero
  #17 (permalink)  
Antiguo 19/06/2010, 15:07
 
Fecha de Ingreso: junio-2010
Mensajes: 1
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Consulta access

Hola Taribo,
He estado buncando intensamente en la web alguna informacion acerca de como enviar multiples emails desde access 2007.
Y afortunadamente encontre esta gran documentacion y la ayuda que has brindado. Gracias de antemano por tu gentileza.

Mi caso es que tengo un formulario vinculado a una tabla "miembros" y unos de los campos de esta tabla es "email". Necesito enviar un mensaje de correo electronico outlook 2007 a todos los miembros. No puedo hacerlo desde la macro "eviarObjeto" de access, y por lo que estoy viendo en este foro es que debo hacerlo con un procedimiento de evento. Te pido porfavor, en el espacio y tiempo que tengas disponible tu ayuda para generar este procedimiento.
gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:10.