none
Mala direta RRS feed

  • Pergunta

  • Pessoal, preciso fazer uma mala direta em Word 2007, usando uma planilha Excel como fonte de dados. Os dados para a mala direta serão obtidos de 2 tabelas de um arquivo xlsx. O código abaixo não retorna nenhum registro. Alguém pode ajudar? Onde está o erro?

        Dim strBook As String
        Dim strBookName As String
        Dim strDataSource As String
        
        Dim SQL As String
        
        strBookName = "\pnaes_copia.xlsx"
        strBook = ActiveDocument.Path & strBookName
        strDataSource = ActiveDocument.MailMerge.DataSource.Name
        
        SQL = "SELECT t2$.Valor,t1$.nome FROM [Plan1$] [T1$] INNER JOIN [PNAES$] [T2$] ON [t1$].Codigo=[t2$].Codigo_TAB WHERE [t2$].Assistencia='maria'"
        Debug.Print SQL
        
        ActiveDocument.MailMerge.OpenDataSource Name:= _
        strBook, _
        ConfirmConversions:=False, _
        ReadOnly:=False, _
        LinkToSource:=True, _
        AddToRecentFiles:=False, _
        PasswordDocument:="", _
        PasswordTemplate:="", _
        WritePasswordDocument:="", _
        WritePasswordTemplate:="", _
        Revert:=False, _
        Format:=wdOpenFormatAuto, _
        Connection:= _
        "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=strBook;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLEDB:D", _
        SQLStatement:=SQL, _
        SQLStatement1:="" ', SubType:= _
        wdMergeSubTypeOther

    Se a string SQL é como abaixo, funciona normalmente.

    SQL="SELECT * FROM [Plan1$]

    SQL="SELECT codigo,nome FROM [Plan1$]

    Como os dados serão obtidos de 2 tabelas, o SELECT precisa referenciar "tabela.campo"

    Alguém sabe como resolver essa questão?

    Valeu

    terça-feira, 25 de julho de 2017 01:25