Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    89

    Ritardare l'esecuzione di un blocco

    Salve a tutti,
    sto facendo un'applicazione che carica un file .xls su un db, e solo dopo aver finito il caricamento, manda una mail ad un gruppo di destinatari.
    Poichè il file ha sempre le medesime dimensioni, ho potuto testare che ci vogliono circa 30 secondi per il completamento dell'operazione. Vorrei quindi attivare la procedura che manda le mail solo dopo 30 secondi.
    Esiste qualche comando adatto?
    Vi ringrazio!

  2. #2
    potresti usare un API...la sleep...ma credo ci siano metodi migliori.,,

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Veramente le due operazioni sono sincrone ... ovvero, l'istruzione di invio della posta non parte se non e' finito l'inserimento ...

    Quindi il tuo problema non mi e' molto chiaro ...

    Forse e' meglio che tu chiarisca, magari mostrando il codice ...

    Ritardare i programmi per inviare posta e' una moda di questi tempi ...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    89
    Dunque effettivamente l'invio della mail deve avvenire soltanto quando il file è stato caricato sul db (aprirò un'altra discussione per chiedervi alcuni consigli al riguardo! ). Il funzionamento logico dell'applicazione è la seguente : quando sono pronti alcuni aggiornameti, viene messo un file su una directory sherata di un db. Fatto ciò vengono avvisati i clienti che il file è stato depositato e quindi che gli aggiornamenti sono reperibili su questo db (a cui loro possono accedere).
    Vorrei quindi capire come posso ritardare l'invio della mail, fino a quando il file non è stato messo sul db!! Ti mando il codice :



    Private Sub btnInviaStandard_Click()
    Dim intI As Integer

    'mando mail sono agli elementi checkati nella lista

    intI = 1
    If lstMailAddress.ListItems.Count <> 0 Then
    While intI <= lstMailAddress.ListItems.Count
    'mando mail solo a destinatari selezionati
    If (lstMailAddress.ListItems.Item(intI).Checked = True) Then
    MsgBox lstMailAddress.ListItems.Item(intI)
    MsgBox "Checkato"
    Call invio(lstMailAddress.ListItems.Item(intI), chkAllega.Value, optIta.Value)
    End If
    intI = intI + 1
    Wend
    Else
    Call invio(txtInserimentoManuale.Text, chkAllega.Value, optIta.Value)
    End If

    Call init
    lstMailAddress.ListItems.Clear
    txtPercorso.Text = ""

    End Sub




    'a seconda del flag devo poter scegliere se allegare il file alla mail o no, e scegliere di 'mandare un testo del messaggio o in italiano o in inglese


    Public Sub invio(indirizzo, allego, lingua)
    Dim out As Object

    Set out = CreateObject("Outlook.Application")


    If allego = False Then
    ' mando mail senza allegato
    With out.CreateItem(olMailItem)
    .Recipients.Add indirizzo
    .Subject = Oggetto_Mail(testoOGGETTO.txt)
    '.Subject = "Ciao Belli" ' campo soggetto
    '.body = "testo del messaggio" 'copia il testo del messaggio dalla casella di testo

    If lingua = vero Then
    ' testo scelto = ITALIANO
    .body = Testo_Mail(testoITA.txt)
    Else
    'testo scelto =ENGLISH
    .body = Testo_Mail(testoENG.txt)
    End If

    ' .Attachments.Add txtPercorso.Text
    .Send
    MsgBox "Mail spedita con successo senza allegato"
    End With

    Else
    'mando mail con allegato
    With out.CreateItem(olMailItem)
    .Recipients.Add indirizzo
    .Subject = Oggetto_Mail(testoOGGETTO.txt)
    '.Subject = "Ciao Belli" ' campo soggetto
    '.body = "testo del messaggio" 'copia il testo del messaggio dalla casella di testo

    If lingua = vero Then
    ' testo scelto = ITALIANO
    .body = Testo_Mail(testoITA.txt)
    Else
    'testo scelto =ENGLISH
    .body = Testo_Mail(testoENG.txt)
    End If


    .Attachments.Add txtPercorso.Text
    .Send
    MsgBox "Mail spedita con successo con allegato"
    End With


    End Sub


    p.s.
    Oregon, hai ragione ad avere dubbi viste alcune discussioni affini!!
    p.p.s.
    Ranza ho provato la tua soluzione ma non riesco a farla funzionare!!!

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ok ... ma allora non mi sono spiegato ...

    Le due operazioni sono sincrone ... nel codice non vedo la parte relativa al caricamento del file sul db (che poi non e' chiaro come carichi un file su un db ... intendi il nome del file?)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    89
    Buon dì Oregon,
    quando dico 'caricare' il file intendo semplicemente una shell che fa una copia del file su un db remoto. Non trovi la parte di codice perchè la sto facendo!! O almeno sto provando a farla!! : )

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Mi spieghi come copi "un file in un db"?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    89
    Uso una shell :


    returnValue = Shell("cmd /c copy " + """" & txtPercorso & """" + " \\aupaap02\files_cntr ", 0)

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    1) Non copi un file in un db, ma in una cartella (un db e una cartella sono cose diverse ...)

    2) Perche' mai utilizzi la copy del dos nella shell asincrona quando c'e' l'apposita istruzione FileCopy del VB che e' sincrona e risolve tutto quanto?

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    89
    Ciao Oregon, inutile dirti che hai ragione!
    1) In effetti copio un file in una cartella (di un db )
    2)Non sapevo dell'esistenza del FileCopy, effettivamente risolve tutte le pippe mentali del ritardo ecc... usare un tempo fisso di attesa prima di mandare le mail mi faceva di soluzione un tantino sporca!!!
    GRAZIE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.