Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: gasafonso en Septiembre 08, 2014, 03:56:15 pm
-
hola, tengo una SQL que es esta
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
y quiero cargar el resultado en un textbox , separado por ";" cada uno
gracuiassssssssssssss
-
Estimado gasafonso
Realiza la siguiente modificación (he adicionado AS) a tu query SQL, ya que hay dos campos con el mismo nombre:
SELECT tbclientes.Codigo, tbclientes.Direccion, tbclientes.Nombre, tbclientes.telefono,tbclientes.mail,
tbPlanVacunacion.NombreVac, tbPlanVacunacion.ProxVacuna, tbPlanVacunacion.FechaProxVac, tbPlanVacunacion.CodCliente,
tbPlanVacunacion.CodMascota AS CodMascota1, tbmascotas.codmascota AS CodMascota2, tbmascotas.nombremascota
FROM tbPlanVacunacion, tbclientes, tbmascotas
WHERE tbPlanVacunacion.CodCliente = tbclientes.Codigo AND
tbplanvacunacion.codmascota = tbmascotas.codmascota AND
fechaproxvac = ? and fallecido <>-1
Luego de ejecutar el query tú recordset va tener el resulset (datos resultantes del query) y sobre el aplica lo siguiente:
TextBox.Text = rstRecordSet.Fields("Codigo") & ";" & rstRecordSet.Fields("Direccion") & ";" & rstRecordSet.Fields("Nombre") & ";" & _
rstRecordSet.Fields("telefono") & ";" & rstRecordSet.Fields("mail") & ";" & rstRecordSet.Fields("NombreVac") & ";" & _
rstRecordSet.Fields("ProxVacuna") & ";" & rstRecordSet.Fields("FechaProxVaco") & ";" & rstRecordSet.Fields("CodCliente") & ";" & _
rstRecordSet.Fields("CodMascota1") & ";" & rstRecordSet.Fields("CodMascota2") & ";" & rstRecordSet.Fields("nombremascota")
Saludos desde algún lugar de Lima-Perú
-
Muchas gracias Albertomi, pero solo debo cargar la direccion de mail de cada cliente en el textbox, por que es para mandar mails
Tal vez me explique mal
gracias
-
Estimado gasafonso
En el recordset en el que se retorna el resulset de tú query, aplica esl siguiente código
Dim strEmails As String
strEmails = vbNullString
'Nos movemos al primer registro (Esto no es 100% necesario).
rstRecordSet.MoveFirst
'Itera el recordset
Do While Not rstRecordSet.EOF
' Concatena email
If Len(rstRecordSet.Fields("mail").Value) > 0 Then
strEmails = strEmails & rstRecordSet.Fields("mail").Value & ";"
End If
'Nos movemos al siguiente registro.
rstRecordSet.MoveNext
Loop
'Cerramos el recordset (Quizás para tú aplicación no necesites cerrar el recordset en este punto)
rstRecordSet.Close
'Asigna al TextBox los email separados por ";"
TextBox.Text = strEmails
Saludos, desde algún lugar de Lima-Perú
-
EXCELENTEEEEEEEEEEEEEE ALBERTOMI, ahora te cuento esa SQL la tengo en un DATAEnviroment que se carga al inicio del sistema
Estoy un poco confundido de que hacer
Desde ya muchas GRacias !!!!!!!!!!!
-
uhhh... viene para largo esto ;D
No se si seré medio cabezón, pero nunca me gustaron los DataControl, DataEnviroment, y todos los Data de Microsoft. Siempre prefiero abrir el Rs, Cnn, etc a manopla
-
Si estoy queriendo pasarme a lo mismo.
Vos como lo harias con tu forma WALDO?
-
Albertomi, necesito de tu ayuda ya que no me quedo del todo claro, yo tengo la sql aca
(http://s22.postimg.org/l0tynr3vx/Data_Emviroment.jpg) (http://postimg.org/image/l0tynr3vx/)
No se que recordset es el que se retorna
Saludos
-
Asu, cuantos años de no ver el recordado DataEnvironment. Pues bueno tu recordset es ese: VacunasPendientes.
Lo ejecutas asi:
If DsrListado.rsVacunasPendientes.State Then DsrListado.rsVacunasPendientes.Close
DsrListado.VacunasPendientes
Mucho ojo donde pones el prefijo "rs", cuando lo ejecutas no lo pones (segunda linea), pero si cuando lo lees.
La primera linea del codigo de arriba es para cerrarlo por si anteriormente lo hubieras abierto.
La segunda linea de ese codigo ejecuta la consulta sin parámetros, si tuvieres en tu select un Where ALGO = ? entonces le aumentas a DsrListado.VacunasPendientes Dato.
Para leer el contenido de ese recordset:
TuVariable = DsrListado.rsVacunasPendientes.Fields("TuCampo")
Naturalmente tienes que navegar por el rs para obtener el registro que quieres. Recuerda que para recorrerlo usas: DsrListado.rsVacunasPendientes.MoveNext
Ahora si quieres poblar un control solo conectas el recordset al control como usualmente lo haces en codigo directo.
Saludos
-
Hola amigooooo YACosta, gracias por tu dedicaccion como siempre
Ahora bien, como se haria conlo que me mando ALbertomi
Dim strEmails As String
strEmails = vbNullString
'Nos movemos al primer registro (Esto no es 100% necesario).
rstRecordSet.MoveFirst
'Itera el recordset
Do While Not rstRecordSet.EOF
' Concatena email
If Len(rstRecordSet.Fields("mail").Value) > 0 Then
strEmails = strEmails & rstRecordSet.Fields("mail").Value & ";"
End If
'Nos movemos al siguiente registro.
rstRecordSet.MoveNext
Loop
'Cerramos el recordset (Quizás para tú aplicación no necesites cerrar el recordset en este punto)
rstRecordSet.Close
'Asigna al TextBox los email separados por ";"
TextBox.Text = strEmails
Asu, cuantos años de no ver el recordado DataEnvironment. Pues bueno tu recordset es ese: VacunasPendientes.
Lo ejecutas asi:
If DsrListado.rsVacunasPendientes.State Then DsrListado.rsVacunasPendientes.Close
DsrListado.VacunasPendientes
Mucho ojo donde pones el prefijo "rs", cuando lo ejecutas no lo pones (segunda linea), pero si cuando lo lees.
La primera linea del codigo de arriba es para cerrarlo por si anteriormente lo hubieras abierto.
La segunda linea de ese codigo ejecuta la consulta sin parámetros, si tuvieres en tu select un Where ALGO = ? entonces le aumentas a DsrListado.VacunasPendientes Dato.
Para leer el contenido de ese recordset:
TuVariable = DsrListado.rsVacunasPendientes.Fields("TuCampo")
Naturalmente tienes que navegar por el rs para obtener el registro que quieres. Recuerda que para recorrerlo usas: DsrListado.rsVacunasPendientes.MoveNext
Ahora si quieres poblar un control solo conectas el recordset al control como usualmente lo haces en codigo directo.
Saludos
-
No recuerdo bien pero creo que no es necesario el .Value
Solo asi
...
If Len(rstRecordSet.Fields("mail").Value) > 0 Then
strEmails = strEmails & rstRecordSet.Fields("mail") & ";"
End If
...
-
me da este error amigo YAcosta
(http://s28.postimg.org/dy8dhmbqh/Error.jpg) (http://postimg.org/image/dy8dhmbqh/)
(http://s30.postimg.org/edz9le7vh/error1.jpg) (http://postimg.org/image/edz9le7vh/)
garcias
-
Ya lo solucione amigo YAcosta , ahora bien como puedo hacer para que una vez que se envie el mail no se vuelva a repetir en el dia , se puede guardar un archivo de texto( ini) o algo asi que me guarde ese dato, esto es para no repetir los mails
graciass
-
No te recomiendo un archivo de texto ya que estas usando base de datos.
Te sugiero que te crees una tabla para que alli controles los emails enviados.
La tabla deberia tener el id del cliente y la fecha.
Cuando tengas la confirmacion de email enviado grabas un registro con el id de cliente y la fecha. La siguiente vez deberas preguntar primero si existe el cliente y la fecha en dicha tabla, si es NO procedes al envio, si es SI no lo envias.
Al final del dia puedes hacer un delete a esa tabla para tenerla limpia para el dia siguiente.
Saludos
-
Me quedo super claro amigo Yacosta, ahora bien , tengo otra duda
Si mi modulo para mandar mails es un .exe ( el cual tengo yo el codigo fuente) y quiero cargarle todas las direcciones de mails antes de llamar al .exe, como lo harias ?
gracias SAludos
-
No se
-
Que maleao con esa respuesta :)
Pues es la verdad, no se, no se como cargar todas las direcciones antes de cargar el exe que imagino es el que llama a esas direcciones, sino tendria que ser otro ejecutable y tampoco no se como pasarle los valores de una variable de un ejecutable a otro, ya algun master te lo dira. Paciencia o sino invoca a nuestro santo predilecto: San Google
-
En realidad se me ocurre que antes de compilar el .exe del modulo para enviar mails, tendria que tener un archivo temporal o ini y cargar la primera linea del archivo a el textbox " PARA...."
y en mi sistema de gestion todos los dias generar / cargar esa linea diariamente
saludos y gracias
-
Estimado gasafonso
Puedes hacer uso de Command Line Argument y de un archivo de texto (en donde están todos los email separados por como uno tras otro). En tú aplicación que envía los email en el punto de donde inicia (Sub Main o Form_Load) adiciona el siguiente código.
Suponiendo que incias desde Form_Load
Private Sub Form_Load()
Dim strFreeFile As String
Dim strEmail As String
If Command = vbNullString Then
' Vacío, solo por si lo necesitaras.
Else
strFreeFile = FreeFile
Open Command For Input As #strFreeFile
Input #strFreeFile, strEmail
TuVariableParaLosEmail = strEmail '<-- Esta línea tienes que adecuarla a tú programa
Close #strFreeFile
End If
End Sub
Suponiendo que tú aplicación de envió de email esta en el disco C en la carpeta EnviaMail y que el archivo que contiene los email se llama misclientes.txt, lo invocas de la siguiente manera
Desde Windows, haz clic en Inicio luego en la opción Ejecutar, en la venta de texto coloca lo siguiente (previamente adecúalo a tu estructura de archivo)
c:\enviaemail\Proyecto.exe c:\enviaemail\misclientes.txt
Saludos, desde algún lugar de Lima-Perú
-
Que buena explicacion , lo que no me queda claro es para que hago esto :
c:\enviaemail\Proyecto.exe c:\enviaemail\misclientes.txt ?
no puedo hacerlo automatico abriendo el sistema ?
saludos
-
Estimado gasafonso
Lo que se está realizando con esa línea c:\enviaemail\Proyecto.exe c:\enviaemail\misclientes.txt es justamente lo que indicas “hacerlo automático abriendo el sistema” para esto se le pasa al ejecutable (Proyecto.exe) el archivo (misclientes.txt) que contiene todas tus cuentas de email separadas por comas, para que las cargue todas en automático y si le adicionas unos bit más de código el email se podría enviar en automático.
Si solo ejecutaras esta línea c:\enviaemail\Proyecto.exe tú programa se va ejecutar de forma normal, es decir tendrás que ingresar manualmente una a una las cuentas de email.
Saludos desde algún lugar de Lima-Perú
-
Estimado Albertomi
Ahhh esta bien pero me parece algo engorroso para alguien que no sabe mucho de compu, sino abria que hacer algun . bat o algo asi que te parece ?
saludos
-
Estimado gasafonso
Bueno se supone que tú eres el proveedor de la solución, por lo tanto deberías de brindarle al usuario la capación mínima necesaria de las cosas de debe de realizar y como realizarla.
La idea del archivo .bat es una alternativa viable, así que imaginemos que en tú disco C tienes una carpeta con el nombre foro en donde se encuentra tú ejecutable y tu archivo con las direcciones de email. En dicha carpeta crea un archivo .bat y como texto coloca estas 2 líneas de código, luego simplemente es hacer doble clic sobre el archivo bat.
@echo off
C:\foro\Proyecto.exe C:\foro\misclientes.txt
NOTA: Para que funcione adecuadamente debes de usar rutas cortas, en su defecto transformar las rutas largas a rutas cortas.
Saludos desde algún lugar de Lima-Perú
-
Excelente Amigoooo ALbertomi,
Ahora para redondear, para cargar las direcciones de mail hacemos asi
Private Sub Form_Load()
Dim strFreeFile As String
Dim strEmail As String
If Command = vbNullString Then
' Vacío, solo por si lo necesitaras.
Else
strFreeFile = FreeFile
Open Command For Input As #strFreeFile
Input #strFreeFile, strEmail
TuVariableParaLosEmail = strEmail '<-- Esta línea tienes que adecuarla a tú programa
Close #strFreeFile
End If
End Sub
y deberia borrar esa linea una vez mandados los mails, como hago ? Como hago para no repetir los mails ? como dice Yacosta, creo una tabla con un IDcliente, Mails y fecha ?
gracias
saludos
-
Estimado gasafonso
Disculpa, pero no te entendí que es lo que me quieres decir. Traducción por favor
Saludos, desde algún lugar de Lima-Perú
-
Claro lo que te quiero preguntar es :
1 Para cargar las direccion de mails al archivo de texto como hago ?
2 Para borrarlos al termino del envio del mail ?
3 Como harias vos para no duplicar el envio diario ( te recuerdo que es un envio por dia si correspondiere )
Gracias
Saludos
-
Claro lo que te quiero preguntar es :
1 Para cargar las direccion de mails al archivo de texto como hago ?
2 Para borrarlos al termino del envio del mail ?
3 Como harias vos para no duplicar el envio diario ( te recuerdo que es un envio por dia si correspondiere )
Gracias
Saludos
-
Estimado gasafonso
Puedes hacer uso de Command Line Argument y de un archivo de texto (en donde están todos los email separados por como uno tras otro). En tú aplicación que envía los email en el punto de donde inicia (Sub Main o Form_Load) adiciona el siguiente código.
Suponiendo que incias desde Form_Load
Private Sub Form_Load()
Dim strFreeFile As String
Dim strEmail As String
If Command = vbNullString Then
' Vacío, solo por si lo necesitaras.
Else
strFreeFile = FreeFile
Open Command For Input As #strFreeFile
Input #strFreeFile, strEmail
TuVariableParaLosEmail = strEmail '<-- Esta línea tienes que adecuarla a tú programa
Close #strFreeFile
End If
End Sub
Suponiendo que tú aplicación de envió de email esta en el disco C en la carpeta EnviaMail y que el archivo que contiene los email se llama misclientes.txt, lo invocas de la siguiente manera
Desde Windows, haz clic en Inicio luego en la opción Ejecutar, en la venta de texto coloca lo siguiente (previamente adecúalo a tu estructura de archivo)
c:\enviaemail\Proyecto.exe c:\enviaemail\misclientes.txt
Saludos, desde algún lugar de Lima-Perú
Pero aca com se llama el archivo de texto que creo ? no entiendo
Si alguien me puede ayudar les agradezco
saludos
-
Estimado gasafonso
1 Para cargar las direccion de mails al archivo de texto como hago ?
Private Sub Form_Load()
Dim strFreeFile As String
Dim strEmail As String
If Command = vbNullString Then
' Vacío, solo por si lo necesitaras.
Else
strFreeFile = FreeFile
Open Command For Input As #strFreeFile
Input #strFreeFile, strEmail 'strEmail <-- Esta variable almacena todas las direcciones de email
Close #strFreeFile
End If
'Insertar código a partir de aquí
End Sub
Despues que se haya ejecutado todo el código que tu aplicación tengas en Form_Load solo tendrías que asignar
el valor de la variable al TextBox que tienes destinado para colocar los email's
TextBox.Text = strEmail
luego por código invocas al evento Enviar (o como lo llames) del botón (estoy suponiendo que tienes un boton) que tienes
en tu aplicación para enviar los email
2 Para borrarlos al termino del envio del mail ?
TextBox.Text = vbNullString
3 Como harias vos para no duplicar el envio diario ( te recuerdo que es un envio por dia si correspondiere )
Crea una Tarea Programada (Task Scheduler) en Windows que invoque a tu archivo .bat.
Debes de tener presente que antes que la Tarea Programada se ejecute debes haber actualizado el archivo (misclientes.txt) que es el que contienes tus direcciones de email
Saludos desde algún lugar de Lima-Perú
-
Hola amigo ALbertomi, pero como se que el archivo de texto se llama misclientes.txt aca ?
Private Sub Form_Load()
Dim strFreeFile As String
Dim strEmail As String
If Command = vbNullString Then
' Vacío, solo por si lo necesitaras.
Else
strFreeFile = FreeFile
Open Command For Input As #strFreeFile
Input #strFreeFile, strEmail 'strEmail <-- Esta variable almacena todas las direcciones de email
Close #strFreeFile
End If
'Insertar código a partir de aquí
End Sub
-
Estimado gasafonso
Como saber que el el archivo de texto se llama misclientes.txt, pues es simple, cuando ejecutas tú aplicación pasándole un parámetro de esta forma c:\enviaemail\Proyecto.exe c:\enviaemail\misclientes.txt
En la línea de código Open Command For Input As #strFreeFile, Command está recibiendo el valor c:\enviaemail\misclientes.txt, por lo tanto, esa línea de código quedaría de la siguiente manera Open "c:\enviaemail\misclientes.txt" For Input As #strFreeFile (Para hacértelo más simple asume que Command es una variable que tiene asignado el texto "c:\enviaemail\misclientes.txt")
Saludos, desde algún lugar de Lima-Perú
-
Pero antes tengo que crear este archivo ?
c:\enviaemail\misclientes.txt
gracias
-
Estimado gasafonso
Es correcto, antes de ejecutar tienes que tener el archivo misclientes.txt actualizado.
Pero de que se trata tú software...?
Saludos, desde algún lugar de Lima-Perú
-
hola Albertoimi
mi softaware es de gestion y administracion de clinicas veterinarias y pet shop
Sabes que no me carga en misclientes.txt las direcciones de mails, se te ocurre algo ?
-
Estimado gasafonso
No se me ocurre nada, porque, no tengo ni las más remota idea de lo que estaras haciendo.
Si grabas un video donde podamos ver que es lo que estas haciendo creo que quizas ayudaria a entenderte.
Saludos desde algún lugar de Lima-Perú
-
Pero con esta instruccion no se deberia guardar en el archivo txt ?
Private Sub Form_Load()
Dim strFreeFile As String
Dim strEmail As String
If Command = vbNullString Then
' Vacío, solo por si lo necesitaras.
Else
strFreeFile = FreeFile
Open Command For Input As #strFreeFile
Input #strFreeFile, strEmail
TuVariableParaLosEmail = strEmail '<-- Esta línea tienes que adecuarla a tú programa
Close #strFreeFile
End If
End Sub
gracias
-
Estimado gasafonso
La porción de código que indicas no guarda en el archivo de texto; lee del archivo de texto. Dicho archivo de texto debes de haberlo creado antes y debe de contener tus direcciones de email separadas por punto y coma (; ). No recuerdo si fue en este o en otro post donde te explique cómo es que se crea el archivo de texto.
Por favor, lee los link (auto aprendisaje) que te he adjuntado en respuestas anteriores, para que sepas así cuando se está leyendo o escribiendo en un archivo de texto.
Saludos, desde algun lugar de Lima-Perú
-
siiiii perdonnnnnn, lo hice del celular y me equivoque
Este es la instruccion
Dim strEmails As String
strEmails = vbNullString
'Nos movemos al primer registro (Esto no es 100% necesario).
rstRecordSet.MoveFirst
'Itera el recordset
Do While Not rstRecordSet.EOF
' Concatena email
If Len(rstRecordSet.Fields("mail").Value) > 0 Then
strEmails = strEmails & rstRecordSet.Fields("mail").Value & ";"
End If
'Nos movemos al siguiente registro.
rstRecordSet.MoveNext
Loop
'Cerramos el recordset (Quizás para tú aplicación no necesites cerrar el recordset en este punto)
rstRecordSet.Close
'Asigna al TextBox los email separados por ";"
TextBox.Text = strEmails
-
siiiii perdonnnnnn, lo hice del celular y me equivoque
Este es la instruccion
Dim strEmails As String
strEmails = vbNullString
'Nos movemos al primer registro (Esto no es 100% necesario).
rstRecordSet.MoveFirst
'Itera el recordset
Do While Not rstRecordSet.EOF
' Concatena email
If Len(rstRecordSet.Fields("mail").Value) > 0 Then
strEmails = strEmails & rstRecordSet.Fields("mail").Value & ";"
End If
'Nos movemos al siguiente registro.
rstRecordSet.MoveNext
Loop
'Cerramos el recordset (Quizás para tú aplicación no necesites cerrar el recordset en este punto)
rstRecordSet.Close
'Asigna al TextBox los email separados por ";"
TextBox.Text = strEmails
como hago para ingresar en un archivo de texto , todos mis direcciones de mails que se encuentran en la variabble (strEmails)
gracias
-
Estimado gasafonso
El siguiente código hace lo que necesitas, te recomiendo leer el siguiente tutorial de manejo de archivos (http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm)
-----------------------------------------------------------------------------------
Dim lngFile As Long
'Obtenemos un número de archivo libre
lngFile = FreeFile
'Abre, escribe (a archivo de texto el contenido de la variable strEmails) y cierra el archivo de texto
Open App.Path & "\misclientes.txt" For Input As lngFile '<-- Esta línea crea algo como esto (adaptalo a tu ruta) c:\enviaemail\misclientes.txt
Print #lngFile, strEmails
Close #lngFile
-----------------------------------------------------------------------------------
Saludos, desde algún lugar de Lima-Perú
-
Gracias CApo, estos foros son geniales gracias a Gente como Vos , Yacosta, etc
muchas gracias por tu dedicacion
abazo
-
Me da el siguiente error, alguien sabe por que ?
(http://s27.postimg.org/46ew99u5r/Error.jpg) (http://postimg.org/image/46ew99u5r/)
gracias
-
En que linea te da el error?
Probaste cerrando todo el IDE (el visual basic) y abriendo denuevo?
-
Estimado gasafonso
Sin poder ver tú código es un poco difícil orientarte sobre que puede estar ocurriendo o que estás haciendo mal.
Por otro lado, debes de tener en consideración que a partir de Windows Vista en adelante, el sistema operativa pone más restricciones de seguridad por ejemplo muchas carpetas (directorios) tienen por defecto permiso de solo lectura entre ellas Archivos de programa (Program File). Esto es controlado por UAC (User Account Control), a manera de prueba desactiva por completo UAC (necesitaras reiniciar tú PC para que el cambio surja efecto) y luego vuelve a intentar ejecutar tú código.
Saludos, desde algún lugar de Lima-Perú
-
Hola Amigos , gracias a todos por su dedicacion
lo solucione poniendo
Open App.Path & "\misclientes.txt" For Append As lngFile
en vez de
Open App.Path & "\misclientes.txt" For input As lngFile
Ahora bien aprovecho y pregunto, una vez que mando el mails necesito borrar esa linea (la primera deberia ser) donde estaran todos los mails del dia para mandar. COmo hago ?[
-
Kill (App.Path & "\misclientes.txt")
Saludos...
-
Tené en cuenta que si abrís el archivo en modo "Input", cada vez que lo hagas reemplazará el archivo anterior. Y si lo abrís en modo "Append", como pusiste en tu último mensaje, va a ir agregando las líneas de texto que vayas insertando. Es decir, si tenés un archivo con tres líneas de texto y después lo abrís en modo "Input" e insertás dos líneas, lo que habrás hecho es reemplazar el archivo de tres líneas por uno nuevo, con dos líneas. Si, en cambio, lo abrís en modo "Append" e insertás dos líneas, lo que habrás hecho es agregar dos líneas al archivo que tenía tres, con lo que te va a quedar uno con cinco líneas.
Jerónimo
-
Yo necesito que al momento de abrir el archivo este vacio sin ninguna linea, pero con el input me da el error que comente anteriormente
ENTER , lo que necesito borrar son las lineas no el archivo, gracias
-
También podes guardar así:
Private Sub Command1_Click()
Open App.Path & "\mail.txt" For Output As #1
Print #1, strEmail
Close #1
End Sub
-
También podes guardar así:
Private Sub Command1_Click()
Open App.Path & "\mail.txt" For Output As #1
Print #1, strEmail
Close #1
End Sub
Aha , acordate que este archivo al momento de abrir deberia de estar vacio
y para borrar las lineas ?
-
Podes vaciarlo asi:
Private Sub Command1_Click()
Open App.Path & "\mail.txt" For Output As #1
Print #1, ""
Close #1
End Sub
-
Aca te prepare un ejemplo de como podes guardar, suponiendo que tienes en un ListBox todas las lista de mail que tenes que enviar.
(screen) Supongamos que son estos las lista de mail a enviar que ya recuperaste del filtro de tu BD.
(http://snag.gy/KnUbp.jpg)
Link ejemplo:
(http://snag.gy/KnUbp.jpg[/url)Private Sub cmdGuardar_Click()
Dim xMail As String
For i = 0 To List1.ListCount
xMail = xMail + List1.List(i) & "," 'Aca lo que hice es juntar todos los mail que esta en el control List unidos por coma.
Next i
Open App.Path & "\mail.txt" For Output As #1
Print #1, Left(xMail, (Len(xMail) - 2)) 'Aca guardo esa lista en un archivo que se llama mail.txt
Close #1
End Sub
Este es para recuperar lo que se guardo en el archivo mail.txt
Private Sub cmdRecuperar_Click()
'Para recuperar lo que hay en el archivo mail en un ListBox.
Open App.Path & "\mail.txt" For Input As #1
Do Until EOF(1)
Input #1, xLista
List2.AddItem xLista
Loop
Close #1
'Para recuperar lo que hay en el archivo mail en un Caja de Texto.
Open App.Path & "\mail.txt" For Input As #1
Line Input #1, xLine
txtMail.Text = xLine
Close #1
End Sub
-
Estimado gasafonso
A tú pregunta Ahora bien aprovecho y pregunto, una vez que mando el mails necesito borrar esa línea (la primera debería ser) donde estarán todos los mails del día para mandar. COmo hago ?, le voy a dar 2 respuesta pues no me queda muy clara: - Después de invocar a tú función o procedimiento que envía los emailes, simplemente borra el TextBox donde están todos los email.
- Particularmente haría un Servicio Windows el cual invocaría a su Worker para automatizar la creación diaria del archivo misclientes.txt. Pero para no complicarte con lo del Servicio Windows, puedes echar mano de los recursos que brinda Windows y crea una Tarea Programada (Task Scheduler) que invoque al Worker, el worker no es más que una aplicación VB, que ejecuta el query SQL bajo demanda y cree así un nuevo archivo misclientes.txt. Por un tema de optimización, en el servidor de base de datos, sería conveniente que el query SQL lo pases a un SP (Store Procedure) dentro de la base de datos y que desde el Worker invoque al SP y ya no al query SQL.
Saludos, desde algún lugar de Lima-Perú
-
Estimado ALBERTOMI
Perdon pero no se de que me estas hablando , para mi es chino basicoooooooooo Solo conozco las Tarea Programada (Task Scheduler)
Perdon por no estar a la altura
-
Aca tenes un tutorial de como usar el programador de tareas de Windows.
Que es el programador de tareas de Windows.
http://geekazos.com/programador-de-tareas/ (http://geekazos.com/programador-de-tareas/)
Como se usa
Link a youtube: https://www.youtube.com/watch?v=Jf79FGHN440 (https://www.youtube.com/watch?v=Jf79FGHN440)
-
gracias ENTER y que es un Worker ?
Aprovecho amigo para preguntarte por el manejo de imagenes , ya que necesito mejor mi aplicacion de ECOGRAFIAS Y RADIOGRAFIAS , para cargar modificar y borrar
ver link
http://leandroascierto.com/foro/index.php?topic=2570.msg14208#msg14208
gracias
-
Worker seria en español Trabajo, trabajador, labor...
Aca esta Google Translate: https://translate.google.es/#auto/es/worker (https://translate.google.es/#auto/es/worker), podes consultar cualquier palabra que este en otra idioma
Saludos...
-
Worker seria en español Trabajo, trabajador, labor...
Aca esta Google Translate: https://translate.google.es/#auto/es/worker (https://translate.google.es/#auto/es/worker), podes consultar cualquier palabra que este en otra idioma
Saludos...
Ok graciasssssss
Me ayudas con esto
"Aprovecho amigo para preguntarte por el manejo de imagenes , ya que necesito mejorar mi aplicacion de ECOGRAFIAS Y RADIOGRAFIAS , para cargar modificar y borrar "
Saludos
-
Creo que deberías de crear un nuevo post y pedir ahí exactamente que es lo que quieres y si tienes parte de code mostrar para ver en que te podemos ayudar para mejorarlo, Por que así medio que estamos jugando a la adivinanza, espero que no me lo tomes a mal.
Se entiende?
-
Siii capooooo te entiendo perfecto, yo para no tener que armar un post de nuevo. Me da pereza jua jua
-
Siii capooooo te entiendo perfecto, yo para no tener que armar un post de nuevo. Me da pereza jua jua
Ande amigo, no sucumba a la pereza que se jode el index del foro :-)
Saludos
-
OK OK OK jua jua.
Pero no creo que sea conveniente crear otro post cuando ya hay uno creado
http://leandroascierto.com/foro/index.php?topic=2570.0
gracias
Ahi muchos me ayudaron, pero tengo mucha confusion, quiero saber una opinion cual seria la mejor forma de hacer
saludos