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

 

  Em 10/06/2018 em 01:24, Alyson Ronnan Martins disse:

VBA orginal ou esta usando o Excel (em VBA)

Expand  

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

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.

  Em 10/06/2018 em 01:40, 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.

Expand  

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

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
  Em 10/06/2018 em 02:27, 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

Expand  

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
  Em 10/06/2018 em 02:52, 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

 

Expand  

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
  Em 10/06/2018 em 02:55, Alyson Ronnan Martins disse:

Melhor maneira ficaria:

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

 

Expand  

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

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
  Em 10/06/2018 em 03:24, 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.

Expand  

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 em 03:13, Alyson Ronnan Martins disse:

Agora fiquei boiando na sua ultima informação.

Expand  

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

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.

×
×
  • Criar Novo...