antoniox
19-02-2010, 17:28
Ciao.
Richiedo aiuto con il VBA e più precisamente per una stampa unione
La situazione
Ho un file in formato access nel quale esiste una tabella con diversi campi (ID (non contatore ma chiave primaria), campo1, campo2, etc) e un numero N di record.
Ho creato un documento word e, utilizzando le funzioni di stampa unione, ho "disposto" i collegamenti con la tabella di access.
Gli obiettivi
Per ciascun record (ovvero ID) della tabella access, vorrei creare una directory avente come nome l'ID;
all'interno di questa directory, creare un file unione (il cui nome è formato da ID e da una porzione di testo.
Cosa ho fatto e quali problemi incontro
Sub Macro1()
Dim i As Long
i = ActiveDocument.MailMerge.DataSource.RecordCount
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
Do While intCounter < i
intCounter = intCounter + 1
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
.LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
End With
.Execute Pause:=False
End With
Dim sPath As String
sPath = ThisDocument.Path
Dim ID As String
ID = ActiveDocument.MailMerge.DataSource.ActiveRecord
' si blocca alla riga seguente
MkDir sPath & "\" & ID
ChangeFileOpenDirectory ThisDocument.Path & "\" & ID
ActiveDocument.SaveAs ID & "AAAAAAA-01" & ".doc"
ActiveWindow.Close
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Loop
End Sub
La prima directory viene creata ma, anzichè riportare come ID "1" (il valore 1 corrisponde al valore nel primo record della tabella access), riporta -1.
Viene creato il file e salvato (con lo stesso problema di ID).
Viene aperta la nuova finestra per la seconda riga della tabella access e si blocca perchè prova a creare una nuova directory con il medesimo nome della precedente.
Mi è chiaro dove è l'errore (non riesco ad associare ad ID i valori del campo ID della tabella access) ma non so come fare.
Grazie.
Richiedo aiuto con il VBA e più precisamente per una stampa unione
La situazione
Ho un file in formato access nel quale esiste una tabella con diversi campi (ID (non contatore ma chiave primaria), campo1, campo2, etc) e un numero N di record.
Ho creato un documento word e, utilizzando le funzioni di stampa unione, ho "disposto" i collegamenti con la tabella di access.
Gli obiettivi
Per ciascun record (ovvero ID) della tabella access, vorrei creare una directory avente come nome l'ID;
all'interno di questa directory, creare un file unione (il cui nome è formato da ID e da una porzione di testo.
Cosa ho fatto e quali problemi incontro
Sub Macro1()
Dim i As Long
i = ActiveDocument.MailMerge.DataSource.RecordCount
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
Do While intCounter < i
intCounter = intCounter + 1
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
.LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
End With
.Execute Pause:=False
End With
Dim sPath As String
sPath = ThisDocument.Path
Dim ID As String
ID = ActiveDocument.MailMerge.DataSource.ActiveRecord
' si blocca alla riga seguente
MkDir sPath & "\" & ID
ChangeFileOpenDirectory ThisDocument.Path & "\" & ID
ActiveDocument.SaveAs ID & "AAAAAAA-01" & ".doc"
ActiveWindow.Close
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Loop
End Sub
La prima directory viene creata ma, anzichè riportare come ID "1" (il valore 1 corrisponde al valore nel primo record della tabella access), riporta -1.
Viene creato il file e salvato (con lo stesso problema di ID).
Viene aperta la nuova finestra per la seconda riga della tabella access e si blocca perchè prova a creare una nuova directory con il medesimo nome della precedente.
Mi è chiaro dove è l'errore (non riesco ad associare ad ID i valori del campo ID della tabella access) ma non so come fare.
Grazie.