Access + Sql = Solucao Visual

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

Zergar
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 08 Ago 2009 15:29
Localização: Comodoro

Access + Sql = Solucao Visual

Mensagem por Zergar »

Bem, antes que mutos aqui me xinguem ou falem de minha mae (Dona Rita Procopio), vou tentar me explicar:

Sei que o mair problema em uma migracao para um banco de dados SQL e com toda a certeza o dominio desse dialeto, pois esta muto distante do que aprendemos no dia a dia de manipulacao de dados em Xbase, a ideia que me veio a cabeca esse final de semana seria uma ajuda para de forma Visual criar as instrucoes em SQL para serem usadas em nossos sistemas, aprendendo esse dialeto como contra partida.

Bem estou postando aqui porque atualmente estou em fase de aprendizado, tenho alguns sistemas desenvolvidos em access (Postos de Combustiveis, Farmacia, Supermercado e etc), so que preciso padronizar o desenvolvimento juntamente com meu irmao (Jef2_timber), ele sim um expert em Fivewin x Xharbour e usuario assidudo desse forum e do forum Five WIn BRasil, lendo, relendo e relembrando (Ja desenvolvi em clipper a muito tempo atraz), senti que apesar de terem as ferramentas para acessarem dados em servidores Mydql, um dos grandes problemas seria realmente utilizar a linguagem SQL para fazer esse acesso, com a experiencia que tenho atualmente em Access gostaria de dar algumas dicas, que se for de utilidade ficaria feliz, se nao ficaria feliz do mesmo jeito pois Lincoln (eu) tentei ser util :D.

Vamos dar o exemplo de um caso simples, desenvolvi um relatorio em meu sistema para ajudar no controle de pacientes odontologicos do consultorio da minha Dignissima, tenho uma tabela em Mysql chamada Agendamento onde periodicamente lanco os dados refernte a agendamentos realizados pelos clientes da mesma, nessa tabela estao armazenados:

paciente -> Codigo do Paciente Processado/Agendado?Reagendado
Tipo -> Tipo de Procedimento, Manutencao Ortodontica, Clinica ou Reagendamento
DataProcedimento -> Data do Procedimento
DataReagendamento -> Data do Reagendamento se para proximo Procedimento
Posicao -> Posicao do procedimento, Pagou ou nao pagou
Historico -> Historico do Procedimento

Bem fora essa tabela tambem tenho a tabela de cadastro de pacientes, onde tenho os dados relativos a esse paciente bem como um codigo univoco para relacionar com a minha tabela agendamentos, precisei de um relatorio para a seguinte situacao, verificar quais os pacientes nao estao agendados, ou se estao qual o ultimo agendamento realizado para o mesmo, ate porque paciente fora do consultorio e prejuizo na certa, antes que comecem a me xingar vou dar o exemplo em Access:

Imagem

Bem explicando essa consulta, uma consulta visual onde relacionei o codigo do cliente ao codigo do paciente na tabela agendamento com os campos Paciente, Cliente (nome do cliente), Fone (Teledone do cliente) e utilizei a opcao agrupar com os parametros menor que data() (todos as datas menor que a data atual do sistema) ou Is Null (Campo nulo) na opcao total do campo DataReagendamento utilizei a funcao Max (Pega o maior valor do campo), com isso me retornara os dados dos pacientes agendados com o ultimo dia em que foi reagendado/agendado podendo cobrar isso da secretaria da dignissima e consequente ganhar mais dim dim :D porque pacientes sempre tem que estar Agendados, na opcao classificacao do campo cliente poderia colocar crescente, mas optei em fazer isso no relatorio.

O Resultado disso e a seguinte tela:

Imagem

Note que a consulta me retornou todos os pacientes agendados com a data do ultimo reagendamento sendo esse menor que a data do sistema.

Ok Ok, voces deve estar me perguntando o que voces tem haver com isso, vamos la, notem na imagem que temos uma opcao em Access para exibir essa contulta em SQL, pode ser acessada e no menu EXIBIR depois , MODO SQL como mostrado na figura abaixo:

Imagem

Bem o resultado disso sera a instrucao em sql como se segue abaixo:

Imagem

SELECT agendamentos.Paciente, [clientes fisico].CLIENTE, [clientes fisico].FONE, Max(agendamentos.DataReagendamento) AS DataReagendamento
FROM [clientes fisico] INNER JOIN agendamentos ON [clientes fisico].CODIGO = agendamentos.Paciente
GROUP BY agendamentos.Paciente, [clientes fisico].CLIENTE, [clientes fisico].FONE
HAVING (((Max(agendamentos.DataReagendamento))<Date() Or (Max(agendamentos.DataReagendamento)) Is Null))
ORDER BY [clientes fisico].CLIENTE;

Pronto tudo que voce precisa esta bem ai em cima, so copiar e colocar, lembrando que posso usar como parametros minhas variaveis, meus campos e etc, facilitando em muito a vida de quem ainda nao domina as regras e sintaxes de SQL, entao voce gera suas consultas de modo VISUAL sem a nacessidade de saber NADA de SQL.

Vale lembrar que o Access acessa via ODBC tabelas em todos os bancos de dados hoje em dia, DBF, MYSQL, Oracle, DBA e etc, voce pode utilizar a mesma ideia com seu construtor visual de Relatorio.

Bem o intuido foi somente ajudar se alguem gostou da dica posta ai :D

Abracos

Lincoln Wallace Procopio
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Access + Sql = Solucao Visual

Mensagem por alxsts »

Saudações a todos!

Seja bem-vindo Lincoln!

Fique tranquilo, ninguem vai xingá-lo por expor suas idéias e opiniões. Um fórum existe para isso, desde que sejam respeitadas as regras por ele estabelecidas, coisa que voce fez.

Acho o MS-Access muito legal para quem está iniciando em SQL. Esse recurso que voce tão bem demonstrou, que é a interface gráfica, ajuda muito na hora de construir as consultas. O problema é que o MS-Access tem limitações que impedem o seu uso para armazenagem de grandes (pense muito grandes) volumes de dados. Assim, o desenvolvedor ou DBA é obrigado a conhecer SQL se quiser cumprir suas tarefas, tendo de construir, alem das queryes mais simples, stored procedures, triggers, functions e packages que às vezes chegam a ter milhares de linhas. Nessa hora, não existe o recurso gráfico... Por isso, quando uso MS-Access, gosto muito da opção que existe nele: Exibir / Modo SQL... Lá podemos escrever SQL.
[]´s
Alexandre Santos (AlxSts)
Zergar
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 08 Ago 2009 15:29
Localização: Comodoro

Re: Access + Sql = Solucao Visual

Mensagem por Zergar »

A sim, tem as suas Limitacoes, por isso estou caminhando e aprendendendo Xharbour + Five, o Access para construir consultas de forma visual e uma mao na roda.

Gostaria de agradecer o conteudo do forum, de muita qualidade e informacoes vasta que com certeza esta me ajudando muito a trilher esse novo caminho.


Obrigado.

Lincoln Wallace Procopio
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Access + Sql = Solucao Visual

Mensagem por rochinha »

Amiguinho,

No tempo que meu sistema estava em DOS eu possuia dentro dele um módulo de geraçao de QUERIES muito bom, cheguei até a adapatar alguns comandos extras como inclusão de registros, desvio de impressão para HTML e XML.

Ele abria várias caixas e nelas eu fazia as escolhas do formato da QUERIE.

Na primeira selecionava quais campos da tabela eu queria ver;
Na segunda quais campos fariam parte da instrução INDEX;
Na terceira eu selecionava quais campos fariam parte da instrução WHERE;

A lista era preenchida e apresentada num TBrowse e a partir dai eu poderia imprimir ou enviar para arquivo.

Velhos tempos, mas hoje em meu aplicativo 4Win tenho módulos que fazem a mesma coisa mas não com o mesmo glamour.

Neste forum esta uma rotina que apresentei para facilitar a feitura de filtragens e consequentemente a visualização em browses de conjuntos de dados de forma rápida.

Se for o caso de voce estar aprendendo ou migrando conhecimento para xBase é melhor que tenhas as ferramentas já ña mão, visto que não adianta ir para guerra com fuzil e esperar no campo pelo avião que lhe trará a munição.

Este tópico esta em viewtopic.php?f=1&t=3690&p=14297&hilit=selector#p14297

Hoje uso em muitos dos meus relatórios e com um pouco de adaptação voce poderá criar algo interativo e multi-tabelas para que o usuário possa definir sozinho a saida do relatório.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder