MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    Reconhecer a porta USB automaticamente

    Compartilhe

    Fernando Velho
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 22/10/2014

    Reconhecer a porta USB automaticamente

    Mensagem  Fernando Velho em Qua 22 Out 2014, 16:39

    Boa tarde,


    Galera, estou com um probleminha... Fiz uma planilha para um cliente, onde ele faz uns controles em R$ e o cadastro com imagens. As imagens e a planilha ficam no pendrive. Quando faço a procura da imagem fica assim:

    Código:
    Private Sub ComboBox2_Change()

    Sheets("Controles").Range("L2") = ComboBox2


    Dim Imagem
    Dim arq


        arq = "E:\Planilha\ESPONJAS.bmp"
        Set Image1.Picture = LoadPicture(arq) ' carrega a imagem
          Image1.PictureSizeMode = fmPictureSizeModeZoom
        
        Imagem = "E:\Planilha\" & Sheets("Controles").Range("L2") & ".bmp"

          If Dir(Imagem) <> "" Then ' verifica se o arquivo existe
          Set Image1.Picture = LoadPicture(Imagem) ' carrega a imagem
          Image1.PictureSizeMode = fmPictureSizeModeZoom
          
          
    End If
    End Sub

    O problema se encontra no caminho... Pois quando coloca o pendrive em outro pc ou outra porta ele reconhece outra unidade.


    Tem como criar um método para reconhecer automaticamente a porta?


    Atenciosamente.
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    Registrado : 29/06/2012

    Re: Reconhecer a porta USB automaticamente

    Mensagem  Noobezinho em Qua 22 Out 2014, 18:39

    Fernando

    O Access precisa sabe em que porta USB está espetado o Pendrive.

    Para isso, veja o código abaixo:

    Por primeiro, faça a referência ao Microsoft Scripting Runtime

    Código:


    Public Function DriveUSB() As String
    'Esta função retorna o drive que o pendrive está espetado

    Dim fso As New Scripting.FileSystemObject
    Dim mDrive As Drive

    On Error Resume Next

    For Each mDrive In fso.Drives
        If mDrive.DriveType = 1 And mDrive.DriveLetter <> "A" Then
          If mDrive.DriveType = 1 And mDrive.IsReady = True Then

              DriveUSB = mDrive & "\"
               
              Exit For
          End If
        End If
    Next
    Set fso = Nothing
    End Function

    Para usar:
    arq = DriveUSB & = "Planilha\ESPONJAS.bmp"

    Abraços

    Nb




    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Fernando Velho
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 22/10/2014

    Re: Reconhecer a porta USB automaticamente

    Mensagem  Fernando Velho em Qui 23 Out 2014, 00:39

    Boa noite Noobezinho, tudo bem?

    Criei a função tudo certinho, fiz a referencia também. Mas esta dando um erro, ainda diz que o caminho não foi localizado...

    Código:
    Public Function DriveUSB() As String
    'Esta função retorna o drive que o pendrive está espetado

    Dim fso As New Scripting.FileSystemObject
    Dim mDrive As drive

    On Error Resume Next

    For Each mDrive In fso.Drives
        If mDrive.DriveType = 1 And mDrive.DriveLetter <> "E" Then
           If mDrive.DriveType = 1 And mDrive.IsReady = True Then

               DriveUSB = mDrive & "\"
                
               Exit For
           End If
         End If
    Next
    Set fso = Nothing
    End Function

    Private Sub ComboBox2_Change()

    Sheets("Controles").Range("L2") = ComboBox2


    Dim Imagem
    Dim arq


        arq = mDriveUSB & "Jogo do Bicho\ESPONJAS.bmp"
        Set Image1.Picture = LoadPicture(arq) ' carrega a imagem
          Image1.PictureSizeMode = fmPictureSizeModeZoom
        
        Imagem = DriveUSB & "Jogo do Bicho\" & Sheets("Controles").Range("L2") & ".bmp"

          If Dir(Imagem) <> "" Then ' verifica se o arquivo existe
          Set Image1.Picture = LoadPicture(Imagem) ' carrega a imagem
          Image1.PictureSizeMode = fmPictureSizeModeZoom
          
          
    End If
    End Sub
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    Registrado : 29/06/2012

    Re: Reconhecer a porta USB automaticamente

    Mensagem  Noobezinho em Qui 23 Out 2014, 03:02

    Fernando

    Esta linha:

    If mDrive.DriveType = 1 And mDrive.DriveLetter <> "E" Then

    O drive tem que ser o "A" no lugar do "E" justamente para descartar esse drive, os demais drives, serão tratados
    pelo código.

    Sabe usar a Janela imediata do visual basic?

    Abra qualquer módulo, se a janela imediata não estiver a mostra, aperte Crtl+G

    copie e cole nessa janela:
    ? DriveUSB ' na linha embaixo deverá retornar a letra da USB onde está espetado o pendrive.

    Se estiver ok , teste a debaixo.

    ? DriveUSB & "Jogo do Bicho\" & Sheets("Controles").Range("L2") & ".bmp"

    e veja o resultado se está correto na linha de baixo.

    Acredito que o problema está nessa parte:

    & Sheets("Controles").Range("L2") &

    Talvez tenha que colocar aspas simples no lugar das aspas duplas
    ou ainda quebrar toda a linha e colocar no lugar das aspas duplas o chr(34)
    assim:

    Imagem = DriveUSB & "Jogo do Bicho\" &  "Sheets(" & chr(34) & "Controles" & chr(34) & ").Range(" & chr(34) & "L2" & chr(34) & ")"& ".bmp"

    Teste

    Nb


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Fernando Velho
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 22/10/2014

    Re: Reconhecer a porta USB automaticamente

    Mensagem  Fernando Velho em Qui 23 Out 2014, 23:43

    Boa noite, caraa consegui resolver meu problema de uma forma um pouco mais simples...

    "ThisWorkbook.Path"

    Código:


    Private Sub ComboBox2_Change()

        Sheets("Controles").Range("L2") = ComboBox2

        Dim Imagem
        Dim arq

        arq = ThisWorkbook.Path & "\ESPONJAS.bmp"
        Set Image1.Picture = LoadPicture(arq) ' carrega a imagem
        Image1.PictureSizeMode = fmPictureSizeModeZoom
        
        Imagem = ThisWorkbook.Path & "\Planilha\" & Sheets("Controles").Range("L2") & ".bmp"

        If Dir(Imagem) <> "" Then ' verifica se o arquivo existe
          Set Image1.Picture = LoadPicture(Imagem) ' carrega a imagem
          Image1.PictureSizeMode = fmPictureSizeModeZoom
        End If
        
    End Sub

    Obrigado pela atenção

    Abraço.
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    Registrado : 29/06/2012

    Re: Reconhecer a porta USB automaticamente

    Mensagem  Noobezinho em Sex 24 Out 2014, 01:33

    Claro, agora entendi

    Você estava procurando uma solução para o Excel num site sobre Access.

    Daí, não dava certo mesmo.

    Boa sorte

    Nb


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

      Data/hora atual: Ter 17 Out 2017, 19:55