BUSCA DINAMICA NA TABELA

NILTON.VIANNA 31/12/2011 15:50:41
#392208
Bom dia amigos
Alguem poderia me ajudar,
pois bem tenho uma tabela com 25.000 registros
ex: PacienteID , MedicoID, Nome, etc...

tenho na mesma tabale ums 10.000 com MedicoID [Ô]01[Ô] , 5.000 com MedicoID [Ô]02[Ô]

na hora da pesquisa estou fazendo assim e funciona normal

rsPaciente.Open [Ô]SELECT * FROM Cad_Paciente WHERE Nome LIKE [ô][Ô] & txtPes.Text & [Ô]%[ô] AND MedicoID LIKE [ô]%[Ô] & LBMedicoID.Caption & [Ô]%[ô]ORDER BY Nome[Ô], CnSql, adOpenKeyset, adLockOptimistic

[ô] aqui que estou apanhando

na hora de add um novo
ProximoNro [Ô]Cad_Paciente[Ô], [Ô]PacienteID[Ô]

teria que pegar o ultimo do MedicoID [Ô]01[Ô]

obs. estou usando o FIRE, e minha tabela nao tem chave primária pois os PacienteID tem repitidos

Grato





OMAR2011 31/12/2011 16:11:01
#392209
Acredito que tem tabela de Médicos.Assim registra apenas o código do médico.

Dim rs As Recordset
Dim SQL As String

SQL = [Ô]SELECT MAX(CodMedico) as MaxMe From tblMedico[Ô]
Set rs = db.Execute(SQL)
If Not IsNull(rs!MaxMe) Then
frmCadpaciente.txtcodMedico = Val(rs!MaxMe + 1)
End If

NILTON.VIANNA 31/12/2011 16:29:07
#392210
a tabela Cad_Medico é sim
teria que ser mais menos assim

Public Sub Procura()
On Error GoTo TrataErro
Consulta ([Ô]select * from Cad_Paciente where MedicoID=[ô][Ô] & Trim(lblMedicoID) & [Ô][ô][Ô])
TrataErro:
End Sub
Private Sub Consulta(Sql1 As String)
Set RS = New Recordset
RS.CursorLocation = adUseClient
RS.Open Sql1, CnSql, adOpenForwardOnly, adLockReadOnly
End Sub

???
OMAR2011 31/12/2011 18:39:55
#392215
Estou lendo agora e tentado enteder.Mas com disse que sua tabela não tem indice nem chave primária resta uma solução,
fazer consulta GROUP BY e apresentar num listview ou datagrid.25000 registros,refina o que mais puder.
NILTON.VIANNA 31/12/2011 19:26:11
#392216
Como são mais de um existe duplicação de registros
Ex:

Prontuario: Medico: Nome
01 1 Pedro
02 1 Marcos
02 2 Julio
01 2 Maria
----------------------------------

no caso se for Add um novo Medico seria o 3 dai começa 1, 2,3,4 ....

é isso
NILTON.VIANNA 01/01/2012 20:55:42
#392227
o jeito é criar varias tabelas ???
OMAR2011 02/01/2012 09:54:27
#392247
Deste jeito, tem que ter no mínimo treis tabelas.
TblPaciente,TblProntuario,TblMedico.

Todas tem que ter chave primária.
Nilton,não pode ter dois médicos com o mesmo código.
Prontuario: Medico: Nome
01 1 Pedro
02 1 Marcos
NILTON.VIANNA 02/01/2012 10:11:24
#392250
OK Osmar o medico so tem um codigo
o que repete é os pacientes

Ex: com esta

isso na tabela Paciente

Prontuario: Medico: Nome
01 1 Pedro
01 1 Marcos
02 2 Maria
01 2 Fabio

Ok, Obrigado
OMAR2011 02/01/2012 12:12:21
#392264
[txt-color=#0000f0]TblMedico
IdMedi,Nome,Data..........................etc[/txt-color]

[txt-color=#e80000]TblPaciente
IdPaci,Nome,Data..........................etc[/txt-color]

[txt-color=#007100]TblProntuario
IdPront,CodPront,IdPaci,IdMedi..........................etc[/txt-color]

Desse jeito você repete quantas vezes quiser o CodPront,com IdMedi.
Tópico encerrado , respostas não são mais permitidas