MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    importar campos de formulário do word para tabela do Access

    avatar
    carmelito
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 34
    Registrado : 12/08/2011

    importar campos de formulário do word para tabela do Access Empty importar campos de formulário do word para tabela do Access

    Mensagem  carmelito 30/9/2013, 22:57

    Olá!
    Pessoal:]
    estou trabalhando nos programas:
    Access e word versão 2003.

    Objetivo: Criar um código em vba ou macro que ao clicar no botão em um formulário do access, faça uma busca em uma pasta (será sempre o mesmo nome da pasta) com dezenas ou centenas de arquivos do word(com nomes dos arquivos diferentes) (no formato formulário), com os campos identificados, fazendo a importação desses campos para uma tabela única do access versão 2003. Porém, não importando duas vezes o mesmo formulário.

    Como funciona no dia a dia:
    Tem um formulário do word, uma pesquisa, com campos, todos identificados: nome, matrícula, cpf, telefone, sugestão.
    recebemos vários arquivos de word com os campos preenchidos.
    armazenamos em uma pasta no caminho: c:\recebimento

    Problema:
    Preciso um código em vba ou macro dentro de um formulário do access que ao clicar vai executar uma pesquisa em todos os arquivos word da pasta recebimento e após a importação automática dos campos para tabela recebimento do access, nos respectivos campos da tabela. Porém, que faça a importação apenas uma vez de cada formulário existente, ou seja, se existir um arquivo chamado joão.doc, então o access vai exportar apenas uma vez tal arquivo. Acho que tem que inserir um campo oculto com valor 1 e 0 ou algo semelhante.

    Solução: alguém já fez isso com word, pode dar um exemplo ou ajuda.
    Obrigado.

    lógico, já pesquisei em vários lugares do fórum, mas não achei, por isso, fiz tal pergunta e abri esse tópico.


    avatar
    carmelito
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 34
    Registrado : 12/08/2011

    importar campos de formulário do word para tabela do Access Empty Re: importar campos de formulário do word para tabela do Access

    Mensagem  carmelito 1/10/2013, 23:27

    gente, como não obtive resposta, fui atrás em outros foruns, achei esse código abaixo:
    funciona em partes, aparece uma caixa de texto (por causa do código: InputBox("Enter the name of the Instructor Form " & _ ) que preciso digitar o nome do arquivo para o sistema conseguir importar os dados, mas como eu faço pra ele não pedir o nome do arquivo e copiar os campos daquele arquivo e depois já ir para o próximo arquivo, e assim por diante, ou seja, tem 100 arquivos .doc, com diversos nomes, porém, os nomes dos campos são os mesmos pra todos, gostaria que desse loop do primeiro arquivo .doc até o último, e no final ele informa que importou todos os dados, será que alguém pode me dar uma mão!?
    obrigado.


    Sub GetWordData()
    Dim appWord As Word.Application
    Dim doc As Word.Document
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    Dim strDocName As String
    Dim blnQuitWord As Boolean

    On Error GoTo ErrorHandling

    strDocName = "C:\DBPRACTICE\" & _
    InputBox("Enter the name of the Instructor Form " & _
    "you want to import:", "Import Form")


    Set appWord = GetObject(, "Word.Application")
    Set doc = appWord.Documents.Open(strDocName)

    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=C:\DBPRACTICE\" & _
    "DBPRACTICE.mdb;"
    rst.Open "Personal", cnn, _
    adOpenKeyset, adLockOptimistic

    With rst
    .AddNew
    !Surname = doc.FormFields("fldSurname").Result
    !GivenNames = doc.FormFields("fldGivenNames").Result
    !Address = doc.FormFields("fldAddress").Result
    !City = doc.FormFields("fldCity").Result
    !Phone = doc.FormFields("fldPhone").Result
    .Update
    .Close
    End With
    doc.Close
    If blnQuitWord Then appWord.Quit
    cnn.Close
    MsgBox "Contract Imported!"

    Cleanup:
    Set rst = Nothing
    Set cnn = Nothing
    Set doc = Nothing
    Set appWord = Nothing
    Exit Sub
    ErrorHandling:
    Select Case Err
    Case -2147022986, 429
    Set appWord = CreateObject("Word.Application")
    blnQuitWord = True
    Resume Next
    Case 5121, 5174
    MsgBox "You must select a valid Word document. " _
    & "No data imported.", vbOKOnly, _
    "Document Not Found"
    Case 5941
    MsgBox "The document you selected does not " _
    & "contain the required form fields. " _
    & "No data imported.", vbOKOnly, _
    "Fields Not Found"
    Case Else
    MsgBox Err & ": " & Err.Description
    End Select
    GoTo Cleanup
    End Sub

      Data/hora atual: 28/3/2024, 19:27