Notifications
Clear all

Ajuda no cadastro

13 Posts
3 Usuários
0 Reactions
3,555 Visualizações
(@mylton)
Posts: 59
Trusted Member
Topic starter
 

Boa tarde
Estou no desenvolvimento de um aplicativo que consiste no registro de informações médicas.
Iniciei a criação de alguns forms que funcionariam juntos interligados.
Ao abrir o form autor vemos a esquerda alguns botoes com outros forms a serem abertos cado fossem evidenciados alterações dignas de registros.
O que desejo e não sei fazer seria:
Ao iniciarmos um cadastro novo no form principal (funciona sem problemas) se fossem necessário abriria o form ante braço, perna ... e registraria as informações. O que preciso e não sei é como juntar tudo num mesmo numero de registro de modo que salvasse, excluísse e modificasse todos como funciona no form principal.
Aceito ajuda e opiniões e propostas.
Obrigado
Link (tam 5 mega)
https://dl.dropboxusercontent.com/u/269 ... ricias.rar

 
Postado : 02/05/2013 2:39 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

mylton,

Boa Noite!

Há duas formas de fazer o que você quer: uma mais simples e uma mais complexa. A mais simples, porém não tão lógica do ponto de vista de programação e de criação de Banco de Dados, é você colocar, na aba Autor, todos os demais dados que você precisa salvar quando está cadastrando no userform frmCadastroAutor. Ou seja, toda vez que você buscar um cliente, virão todos os dados cadastrados.

A segunda, mais complexa e correta do ponto de vista lógico da programação e da criação de Bancos de Dados, seria você usar uma chave única para cada cliente armazenado na sua aba Autor (o que vi que já existe -Código) e utilizar essa mesma chave nas outras abas onde você pretende gravar cada uma das informações referentes as partes do corpo (perna, braço, etc...). Nesse caso, você terá um certo trabalho para reunir as informações de um mesmo cliente ou paciente cadastrado. Você poderá utilizar comandos SQL diretramente em sua planilha ou então, quando quiser buscar os dados de um cliente cadastrado, deverá informar em algum lugar do UserForm de pesquisa o código do cliente e fazer uma varredura, através de um comando FOR, em cada uma das outras abas onde existam dados do cliente sob aquele código selecionado na pesquisa, e mostrar.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 02/05/2013 4:33 pm
(@mylton)
Posts: 59
Trusted Member
Topic starter
 

Obrigado pela indicacao. Na primeira creio que chego la. Mas o que pensava e desejo seria a segunda forma mais complexa. Teria algum exemplo onde possa ver e tentar adaptar ao que planejo?

 
Postado : 02/05/2013 4:51 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Obrigado pela indicacao. Na primeira creio que chego la. Mas o que pensava e desejo seria a segunda forma mais complexa. Teria algum exemplo onde possa ver e tentar adaptar ao que planejo?

Você pode dar uma olhada neste :
Modelo de Aplicativo de Cadastro em VBA no Microsoft Excel

http://www.tomasvasquez.com.br/blog/mod ... soft-excel

No forum acima tem tambem varios outros modelos, é só fazer a pesquisa no mesmo e encontrara outros utilizando BD Acces e até para fins de Hospitalar tambem.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/05/2013 5:14 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

mylton,

Bom Dia!

Segue um pequeno exemplo.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 03/05/2013 6:50 am
(@mylton)
Posts: 59
Trusted Member
Topic starter
 

Obrigado pelo exemplo. Vou estudar e mais tarde posto a resposta.

 
Postado : 03/05/2013 7:22 am
(@mylton)
Posts: 59
Trusted Member
Topic starter
 

Boa tarde Wagner
Desculpe a demora na resposta, mas me enrolei um pouco.

Gostei muito da rotina de consulta que vc criou.
Abaixo a mesma.

Private Sub Cmb_Código_Change()
Dim UltimaLinha, i As Long
UltimaLinha = Sheets("Clientes").Cells(Cells.Rows.Count, 1).End(xlUp).Row
For i = 2 To UltimaLinha
If Val(Sheets("Clientes").Range("A" & i).Value) = Val(Frm_Consultar.Cmb_Código.Value) Then
Frm_Consultar.Txt_Nome.Text = Sheets("Clientes").Range("B" & i).Value
Frm_Consultar.Txt_Rua.Text = Sheets("Endereço").Range("B" & i).Value
Frm_Consultar.Txt_Número.Text = Sheets("Endereço").Range("C" & i).Value
Frm_Consultar.Txt_Cidade.Text = Sheets("Endereço").Range("D" & i).Value
Exit For
End If
Next
End Sub

Se fosse adaptar ela para a minha necessidade, poderia manter a formatação criada por mim?
Por região anatomica individualmente?
Ao final criaria uma com tudo junto, que seria a da consulta. Onde visualizaria tudo?
Seria isso?

Para cadastrar todos os form teriam que ser individuais com salvar, excluir etc.... próprios?

Para aprender:
("D" & i) o "i" seria para que?

Obrigado

 
Postado : 08/05/2013 10:57 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

mylton,

Boa Noite!

Vamos lá:

Se fosse adaptar ela para a minha necessidade, poderia manter a formatação criada por mim?
R Sim, você pode! Basta ter o cuidado com relação à questão da disposição dos dados na sua planilha, nomes dos controles, objetos e nomes das abas. Por Exemplo: ULtimalinha busca a última linha com dados pela coluna A e a partir da linha 2. As abas chamam-se Clientes e Endereço.
Por região anatomica individualmente?
R - Sim
Ao final criaria uma com tudo junto, que seria a da consulta. Onde visualizaria tudo?
Seria isso?
R - Sim. Basta uma única consulta, se você assim desejar!

Para cadastrar todos os form teriam que ser individuais com salvar, excluir etc.... próprios?
R - Não. Com um botão só para cada finalidade, você pode executar a finalidade (consultar, excluir, etc) em cada um dos formulários. Para isso, basta você fazer a referência completa ao objeto que existe num formulário qualquer. OU seja: nome_do_formulário.nome_do_objeto.nome_da_propriedade.
Para aprender:
("D" & i) o "i" seria para que?
R - o "i", nesse caso é apenas uma variável contadora que serve, dentro do laço FOR existente, para descobrir o que está dentro de cada uma das células (da primeira linha 2 até a última linha). Cada passagem do ponteiro pelo código ele vai "olhando" o que tem em cada uma das células da coluna A (no caso desse código) e compara com o valor selecionado no combo. Se for igual, leva o valor encontrado nas colunas apropriadas para os controles no formulário.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 08/05/2013 6:44 pm
(@mylton)
Posts: 59
Trusted Member
Topic starter
 

Boa tarde wagner
Tudo bem?
Espero que sim.
Ontem fiquei pensando.... Bom só ficou uma duvida de como fazer.
são varias as regiões anatômicas, onde cada uma terá um form próprio com código individual para cada um, e na sua rotina ela pegara os códigos e jogara no form da consulta.
Assim o João será ex cód. 1 e todos os dados dele sempre serão no código 1 certo?
Pois bem e os form que não forem utilizados no João não terão nenhuma informação.
Assim quando for examinar a Maria (código 2) talvez os form que não foram utilizados possam ser.
Assim estes da Maria seriam código 1 e nao 2.
Concorda?
Como resolver isso?

Pensei em duas formas.
Ter que abrir todos os form e digitar algo em todos. O que e extenso e não pratico.
Ou sei lá criar um forma de colocar todos os nomes de form em formato de checkbox e criar alguma rotina que ao clicar nos outros eles gerariam alguma informação automaticamente, do tipo sem alterações.
Só,nao sei como fazer isso...kkkkk

O que vc acha? Tem alguma sugestão?
Obrigado.

, as que não forem utilizadas

 
Postado : 09/05/2013 12:55 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

mylton,

Eu faria o seguinte (aliás, como é a recomendação padrão para criação de Bancos de Dados):
1 - Criaria, em cada uma das abas, um cadastro único. Isso quer dizer que cada paciente só deverá ter um único ID e esse ID deverá identificar todos os dados desse paciente em todas as abas.
2 - Digamos que você tem a primeira aba que se chama Dados_Pessoais, a segunda que se chama Tipos_de_Doença, a terceira que se chama Braço, a quarta que se chama Perna e assim por diante.
3 - Na primeira aba você teria (mais ou menos) as seguintes colunas: ID Paciente, Nome Paciente, Endereço, Telefone, Celular, Tipo Sanguíneo, Altura, Peso, etc
4 - Na segunda aba você teria ID Doença, Nome Doença, Data Início, Medicamento Indicado, Data da Cura, ID Paciente (note que é o mesmo nome da primeira aba), etc...
5 - Na terceira aba você teria Cor da pele, ID Doença (mesmo da segunda aba), Data Início, Data do Engessamento, Tipo de Fratura, ID Paciente (mesmo da primeira aba)
6 - E assim pelas demais abas... observando que sempre você deverá ter chaves primárias e estrangeiras, se quiser fazer relacionamentos entre suas diversas abas de modo a facilitar as futuras consultas que terá que fazer depois. Uma chave primária é aquela que identificará o paciente, por exemplo, em todas as abas. Uma chave estrangeira é uma chave primária de uma aba que é inserida em uma outra aba que já tem sua própria chave primária. Ou seja, na aba dela própria, ela é primária mas nas outra aba ela é estrangeira. Por exemplo: Na terceira aba, a chave ID Doença é uma chave estrangeira pois ela é a chave primária da segunda aba. Isso quer dizer que ao confeccionar a terceira aba, você não precisaria colocar nenhuma coluna que contivesse a descrição ou nome da doença. Basta colocar os mesmos ID' das doenças já cadastradas na segunda aba. Assim, quando fosse fazer uma consulta (e mostrar os resultados obviamente), bastaria fazer referência ao código ID Doença e mostra apenas O Nome Doença relacionado com esse ID Doença.

Bom... mas tudo isso é apenas para lhe explicar que se uma determinada aba (ou parte do corpo) não tiver informação nenhuma ou poucas informações sobre um determinado paciente, isso não quer dizer nada. Na consulta, ou você mostra todos os campos (que no caso vão existir campos vazios) ou mostra apenas os campos que quer mostrar (vazios ou não). Isso depende do que o que você pretende consultar e mostrar.

Não sei até onde vai seu conhecimento em ciração de bancos de dados (em gereciadores de bancos de dados ou em planilhas mesmo) e em programação. Todavia, caso não conheça bem, aconselho a você a pegar uma apostila na net bem básica sobre armazenamento de dados, disposição dos mesmos, relacionamento entre tabelas (ou abas), comandos da linguagem SQL, etc, etc, etc.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 09/05/2013 3:07 pm
(@mylton)
Posts: 59
Trusted Member
Topic starter
 

Ok. Irei fazer sua sugestao. A nivel de por exemplo no access vc cria as relacoes no gerenciador do bd d dados. No excel nao tenho ideia de como criar esse relacionamento.
Mas vou pesquisar.
Obrigado.

 
Postado : 09/05/2013 4:35 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Me referi a relacionamentos apenas para ilustrar, de modo análogo, a um sistema de gerenciamento de banco de dados. Como no Access por exemplo. Entretanto, no Excel não é possível fazer esse relacionamento como se faz no Access. No caso, o relacionamento a que me referi já é a própria indicação de chaves primárias e secundárias (mesmos nomes do cabeçalho das colunas das chaves) nas diversas abas. Esse já é o relacionamento, porque através dele você pode, no seu código VBA simples ou até mesmo com SQL dentro do VBA, se referir a essas chaves para procurar os valores que você quer.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 09/05/2013 5:27 pm
(@mylton)
Posts: 59
Trusted Member
Topic starter
 

Ok. Vou comecar entao.
Obrigado

 
Postado : 09/05/2013 7:27 pm