Ir para conteúdo
Fórum Script Brasil
  • 0

Criar pasta ao cadastrar cliente VBA


pkrx

Pergunta

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

Link para o comentário
Compartilhar em outros sites

22 respostass a esta questão

Posts Recomendados

  • 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. 

Editado por pkrx
Link para o comentário
Compartilhar em outros 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" ?

 

Link para o comentário
Compartilhar em outros 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

Editado por pkrx
Link para o comentário
Compartilhar em outros 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

Link para o comentário
Compartilhar em outros 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

Editado por Alyson Ronnan Martins
Link para o comentário
Compartilhar em outros 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

 

Link para o comentário
Compartilhar em outros 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)

 

Link para o comentário
Compartilhar em outros 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.

Editado por pkrx
Link para o comentário
Compartilhar em outros 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.

Link para o comentário
Compartilhar em outros 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.

Link para o comentário
Compartilhar em outros 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!

Link para o comentário
Compartilhar em outros 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.

Link para o comentário
Compartilhar em outros 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.

Link para o comentário
Compartilhar em outros 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. 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...