• 0
Sign in to follow this  
pkrx

Criar pasta ao cadastrar cliente VBA

Question

Pessoal, estou criando um projeto e travei no finalzinho.

 

Quero fazer duas funções.

A primeira é toda vez que o cliente se cadastrar no formulário normalmente, é criada uma pasta em um diretório que esta no disco C nomeada com o ID do cliente.

E depois eu tenho um botão no formulário de consultar clientes, que ele abre esse diretório que esta no disco C, mas não consigo puxar o ID do cliente para o final do diretório, para abrir a pasta do cliente quando ele for selecionado.

Capturar12.PNG

Share this post


Link to post
Share on other sites

22 answers to this question

Recommended Posts

  • 0

 

4 minutos atrás, Alyson Ronnan Martins disse:

VBA orginal ou esta usando o Excel (em VBA)

Estou usando em Access, porque vai ser uma ferramenta de um departamento, e precisa ter continuidade. Em php eu sei fazer, mas no access não consegui. nessa print não esta o botão de abrir a pasta, mas ele esta em Shell. Porem, usarei qualquer solução, desde que abra a pasta puxando o ID do Cliente selecionado, e crie essa pasta no cadastro dele. 

Edited by pkrx

Share this post


Link to post
Share on other sites
  • 0
2 minutos atrás, Alyson Ronnan Martins disse:

Tente usa o seguinte comnado:

MkDir (CurrentProject.Path & "\Seucliente")

MkDir (CurrentProject.Path & "\Seucliente")

Então, mas como eu coloco a variável ID do cliente ai no "Seucliente" ?

 

Share this post


Link to post
Share on other sites
  • 0

Para abrir a pasta eu estou usando:

Private Sub BtnAbrirPasta_Click()
   Call ShellExecute(0&, "open", CurrentProject.Path & "\Clientes\$Variavel?", "", "", 1)
End Sub

ai no $Variavel? eu preciso colocar a variável que vai puxar o id do cliente que esta selecionado no formulário. essa mesma deve ir ali no "Seucliente", se não, o valor sempre sera fixo, tanto na criação da pasta quanto depois pra abrir a mesma. nessa pasta serão guardadas prints com evidencias de cada cliente, por isso elas devem ser abertas individualmente.

4 minutos atrás, Alyson Ronnan Martins disse:

O ID esta dentro do seu formulário correto?

para pegar ele basta coloca (Nome do seu formulário) ! (Nome do campo aonde ID): Frm_Cadastro!ID.value nesse código.

o nome do formulário é 2x? Não seria primeiro o nome do banco de dados, depois o nome da coluna e ai o formulário?

Tbl_ClientesSorteados!ID:Frm_Cadastro!ID.value ?

E como eu chamo ele na linha de criar a pasta e abrir a pasta?

Capturar123.PNG

Edited by pkrx

Share this post


Link to post
Share on other sites
  • 0
4 minutos atrás, Alyson Ronnan Martins disse:

Qual o campo de seu "ID" dentro do Formulário?

O nome do Campo.

 

é ID mesmo.

Capturar1234.PNG

Edited by pkrx

Share this post


Link to post
Share on other sites
  • 0
9 minutos atrás, Alyson Ronnan Martins disse:

Considerando que as pastas de seus clientes estão Criadas dentro "C:/"

Shell "C:\WINDOWS\explorer.exe """ & "C:\" & Frm_Cadastro2!ID.value & "", vbNormalFocus

 

Deu o seguinte erro:

Capturar5.PNG

Capturar6.PNG

Share this post


Link to post
Share on other sites
  • 0

Você esta certo eu tentei fazer o que tinha escrito e realmente deu erro.

Dim Abrindo
Abrindo = Shell("C:\WINDOWS\explorer.exe C:\" & Form_Frm_Cadastro2.ID.Value & "\", vbMaximizedFocus)

para sanar a duvida de abrir a pasta eu fiz uma simulação aqui para ver se realmente estava abrindo e abriu corretamente (no meu teste)

Estou colocando em anexo o arquivo Access que fiz a simulação.
Obs.: Não coloquei o código de criar pasta e nem de verificar se a pasta existe.

Link google drive: https://drive.google.com/open?id=1zhmIMqtF4j9bR7PTDw712Sz60UZUjhKq

Edited by Alyson Ronnan Martins

Share this post


Link to post
Share on other sites
  • 0
24 minutos atrás, Alyson Ronnan Martins disse:

Você esta certo eu tentei fazer o que tinha escrito e realmente deu erro.

Dim Abrindo
Abrindo = Shell("C:\WINDOWS\explorer.exe C:\" & Form_Frm_Cadastro2.ID.Value & "\", vbMaximizedFocus)

para sanar a duvida de abrir a pasta eu fiz uma simulação aqui para ver se realmente estava abrindo e abriu corretamente (no meu teste)

Estou colocando em anexo o arquivo Access que fiz a simulação.
Obs.: Não coloquei o código de criar pasta e nem de verificar se a pasta existe.

Link google drive: https://drive.google.com/open?id=1zhmIMqtF4j9bR7PTDw712Sz60UZUjhKq

Cara funcionou muito bem, obrigado pela ajuda, você é 10.

 

Esse botao que você colocou ai pra criar, qual funcao caberia nele?

Algo assim? 

Private Sub Comando5_Click()
Dim Criando
Criando = MkDir(CurrentProject.Path & "C:\" & Form_Frm_Cadastro2.ID.Value & "")
End Sub

 

Share this post


Link to post
Share on other sites
  • 0
1 minuto atrás, pkrx disse:

Cara funcionou muito bem, obrigado pela ajuda, você é 10.

 

Esse botao que você colocou ai pra criar, qual funcao caberia nele?

Algo assim? 

Private Sub Comando5_Click()
Dim Criando
Criando = MkDir(CurrentProject.Path & "C:\" & Form_Frm_Cadastro2.ID.Value & "")
End Sub

 

Melhor maneira ficaria:

Dim LocalPasta  As String
LocalPasta = "C:\" & Form_Frm_Cadastro2.ID.Value
MkDir (LocalPasta)

 

Share this post


Link to post
Share on other sites
  • 0
16 minutos atrás, Alyson Ronnan Martins disse:

Melhor maneira ficaria:

Dim LocalPasta  As String
LocalPasta = "C:\" & Form_Frm_Cadastro2.ID.Value
MkDir (LocalPasta)

 

Muito bom, você manja muito de VBA, obrigado pela ajuda, foi de grande valia.

 

Vou tentar colocar essa função de criar a pasta em 2 momentos, o primeiro no botao de cadastro de cliente, que aparentemente é fácil, só colocar esse código que você escreveu no final do botão salvar, que seria o cadastrar, e a segunda função vai ser criar um botão que faça uma verificação no banco de dados e crie no diretório todas as pastas que ainda não existem la, e que tem o numero de ID no bd. Essa é mais difícil né?!

 

Ou eu posso resolver isso colocar essas duas funções no botão que vai abrir a pasta, primeira cria e depois abre.

Edited by pkrx

Share this post


Link to post
Share on other sites
  • 0
8 minutos atrás, Alyson Ronnan Martins disse:

Agora fiquei boiando na sua ultima informação.

Eu só juntei as duas informações no mesmo botão, primeiro ele cria a pasta ao clicar no botão e logo em seguida ele abre.

 

Muito bom cara, obrigado pela ajuda, você foi 10.

Share this post


Link to post
Share on other sites
  • 0

Fiz tudo em um botão só kkk acho que estou muito enferrujado kkkk
Olha ai:

Dim Programa As String
Dim LocalPasta  As String
Dim cmdShell As String
Dim Abrindo As String

Programa = "C:\WINDOWS\explorer.exe "
LocalPasta = "C:\" & Form_Frm_Cadastro2.ID.Value
cmdShell = Programa & LocalPasta & "\"

If Dir(LocalPasta, vbDirectory) = "" Then
MkDir (LocalPasta)
MsgBox "Pasta criada." & Chr(10) & _
       "Aperte no botão novamente.", vbInformation, "Aviso"
Else
Abrindo = Shell(cmdShell, vbMaximizedFocus)
End If

 

Você pode mudar o msgbox pelo comando "abrindo" para abrir direto sem exibir mensagem.

Você pode mudar o msgbox pelo comando "abrindo" para abrir direto sem exibir mensagem.

Share this post


Link to post
Share on other sites
  • 0
22 horas atrás, Alyson Ronnan Martins disse:

Fiz tudo em um botão só kkk acho que estou muito enferrujado kkkk
Olha ai:

Dim Programa As String
Dim LocalPasta  As String
Dim cmdShell As String
Dim Abrindo As String

Programa = "C:\WINDOWS\explorer.exe "
LocalPasta = "C:\" & Form_Frm_Cadastro2.ID.Value
cmdShell = Programa & LocalPasta & "\"

If Dir(LocalPasta, vbDirectory) = "" Then
MkDir (LocalPasta)
MsgBox "Pasta criada." & Chr(10) & _
       "Aperte no botão novamente.", vbInformation, "Aviso"
Else
Abrindo = Shell(cmdShell, vbMaximizedFocus)
End If

 

Você pode mudar o msgbox pelo comando "abrindo" para abrir direto sem exibir mensagem.

Você pode mudar o msgbox pelo comando "abrindo" para abrir direto sem exibir mensagem.

Usei aqui, funcionou também, valeu pela ajuda cara. você é 10!

Share this post


Link to post
Share on other sites
  • 0
Em 10/06/2018 at 00:13, Alyson Ronnan Martins disse:

Agora fiquei boiando na sua ultima informação.

Alyson, eu fiz o projeto com esses codigos que você me ajudou, mas quando eu salvo ele como ACCDE, os botoes param de funcionar.

Você sabe me explicar o motivo? Preciso que os usuários não consigam fazer edições.

Share this post


Link to post
Share on other sites
  • 0

 

Em 21/06/2018 at 10:49, Alyson Ronnan Martins disse:

Ele gera algum erro ou simplesmente para?

Se o código for executado em VBA para salvar da para marcar a linha no VBA em vermelho (f9).ai me fala o que aconteceu. 

ele simplesmente não abre a pasta, não acontece nada em especifico.

Share this post


Link to post
Share on other sites
  • 0

Eu não sei o que pode astar acontecendo. Mais já vi algo parecido em excel aonde ele apresenta um erro por alguns "dim" não estarem sendo declaradas.

Outra coisa que pode causar isso é segurança da rede, seu banco esta no pc ou na rede? Se estiver na rede coloca na sua maquina para ver se funciona. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this