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


3 participantes

    [Resolvido]Copiar nome de ficheiro para tabela

    nioxys
    nioxys
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 68
    Registrado : 04/01/2012

    [Resolvido]Copiar nome de ficheiro para tabela Empty [Resolvido]Copiar nome de ficheiro para tabela

    Mensagem  nioxys 20/4/2012, 00:00

    Olá Smile

    Tenho uma BD com duas tabelas, Avarias e AnexoAvarias e um formulário, Avarias.
    Estou a tentar copiar o nome de um ficheiro para a tabela AnexoAvarias com o seguinte código


    Código:
    Private Sub Rótulo50_Click()

    Dim f    As Object
    Dim varFile As Variant
    Dim db As Database
    Dim tb As Recordset
    Dim name As String

    Set f = Application.FileDialog(3)

     f.AllowMultiSelect = True
     f.Filters.Clear
     f.Filters.Add "Ficheiros PDF", "*.pdf"
     f.Filters.Add "Ficheiros Excel", "*.xlsx"
     f.Filters.Add "Ficheiros Excel 2003", "*.xls"
     f.Filters.Add "Ficheiros Word", "*.docx"
     f.Filters.Add "Ficheiros Word 2003", "*.doc"
     f.Filters.Add "All Files", "*.*"
     
     Set db = CurrentDb
     Set tb = db.OpenRecordset("AnexosAvarias")
     
     If f.Show = True Then
     
            For Each varFile In f.SelectedItems
           
                name = Mid(varFile, 1 + InStrRev(varFile, "\"))
                FileCopy varFile, CurrentProject.Path & "\files\" & name
                tb.AddNew
                tb!Nome = name
                tb.Update
               
            Next
           
                tb.Close
                Set db = Nothing
    End If

    End Sub

    Consigo copiar o ficheiro par a respectiva pasta e o nome para a tabela no entanto esse nome/ficheiro não fica relaccionado com o registo que estou a trabalhar (existe uma relação 1 para muitos entre a tabela Avarias e AnexoAvarias) e também não consigo listar o ficheiro na Listbox do formulário.

    Alguém me pode ajudar?

    Em anexo coloquei a BD.
    Anexos
    [Resolvido]Copiar nome de ficheiro para tabela AttachmentBDFile.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (220 Kb) Baixado 12 vez(es)


    Última edição por nioxys em 2/5/2012, 23:03, editado 3 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Copiar nome de ficheiro para tabela Empty Re: [Resolvido]Copiar nome de ficheiro para tabela

    Mensagem  JPaulo 20/4/2012, 10:13

    Falta o ADD do numero do incidente, para se relacionarem;

    E tambem já abre o ficheiro com duplo click na listbox;

    http://dl.dropbox.com/u/771097/BDFile_OLD.rar

    Private Sub Rótulo50_Click()
    Dim f As Object
    Dim varFile As Variant
    Dim db As Database
    Dim tb As Recordset
    Dim name As String

    Set f = Application.FileDialog(3)

    f.AllowMultiSelect = True
    f.Filters.Clear
    f.Filters.Add "Ficheiros PDF", "*.pdf"
    f.Filters.Add "Ficheiros Excel", "*.xlsx"
    f.Filters.Add "Ficheiros Excel 2003", "*.xls"
    f.Filters.Add "Ficheiros Word", "*.docx"
    f.Filters.Add "Ficheiros Word 2003", "*.doc"
    f.Filters.Add "All Files", "*.*"

    Set db = CurrentDb
    Set tb = db.OpenRecordset("AnexosAvarias")

    If f.Show = True Then

    For Each varFile In f.SelectedItems

    name = Mid(varFile, 1 + InStrRev(varFile, "\"))
    FileCopy varFile, CurrentProject.Path & "\files\" & name
    tb.AddNew
    tb!Nome = name
    tb!Incidente = Me.Incidente.Value
    tb.Update

    Next

    tb.Close
    Set db = Nothing
    End If
    Me.Refresh
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Copiar nome de ficheiro para tabela Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Copiar nome de ficheiro para tabela Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Copiar nome de ficheiro para tabela Folder_announce_new Instruções SQL como utilizar...
    nioxys
    nioxys
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 68
    Registrado : 04/01/2012

    [Resolvido]Copiar nome de ficheiro para tabela Empty Re: [Resolvido]Copiar nome de ficheiro para tabela

    Mensagem  nioxys 20/4/2012, 14:05

    Olá,

    Pois faltava. Sad
    Eu reparei nisso mas estava a pensar de forma errada e por isso não experimentei.

    Em relação ao duplo click para abrir o ficheiro, estava mesmo a pensar nisso. Smile

    Muito obrigado. Smile
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Copiar nome de ficheiro para tabela Empty Re: [Resolvido]Copiar nome de ficheiro para tabela

    Mensagem  JPaulo 20/4/2012, 14:34

    Obrigado pelo retorno, o fórum agradece.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Copiar nome de ficheiro para tabela Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Copiar nome de ficheiro para tabela Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Copiar nome de ficheiro para tabela Folder_announce_new Instruções SQL como utilizar...
    nioxys
    nioxys
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 68
    Registrado : 04/01/2012

    [Resolvido]Copiar nome de ficheiro para tabela Empty Re: [Resolvido]Copiar nome de ficheiro para tabela

    Mensagem  nioxys 25/4/2012, 13:59

    Reabri o tópico porque ao utilizar a versão final do código aqui colocado o utilizador consegue inserir ficheiros com o mesmo nome e ao copiar o ficheiro o existente é substituído pelo novo. Eu queria impedir isso comparando o nome do ficheiro (guardado na variável "name") com os nomes guardados no campo "Nome" da tabela AnexosAvarias e para isso utilizei a função Dlookup, mas não estou a conseguir, dever faltar alguma (muita) coisa,

    Código:

    Private Sub btnInserir_Click()
    Dim f    As Object
    Dim varFile As Variant
    Dim db As Database
    Dim tb As Recordset
    Dim name As String

    Set f = Application.FileDialog(3)

            f.AllowMultiSelect = True
            f.Filters.Clear
            f.Filters.Add "Ficheiros PDF", "*.pdf"
            f.Filters.Add "Ficheiros Excel", "*.xlsx"
            f.Filters.Add "Ficheiros Excel 2003", "*.xls"
            f.Filters.Add "Ficheiros Word", "*.docx"
            f.Filters.Add "Ficheiros Word 2003", "*.doc"
            f.Filters.Add "All Files", "*.*"
     
     Set db = CurrentDb
     Set tb = db.OpenRecordset("AnexosAvarias")
     
     If f.Show = True Then
     
            For Each varFile In f.SelectedItems
           
                name = Mid(varFile, 1 + InStrRev(varFile, "\"))
               
                If (DLookup("[Nome]", "AnexosAvarias", "[Nome]=" & name & "")) <> Null Then
               
                MsgBox "Ficheiro já existente", vbExclamation
                           
                Else
               
                FileCopy varFile, CurrentProject.Path & "\files\" & name
                tb.AddNew
                tb!Nome = name
                tb!Incidente = Me.Incidente.Value
                tb.Update
               
                     
                End If
               
                  Next
           
                tb.Close
                Set db = Nothing
               
    End If
    Me.Refresh

    End Sub
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Copiar nome de ficheiro para tabela Empty Re: [Resolvido]Copiar nome de ficheiro para tabela

    Mensagem  Alexandre Neves 25/4/2012, 20:11

    Boa tarde, nioxys

    Será If DLookup("Nome", "AnexosAvarias", "Nome='" & name & "'") <> Null Then
    nioxys
    nioxys
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 68
    Registrado : 04/01/2012

    [Resolvido]Copiar nome de ficheiro para tabela Empty Re: [Resolvido]Copiar nome de ficheiro para tabela

    Mensagem  nioxys 25/4/2012, 20:33

    Olá Alexandre,

    Fiz as alterações mas não funciona na mesma.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Copiar nome de ficheiro para tabela Empty Re: [Resolvido]Copiar nome de ficheiro para tabela

    Mensagem  Alexandre Neves 25/4/2012, 22:38

    tente
    If DCount("*", "AnexosAvarias", "Nome='" & name & "'") >0 Then
    nioxys
    nioxys
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 68
    Registrado : 04/01/2012

    [Resolvido]Copiar nome de ficheiro para tabela Empty Re: [Resolvido]Copiar nome de ficheiro para tabela

    Mensagem  nioxys 28/4/2012, 21:48

    Olá,

    Só na próxima Segunda-Feira é que posso testar, depois digo o resultado.
    Obrigado.
    nioxys
    nioxys
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 68
    Registrado : 04/01/2012

    [Resolvido]Copiar nome de ficheiro para tabela Empty Re: [Resolvido]Copiar nome de ficheiro para tabela

    Mensagem  nioxys 2/5/2012, 20:16

    Olá,

    Já testei e está a funcionar. Muito obrigado.


    Última edição por nioxys em 2/5/2012, 23:02, editado 1 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Copiar nome de ficheiro para tabela Empty Re: [Resolvido]Copiar nome de ficheiro para tabela

    Mensagem  Alexandre Neves 2/5/2012, 22:01

    Boa noite, nioxys

    Dúvida nova deve ser colocada num novo tema

    Conteúdo patrocinado


    [Resolvido]Copiar nome de ficheiro para tabela Empty Re: [Resolvido]Copiar nome de ficheiro para tabela

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 3/5/2024, 01:51