COMO INSERIR DADOS EM ORDEM DEFINIDA PELO USUARIO?
Ola pessoal boa tarde. Estou desenvolvendo uma aplicação vb.net com OleDb
nessa aplicação o cliente precisa ajustar a inserção de clientes dele da forma que ele quiser manilupar.
exemplo: cadastrei 3 clientes
1- joao
2- pedro
3- josé
preciso cadastar um quarto cliente entre joao e pedro ou ainda um quinto cliente entre pedro e josé
alguém tem algum código exemplo pra eu poder me guiar ou ainda a lógica de como ficaria?
obrigado rapaziada :)
nessa aplicação o cliente precisa ajustar a inserção de clientes dele da forma que ele quiser manilupar.
exemplo: cadastrei 3 clientes
1- joao
2- pedro
3- josé
preciso cadastar um quarto cliente entre joao e pedro ou ainda um quinto cliente entre pedro e josé
alguém tem algum código exemplo pra eu poder me guiar ou ainda a lógica de como ficaria?
obrigado rapaziada :)
Amigo, como assim em ordem? Você cadastrou um cliente com o código
1- joao
2- pedro
3- josé
Mas que que ao inserir um novo cliente, esse [Ô]Novo Cliente[Ô], fique com o código 2? Tenta explicar melhor, ta meio confuso...
OBS: No meu ver, a ordem que é cadastrada no BD não interfere em nada, oque pode mudar é a ordem em que você mostra eles na tela (Relatório), sendo assim você pode ordenar por (A-Z), separar por grupos, e por aà vai, mas não entendi muito bem oque realmente quer fazer, se for possÃvel, mostra o código que você está tendo problemas para o pessoal analisar, até mais, abracos.
1- joao
2- pedro
3- josé
Mas que que ao inserir um novo cliente, esse [Ô]Novo Cliente[Ô], fique com o código 2? Tenta explicar melhor, ta meio confuso...
OBS: No meu ver, a ordem que é cadastrada no BD não interfere em nada, oque pode mudar é a ordem em que você mostra eles na tela (Relatório), sendo assim você pode ordenar por (A-Z), separar por grupos, e por aà vai, mas não entendi muito bem oque realmente quer fazer, se for possÃvel, mostra o código que você está tendo problemas para o pessoal analisar, até mais, abracos.
Cara, voce pode criar um coluna numerica na tabela de clientes para registrar a ordem.
TabCliente
Id Nome Ordem
1 joao 2
2 pedro 3
3 josé 1
Na hora de fazer a consulta, tu pode fazer assim:
Select * From TabCliente OrderBy Ordem
vai aparecer assim após essa sql:
Id Nome Ordem
3 josé 1
1 joão 2
2 pedro 3
Obs: No form de cadastro, tu pode criar um campo para registrar a ordem manualmente ou então voce pode se basear nos indices dos registros que estão na lista de clientes usando um datagridview por exemplo - Lembre-se que se um registro for inserido no meio, a ordem dos indices muda para todos os registros seguintes - para registrar a posicao de cada cliente.
TabCliente
Id Nome Ordem
1 joao 2
2 pedro 3
3 josé 1
Na hora de fazer a consulta, tu pode fazer assim:
Select * From TabCliente OrderBy Ordem
vai aparecer assim após essa sql:
Id Nome Ordem
3 josé 1
1 joão 2
2 pedro 3
Obs: No form de cadastro, tu pode criar um campo para registrar a ordem manualmente ou então voce pode se basear nos indices dos registros que estão na lista de clientes usando um datagridview por exemplo - Lembre-se que se um registro for inserido no meio, a ordem dos indices muda para todos os registros seguintes - para registrar a posicao de cada cliente.
Outra forma mais interessante é usar o Drag and Drop nos registros do DataGridView para deixar tudo na ordem que pretende. Depois que tiver tudo na ordem desejada, é só pegar os indices de cada registro e gravar no BD.
Salve, obrigado pelas respostas
vou ser mais claro
meu select ..
If cmbpesquisa.Text = [Ô][Ô] Then
Beep()
frmmsxboxPESQUISACLIENTE.ShowDialog()
Else
Dim conexao As New OleDbConnection
conexao.ConnectionString = [Ô]Provider=microsoft.ace.oledb.12.0; data source=[Ô] & Application.StartupPath & [Ô]\BDDPIL.accdb[Ô]
Dim sSQL As String = [Ô]Select NOME, TELEFONE, AREA, HORAINICIO, HORAFIM, DATAAGENDAMENTO, AGENDAMENTO, TECNICA From CLIENTES Where DATAAGENDAMENTO = [ô][Ô] & dtpesquisa.Text & [Ô][ô] and AGENDAMENTO = [ô][Ô] & cmbpesquisa.Text & [Ô][ô] or HORAINICIO =[ô][Ô] & dtpesquisar.Text & [Ô][ô] Order By[ô][Ô] & frmcadClientes.dtde.Text & [Ô][ô][Ô]
dsclientes = New DataSet()
daclientes = New OleDbDataAdapter(sSQL, conexao)
daclientes.Fill(dsclientes, [Ô]CLIENTES[Ô])
dtclientes = dsclientes.Tables([Ô]CLIENTES[Ô])
dgvClientes.DataSource = dtclientes
conexao.Close()
ConfigurarGrid()
ColoreGrid()
End If
com esse select eu busco informações do meu frmCadClientes por ordem de horario
porém só funciona nos 2 primeiros registros
1° paciente HORAINICIO = 09:00hrs
2° paciente HORAINICIO = 09:30hrs
3° paciente HORAINICIO = 09:15hrs
o terceiro de paciente as 09:15hrs teria que entrar no lugar do de 09:30hrs e o segundo paciente assumir o lugar do terceiro, ou seja não que os horarios dos pacientes mudariam, mas se der pra encaixar um paciente em um horario disponivél o programa conseguir fazer isso. Nos 2 primeiros registros ele faz, só não entendo o porque ele não continua com o orderby
sera que teria que fazer isso na minha função configurargrid pra entrar sempre no load do frm?
outro problema é saber quais horarios disponiveis tem para fazer os agendamentos
desculpem por tantas duvidas. obrigado pessoal
vou ser mais claro
meu select ..
If cmbpesquisa.Text = [Ô][Ô] Then
Beep()
frmmsxboxPESQUISACLIENTE.ShowDialog()
Else
Dim conexao As New OleDbConnection
conexao.ConnectionString = [Ô]Provider=microsoft.ace.oledb.12.0; data source=[Ô] & Application.StartupPath & [Ô]\BDDPIL.accdb[Ô]
Dim sSQL As String = [Ô]Select NOME, TELEFONE, AREA, HORAINICIO, HORAFIM, DATAAGENDAMENTO, AGENDAMENTO, TECNICA From CLIENTES Where DATAAGENDAMENTO = [ô][Ô] & dtpesquisa.Text & [Ô][ô] and AGENDAMENTO = [ô][Ô] & cmbpesquisa.Text & [Ô][ô] or HORAINICIO =[ô][Ô] & dtpesquisar.Text & [Ô][ô] Order By[ô][Ô] & frmcadClientes.dtde.Text & [Ô][ô][Ô]
dsclientes = New DataSet()
daclientes = New OleDbDataAdapter(sSQL, conexao)
daclientes.Fill(dsclientes, [Ô]CLIENTES[Ô])
dtclientes = dsclientes.Tables([Ô]CLIENTES[Ô])
dgvClientes.DataSource = dtclientes
conexao.Close()
ConfigurarGrid()
ColoreGrid()
End If
com esse select eu busco informações do meu frmCadClientes por ordem de horario
porém só funciona nos 2 primeiros registros
1° paciente HORAINICIO = 09:00hrs
2° paciente HORAINICIO = 09:30hrs
3° paciente HORAINICIO = 09:15hrs
o terceiro de paciente as 09:15hrs teria que entrar no lugar do de 09:30hrs e o segundo paciente assumir o lugar do terceiro, ou seja não que os horarios dos pacientes mudariam, mas se der pra encaixar um paciente em um horario disponivél o programa conseguir fazer isso. Nos 2 primeiros registros ele faz, só não entendo o porque ele não continua com o orderby
sera que teria que fazer isso na minha função configurargrid pra entrar sempre no load do frm?
outro problema é saber quais horarios disponiveis tem para fazer os agendamentos
desculpem por tantas duvidas. obrigado pessoal
Coloque o nome da coluna de ordenacao direto como coloquei no final da sql, assim:
Dim sSQL As String = [Ô]Select NOME, TELEFONE, AREA, HORAINICIO, HORAFIM, DATAAGENDAMENTO, AGENDAMENTO, TECNICA From CLIENTES Where DATAAGENDAMENTO = [ô][Ô] & dtpesquisa.Text & [Ô][ô] and AGENDAMENTO = [ô][Ô] & cmbpesquisa.Text & [Ô][ô] or HORAINICIO =[ô][Ô] & dtpesquisar.Text & [Ô][ô] Order By HORAINICIO[Ô]
Dim sSQL As String = [Ô]Select NOME, TELEFONE, AREA, HORAINICIO, HORAFIM, DATAAGENDAMENTO, AGENDAMENTO, TECNICA From CLIENTES Where DATAAGENDAMENTO = [ô][Ô] & dtpesquisa.Text & [Ô][ô] and AGENDAMENTO = [ô][Ô] & cmbpesquisa.Text & [Ô][ô] or HORAINICIO =[ô][Ô] & dtpesquisar.Text & [Ô][ô] Order By HORAINICIO[Ô]
obrigado amigo, o erro era em outro select
do preenchimento do meu gridview
sabe de alguma função que verifique horarios disponiveis?
penso que terei que criar uma tabela desses horarios e fazer um select
do preenchimento do meu gridview
sabe de alguma função que verifique horarios disponiveis?
penso que terei que criar uma tabela desses horarios e fazer um select
Os horarios disponiveis fazem parte de sua regra de negócio e isso ja era pra estar implicito em sua estrutura de banco de dados. Tendo a estrutura feita corretamente, é só fazer consultas necessárias.
Tópico encerrado , respostas não são mais permitidas