Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: gasafonso en Abril 27, 2014, 12:35:06 pm
-
Hola amigos tengo una sistema que cargar al comienzo un datareport con los clientes que tienen vencidos sus cuotas, necesito a esos clientes mandarles un mail avisando esa situacion, alguien tiene algun ejemplo u se les ocurre como hacerlo aca en la argentina
gracias amigos de VB 6
-
alguien me puede ayudar con esto porfa gracias !!!!!!!!!!!
-
Hola mirate este link (http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/337-enviar-correo-en-vb-con-microsoft-cdo.htm), esa es una forma que conosco otra es usar outlook
-
Hola LeandroA, esta caido el link
gracias
PD: Te explico un poco lo que quiero hacer, Yo al iniciar el Sistema cargo en un datareport los clientes que tienen vencidas las cuotas, ahora bien yo quiero "captar" los mails de esos clientes y cargarlos en un combobox. y ahi si mandar un mail general
-
Aca hay otro ejemplo y tiene como ejemplo multiple destinatario.
http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/114-componente-activex-para-enviar-mail.htm (http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/114-componente-activex-para-enviar-mail.htm)
Saludos...
-
No se puede bajar el smtp component, esta caido el enlace
gracias............
-
Googleando encontre la web del autor de la DLL.
http://www.ostrosoft.com/ossmtp.aspx (http://www.ostrosoft.com/ossmtp.aspx)
Estan cada uno con su ejemplo en diferentes lenguajes.
-
y como hago para extraer el mails de esta SQL
SELECT tbdetallefactura.codigoprod, tbdetallefactura.numfactura, tbdetallefactura.cantidad, tbdetallefactura.precio, tbdetallefactura.fecha, tbdetallefactura.tipocomprobante, tbDetalleCliente.nrocomprobante, tbDetalleCliente.nombrecliente, tbdetallecliente.tipocomprobante, tbcliente.codigo,tbarticulos.codigo, tbarticulos.precio, tbarticulos.descripcion, tbarticulos.lista1, iif(tbdetallecliente.tipocomprobante = 'NC', (0) - (val(tbdetallefactura.cantidad)), val(tbdetallefactura.cantidad)) AS nuevo, iif(tbdetallecliente.tipocomprobante = 'NC', (0) - tbdetallefactura.precio, tbdetallefactura.precio) AS Canti1, tbdetallefactura.total, val(tbdetallefactura.cantidad) AS canti FROM tbdetallefactura, tbDetalleCliente, tbarticulos WHERE tbdetallecliente.tipocomprobante <> " RC " AND tbcliente.codigo = ? AND tbdetallefactura.fecha BETWEEN ? AND ? AND tbDetalleCliente.nrocomprobante = tbdetallefactura.numfactura AND tbdetallecliente.tipocomprobante IN ('FC', 'NC') AND tbdetallefactura.codigoprod = tbarticulos.codigo ORDER BY tbdetallefactura.fecha ASC, tbdetallefactura.numdetalle ASC
-
1. Sabes que es un Email?
2. Sabes si en el reporte hay un columna o algo que tenga el Email? por que yo en la consulta no veo ningún campo que haga referencia
3. Sabes como mandar un Email en VB6?
4. Sabes que es un bucle (For)?
Cuando tengas el email haces un for con los datos en tipo texto con tabulaciones y todo en un string y se lo mandas a cada cliente, osea un correo para un cliente algo así
for n = 1 to cantidadclientes
hacer correo
dar formato al correo
mandar correo
next
Gracias. Saludos
-
Esta es la SQL que corresponde
SELECT tbclientes.Codigo, tbclientes.Direccion, tbclientes.Nombre, tbclientes.telefono,tbclientes.mail,
tbPlanVacunacion.NombreVac, tbPlanVacunacion.ProxVacuna, tbPlanVacunacion.FechaProxVac, tbPlanVacunacion.CodCliente, tbPlanVacunacion.CodMascota, tbmascotas.codmascota, tbmascotas.nombremascota FROM tbPlanVacunacion, tbclientes, tbmascotas WHERE tbPlanVacunacion.CodCliente = tbclientes.Codigo AND tbplanvacunacion.codmascota = tbmascotas.codmascota AND fechaproxvac = ? and fallecido <>-1
con respecto a lo que me decis NDWgt
1-Si se lo que es un mail
2- No hay ninguna columna que obtenga el mail
3-Estuve mirando un link de como hacerlo
4Se lo que s un for
Lo que necesito es obtener el mail de la sentencia anterior y cargarlo en un combobox para despues mandar el mail
gracias !!!
-
Si quieres usar un Combobox imagino que es porque quieres seleccionar a quien mandar el email, esto es para hacer de uno en uno, si piensas mandar varios mails de una vez (punto 4 que te comento NDWgt) no es eficiente hacerlo con un combo ya que con un loop for next lo resuelves.
Si necesitas de todas maneras el ComboBox solo tienes que poblar ese control con el campo tbclientes.mail (te recomiendo que mejor uses el DataCombo).
Saludos
-
Perdon con un textbox se puede hacer agregando entre las direcciones de mails ";"
Pero lo que no me doy cuenta es como abstraer los mails que cumplan con esas condiciones?
gracis
-
Estimado gasafonso
Lo que tienes que hacer es iterar el resultado del recordset.
Dim objCnn As ADODB.Connection
Dim objRst As ADODB.Recordset
Dim strSQL As String
'Adecua la cadena de conexion al motor de base de datos que estas usando
Set objCnn = Server.CreateObject("ADODB.Connection")
objCnn.Provider = "Microsoft.Jet.OLEDB.4.0"
objCnn.Open (App.Path("northwind.mdb"))
'Prepara tú recordset
strSQL = vbNullString
strSQL = strSQL & "SELECT tbclientes.Codigo AS Codigo, tbclientes.Direccion AS Direccion, tbclientes.Nombre AS Nombre, "
strSQL = strSQL & "tbclientes.telefono AS telefono, tbclientes.mail AS mail, tbPlanVacunacion.NombreVac AS NombreVac, "
strSQL = strSQL & "tbPlanVacunacion.ProxVacuna AS ProxVacuna, tbPlanVacunacion.FechaProxVac AS FechaProxVac, "
strSQL = strSQL & "tbPlanVacunacion.CodCliente AS CodCliente, tbPlanVacunacion.CodMascota AS CodMascota1, "
strSQL = strSQL & "tbmascotas.codmascota AS CodMascota2, tbmascotas.nombremascota AS NombreMascota "
strSQL = strSQL & "FROM tbPlanVacunacion, tbclientes, tbmascotas "
strSQL = strSQL & "WHERE tbPlanVacunacion.CodCliente = tbclientes.Codigo AND "
strSQL = strSQL & " tbplanvacunacion.codmascota = tbmascotas.codmascota AND "
strSQL = strSQL & " fechaproxvac = 2014-05-11 20:18:19.323 "
strSQL = strSQL & " fallecido <> -1"
Set objRst = Server.CreateObject("ADODB.recordset")
objRst.Open strSQL, objCnn
'Itera el recordset, para llenar el textbox con los email separados por ";"
Text1.Text = vbNullString
Do While Not objRst.EOF
Text1.Text = Text1.Text & objRst.Fields("mail").Value & ";"
objRst.MoveNext
Loop
'Libera recursos de memoria
objRst.Close
objCnn.Close
Saludos desde algún lugar de Lima Perú
-
Que buenaaaaaaaaaa respuestaaaaaaaaaa Albertomi
Mi base de datos es acces 97, no se trabajar con ADODB ( como seria en tal caso ?)
Y uso esta forma para mandar mails
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/337-enviar-correo-en-vb-con-microsoft-cdo.htm
gracias Amigo