border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 03-08-2007, 18:43:30
j j is offline
Buena Participación en el Foro
 
Registrado: dic 2004
Posts: 45
j Valoración +2
Predeterminado outlook y vb

Hola a todos.
A ver si alguien me puede ayudar.
Estoy haciendo un programa que mediante MAPISESSION y MAPIMESSAGE envia correos electrónicos a distintos destinatarios a traves de outlook.
Todo incluso el envio de correos funciona correctamente es justo después de enviarlo que me da un problema que atribuyo a outlook.
Resulta que una vez enviado el mensaje al volver a trabajar con otro formulario del programa. la ruta de conexión a la BD se cambia o bien el programa interpreta que ha de buscar en la raiz de outlook C:\archivos de programa\outlook\DATOS\nauticas.mdb.

Este es el código que empleo para enviar los correos:

Private Sub cmdEnviar_Click()
Dim i As Integer
Dim id As Long
Dim diario As String
Dim msj As String
Dim sql As String
For i = 1 To cont_nauticas
If txtAsunto.Text = "" Then
msj = MsgBox("Debe propener un ASUNTO", vbOKOnly + vbCritical, "ERROR")
Else
GridEnv.Col = 12
txtdestinatario.Text = GridEnv.Text
GridEnv.Col = 0
id = GridEnv.Text
MAPISession1.NewSession = False
MAPISession1.SignOn

MAPIMessages1.SessionID = MAPISession1.SessionID
MAPIMessages1.Compose

MAPIMessages1.MsgSubject = txtAsunto
MAPIMessages1.MsgNoteText = txtMensaje
MAPIMessages1.RecipDisplayName = txtdestinatario
If lblAdjunto.Caption <> "" Then
MAPIMessages1.AttachmentPathName = lblAdjunto.Caption
End If
MAPIMessages1.Send False
MAPISession1.SignOff
sql = "select c01_d from c01 where c01_id=" & id
rstNautica.Open sql, cnMail, adOpenDynamic, adCmdTable
diario = rstNautica!c01_d
If diario <> "" Then
diario = rstNautica!c01_d & vbCrLf & "Enviado mensaje de correo en:" & Date & " asunto: " & txtAsunto.Text & " Archivo adjunto: " & lblAdjunto.Caption & ""
sql = "UPDATE c01 SET c01_d='" & diario & "' where c01_id=" & id
rstAux.Open sql, cnMail, adOpenDynamic, adCmdTable
Else
diario = "Enviado mensaje de correo en:" & Date & " asunto: " & txtAsunto.Text & " Archivo adjunto: " & lblAdjunto.Caption & ""
sql = "UPDATE c01 SET c01_d='" & diario & "' where c01_id=" & id
rstAux.Open sql, cnMail, adOpenDynamic, adCmdTable
End If
rstNautica.Close
End If
Next i
'Borrar toda la tabla de c06
sql = "select * from c06"
rstAux.Open sql, cnMail, adOpenDynamic, adCmdTable
Do While Not rstAux.EOF
sql = "select * from c06 where c06_id= " & rstAux!c06_id & ""
rstAux2.Open sql, cnMail, adOpenDynamic, adCmdTable
rstAux2.Delete
rstAux.MoveNext
rstAux2.Close
Loop
rstAux.Close
actualiza_grid_2
End Sub

Y este es el que utilizo para la conexión:

'Abre conexión
cnMail.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DATOS\nauticas.mdb;Persist Security Info=False"
cnMail.Open

A ver si a alguién se le ocurre el porque y como solucionarlo.
Gracias de antemano y saludos a todos.
Responder Con Cita
  #2 (permalink)  
Antiguo 26-08-2007, 19:34:35
j j is offline
Buena Participación en el Foro
 
Registrado: dic 2004
Posts: 45
j Valoración +2
Predeterminado

Bueno amigos
He conseguido solucionarlo y la verdad es que es la solución más sencilla a un problema y a la vez es la que me ha costado más
Igual me estoy haciendo mayor antes de tiempo(jejejeje)
No sé exáctamente porque se ocurre lo descrito en el mensaje anterior pero es así.
Pués bien la solución por si a alguien le ocurre es la siguiente:

strRuta = "provider=microsoft.jet.oledb.4.0; " & "data source=" & App.Path & "\DATOS\nauticas.mdb"
cnMail.Open strRuta

es decir basta con modificar la conexón a la BD mediante la constante App.path
esto lo encontré en éste mismo foro cuando dispuse de un poco de tiempo libre
para investigar.

Gracias a todos.
Responder Con Cita
  #3 (permalink)  
Antiguo 26-08-2007, 21:52:52
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.490
J.M.Movilla Valoración +2
Predeterminado

Pues si ya has encontrado tú mismo la respuesta, perfecto. Yo iba a decir (por si en otra ocasión te encuentras con un problema parecido y no te sirve la solución actual) que para recuperar la ubicación de un fichero tras haber cambiado de directorio, tienes esta posibilidad:
Código:
Dim cRutaOld As String
cRutaOld = "RutaActualQueQuierasRecuperar"
    '  Aquí el proceso por el que pierdes la ubicación
    '
    '  Recuperamos la ruta con:
ChDir cRutaOld
__________________
José María Movilla Cuadrado
______________________
www.foro.vb-mundo.com
www.vb-mundo.com

Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Outlook ptezcucano VBA (Excel, Word, Outlook, Access) 0 18-06-2007 19:45:18
MS-Outlook y VB JuniorTuPapa Visual Basic 6.00 3 18-09-2005 08:58:09
OUTLOOK JOSEMARS1 VBA (Excel, Word, Outlook, Access) 0 06-07-2005 15:12:23
Contactos en Outlook taddevil Visual Basic 6.00 0 24-02-2005 18:55:08
Outlook 2003 jessuss Visual Basic 6.00 0 24-02-2005 13:50:52


La franja horaria es GMT. Ahora son las 01:41:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right