Condividi tramite

Access come esportare dati da una maschera scegliendo tra due modelli Word

Anonimo
2013-04-12T15:17:39+00:00

Buongiorno a tutti!

Come posso modificare il seguente codice affinché:

  • scegliendo il valore "A" dalla casella combinata di una maschera mi apra e mi esporti i dati di quella maschera nel modello Word denominato, ad esempio, "ModelloA" e
  • scegliendo invece il valore "B" dalla casella combinata della maschera mi apra e mi esporti i dati della maschera nel modello Word denominato, ad esempio, "ModelloB"?

Private Sub Esporta_Click()

Dim wrd As Word.Application, Doc As Word.Document

Dim Rst As DAO.Recordset

Dim Modello As String, NomeFile As String, i As Integer

Dim Record As String, SQL As String

Dim Tbl As String * 1

Dim TotRiga As Currency, Totale As Currency

Dim ReplSel As Boolean

    Modello = CurrentDb.Name

    Modello = Left(Modello, Len(Modello) - Len(Dir(Modello))) & "ModelloA.dot"

    On Error Resume Next

    Set wrd = GetObject(, "Word.Application")

    If Err.Number = 429 Then

        Set wrd = CreateObject("Word.Application")

    End If

    On Error GoTo 0

    wrd.Visible = True

    wrd.Activate

    ReplSel = wrd.Options.ReplaceSelection

    wrd.Options.ReplaceSelection = True

    Set Doc = wrd.Documents.Add(Modello)

    Doc.Activate

 pausa

    Doc.Bookmarks("Testo1").Select

pausa

    wrd.Selection.TypeText Me.Scadenza_Consegna_Appalto

pausa

    Doc.Bookmarks("Testo2").Select

pausa

    wrd.Selection.TypeText Me.Oggetto_Appalto

pausa

    Doc.Bookmarks("Testo3").Select

pausa

    wrd.Selection.TypeText Me.Data_Dichiarazione

    wrd.Options.ReplaceSelection = ReplSel

    wrd.Application.WordBasic.MsgBox "Esportazione terminata", "Esportazione dati da Access"

    Set Doc = Nothing

    Set wrd = Nothing

End Sub

Grazie a tutti!

Marta

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-04-12T21:46:05+00:00

Ciao Marta,

cambia questa riga da così:

Modello = Left(Modello, Len(Modello) - Len(Dir(Modello))) & "ModelloA.dot"

a così:

Modello = Currentproject.Path & ""Modello" & Me.CasellaCombo & ".dot"

CasellaCombo è il nome della casella combinata da cui selezioni A o B, al suo posto metti il nome da te usato.

Elimina la riga Modello = CurrentDb.Name perché non serve.

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-04-16T10:38:39+00:00

    Buongiorno Marta,

    se Me.Scegli contiene il valore 1 non potrà mai aprire ModelloA.dot e/o ModelloB.dot

    da quanto hai scritto Me.Scegli dovrebbe contenere A o B.

    Comunque per vedere il nome completo del file puoi inserire una MsgBox dopo l'istruzione che ho suggerito in questo modo:

    MsgBox Modello.

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-04-16T08:57:29+00:00

    Buongiorno Giorgio,

    ho controllato: i due modelli risiedono nello stesso percorso in cui risiede il database (nella stessa cartella); la colonna associata di Me.Scegli contiene il valore 1, mentre nell'origine riga di Me.Scegli ho inserito la denominazione esatta dei due modelli (il tipo origine riga di Me.Scegli è Elenco Valori).

    Dove sbaglio?

    Grazie per l'aiuto!

    Marta

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-04-15T16:24:48+00:00

    Buongiorno Giorgio,

    ho sostituito la riga del codice come mi ha detto e ho eliminato quella che non serve, ma mi dà errore e mi dice che ho utilizzato in modo non corretto delle parentesi nella chiamata di una routine.

    Ho provato a modificare così:

    Modello = CurrentProject.Path & "\Modello" & Me.Scegli & ".dot"

    In questo modo mi permette di salvare il codice senza errori, ma per contro mi apre word in schermata grigia, non aprendo il modello desiderato.

    Come fare?

    Grazie mille per l'aiuto!

    Marta 

    Ciao Marta,

    sì, mi è scappata una " di troppo.

    Tornando al tuo problema, se non ti apre il modello desiderato significa che la colonna associata di Me.Scegli non contiene A o B oppure ModelloA.dot e/o ModelloB.dot non esistono nello stesso percorso in cui risiede il database.

    Prova a controllare.

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-04-15T14:17:37+00:00

    Buongiorno Giorgio,

    ho sostituito la riga del codice come mi ha detto e ho eliminato quella che non serve, ma mi dà errore e mi dice che ho utilizzato in modo non corretto delle parentesi nella chiamata di una routine.

    Ho provato a modificare così:

    Modello = CurrentProject.Path & "\Modello" & Me.Scegli & ".dot"

    In questo modo mi permette di salvare il codice senza errori, ma per contro mi apre word in schermata grigia, non aprendo il modello desiderato.

    Come fare?

    Grazie mille per l'aiuto!

    Marta

    La risposta è stata utile?

    0 commenti Nessun commento