HORARIO - BANCO DE DADOS
Bom Dia Turma !!
Entao estou com um pequeno problema, estou desenvolvendo um sistema para uma clinica,
estou com um problema na hora de marcar as consultas,
ex: marcar uma consulta de 13:15 as 14:15 no dia 25/05/2010
mas ja existe uma consulta cadastrada no banco de dados com os seguintes dados 13:30 as 14:30 no dia 25/05/2010
entao o sistema teria que informar que este horario nao esta disponivel.
alguem tem alguma ideia de com posso realizar este tipo de açao.
como faço para ele nao aceitar este problema
Desde ja agradeço a atençao de todos.
Entao estou com um pequeno problema, estou desenvolvendo um sistema para uma clinica,
estou com um problema na hora de marcar as consultas,
ex: marcar uma consulta de 13:15 as 14:15 no dia 25/05/2010
mas ja existe uma consulta cadastrada no banco de dados com os seguintes dados 13:30 as 14:30 no dia 25/05/2010
entao o sistema teria que informar que este horario nao esta disponivel.
alguem tem alguma ideia de com posso realizar este tipo de açao.
como faço para ele nao aceitar este problema
Desde ja agradeço a atençao de todos.
1. Qual é o banco de dados?
2. Qual é a estrutura da tabela (campos e tipos de dados respectivamente)?
2. Qual é a estrutura da tabela (campos e tipos de dados respectivamente)?
Bom Dia Tecla !!
Entao, o banco de dados e access 2003 - os campos estao no formato de data/hora (Hora abreviada)
Ex.
cliente / data-consulta / horario-inicio / horario-fim
Entao, o banco de dados e access 2003 - os campos estao no formato de data/hora (Hora abreviada)
Ex.
cliente / data-consulta / horario-inicio / horario-fim
Veja se isso te ajuda:
SELECT *
FROM tbAgenda
WHERE [data-consulta] = #05/01/2010#
AND [horario-inicio] = #15:00#
Tecla, entao este codigo eu ja tentei...
e porque pensa o seguinte.
eu vou cadastrar um horario que seja das 15:30 as 16:30. mas no banco pode possuir um que seja das 15:45 as 16:45, entao fazendo este codigo ele nao iria funcionar. pois os horarios sao diferentes, mas o periodo de tempo entra em conflito com o outro horario registrado.
desde ja agradeço a atençao
e porque pensa o seguinte.
eu vou cadastrar um horario que seja das 15:30 as 16:30. mas no banco pode possuir um que seja das 15:45 as 16:45, entao fazendo este codigo ele nao iria funcionar. pois os horarios sao diferentes, mas o periodo de tempo entra em conflito com o outro horario registrado.
desde ja agradeço a atençao
Me ajudem !!!
Cara, eu já fiz um sistema de clÃnica, eu tinha os horários cadastrados numa tabela tipo:
HORARIO
CODIGO HORA
1 13:00
2 13:30
3 14:00
e depois tinha a tabela consulta
CONSULTA
CODIGO | COD_HORA | COD_CLIENTE
1 3 5
e na tela de marcar os horários pra consulta, e trazia todas as horas cadastradas em uma grid
dando um select na tabela consulta para pintar de outra cor a célula em que a hora já estava marcada,
assim um horário disponÃvel ficava em verde e um marcado, em vermelho e ja dava pra saber só de quais os horários,
fica como se fosse uma agenda mesmo. Na hora de marcar o horário dava dois cliques na na céclula onde a hora estava livre
e ja mandava pra outra tela para poder informar o cliente.
HORARIO
CODIGO HORA
1 13:00
2 13:30
3 14:00
e depois tinha a tabela consulta
CONSULTA
CODIGO | COD_HORA | COD_CLIENTE
1 3 5
e na tela de marcar os horários pra consulta, e trazia todas as horas cadastradas em uma grid
dando um select na tabela consulta para pintar de outra cor a célula em que a hora já estava marcada,
assim um horário disponÃvel ficava em verde e um marcado, em vermelho e ja dava pra saber só de quais os horários,
fica como se fosse uma agenda mesmo. Na hora de marcar o horário dava dois cliques na na céclula onde a hora estava livre
e ja mandava pra outra tela para poder informar o cliente.
Celso pelo que vi o problema está na estrutura, pois o que você tem que marcar é o horário de entrada e não o perÃdo. Geralmente as clÃnicas tem um tempo de consulta que pode variar, ex:15, 20, 30 min ou 1 hora (dentárias geralmente). Assim você não marca a hora de entrada e saÃda, mas somente de entrada, e com o tempo definido de consulta, o próximo é outra hora de entrada.
Na sua estrurua, você tem que avaliar o mádico que atenderá, pois pode ter vários profissionais e não poderia deixar isso fora da marcação, pois poderá ter vários clientes com o mesmo horário de consulta, mas com médicos diferentes.
Assim se tiver uma tabela tipo:
Consultas
ID
IDMédico
IDPaciente
Data
HorárioInicio
Situação(Realizada, Cancelada, etc...)
Ficaria mais sÃmples, pois ao tentar outra marcação poderia checar médido + Data + horário e saber se já existe marcação.
Na sua estrurua, você tem que avaliar o mádico que atenderá, pois pode ter vários profissionais e não poderia deixar isso fora da marcação, pois poderá ter vários clientes com o mesmo horário de consulta, mas com médicos diferentes.
Assim se tiver uma tabela tipo:
Consultas
ID
IDMédico
IDPaciente
Data
HorárioInicio
Situação(Realizada, Cancelada, etc...)
Ficaria mais sÃmples, pois ao tentar outra marcação poderia checar médido + Data + horário e saber se já existe marcação.
Citação::
Tecla, entao este codigo eu ja tentei...
e porque pensa o seguinte.
eu vou cadastrar um horario que seja das 15:30 as 16:30. mas no banco pode possuir um que seja das 15:45 as 16:45, entao fazendo este codigo ele nao iria funcionar.
OK, então explique a regra para a situação acima.
O próximo horário seria após as 16:30?
colega basa fazer duas consultas dentro de um intervalo de horas
como fazer a verificação
vc tem uma data/hora inicial e uma data/hora fina/, supondo que vc possua um campo text de nome Data, e outros dois Horaini e hora fim
então
como fazer a verificação
vc tem uma data/hora inicial e uma data/hora fina/, supondo que vc possua um campo text de nome Data, e outros dois Horaini e hora fim
então
SQL = SQL & [Ô]SELECT * FROM tabela WHERE [Ô]
SQL = SQL & [Ô](horaini > [Ô] & txtHoraini & [Ô] and horaini < [Ô]& txtHoraFim & [Ô]) or [Ô]
SQL = SQL & [Ô](horafim > [Ô] & txtHorafim & [Ô] and horafim < [Ô] & txthoraFim & [Ô]) and data = [ô][Ô] & txtdata & [Ô][ô][Ô]
Set RS = CNN.Execute(SQL)
If (RS.EOF = True And RS.BOF = True) Then
msgbox [Ô]pode gravar[Ô]
Else
msgbox [Ô]não pode gravar já tem horário[Ô]
End If
Tópico encerrado , respostas não são mais permitidas