• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

CrzB

[AJUDA] listagem de registos

11 mensagens neste tópico

Boas.

Eu estou a desenvolver um projecto em vb6 e estou a trabalhar com base de dados acess 2003. A minha dúvida é como fazer as listagens. Eu tenho várias tabelas e tenho que fazer a listagem dessas tabelas mas para tal eu tenho que usar ou datagrid ou qualquer outro objecto que me permita listar vários registos em forma de "Tabela".

A minha dúvida está em como fazer essa listagem. Para cada tabela eu tenho vários registos mas vamos pegar, por exemplo, na tabela de participantes. Tenho 3000 registos e não quero fazer uma listagem desses 3000 registos onde tenho uma scrollbar horizontal. Quero sim criar uma espécie de páginas. O objectivo disto é eu mostrar, por exemplo, 50 registos de cada vez e ao carregar num botão para a frente quero que o programa mostre os próximos 50 registos. No caso de clicar no botão para trás retrocede-me 50 registos.

Eu tenho uma ideia de como fazer isto mas não consigo pôr em prática : Introduzir no objecto um registo de cada vez. Isto possibilitava-me ter uma variável para contar em que registo vou e a partir daí era so utilizar bem o movenext e moveprevious. Mas lá está, não sei como adiciono um registo a cada linha da tabela do datagrid por exemplo.

Se alguem me poder ajudar eu agradecia. Já tinha criado um tópico deste tipo há quase 1 mês ou até mais e ninguém me ajudou. Se alguem souber ou tiver alguma ideia, tudo é bem-vindo :thumbsup:

Cumprimentos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não vbtipo.

Esse código que me deste é em ASP. E não é muito bem isso que eu quero fazer porque eu nem sei á partida quantas páginas tenho. Claro que isso não é problema pois é fácil de se saber quantas preciso mas esse código não me ajuda muito :/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens algum campo que identifique o registo?

tipo, idcampo ou codcampo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

então se usas auto-increment, ou algo do genero, a maneira mais fácil é usares o BETWEEN, tipo:

"SELECT * FROM tabela WHERE campo BETWEEN x , y"

começas com x 0 e y 50, dps dependendo do botão que o user seleccionar adicionas 50 ou subtrais 50, depois é só criares regras tipo se x é 0 o botão de navegação para voltar a atrás fica enable = false ou algo do género

ajudou?

cumps 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

então se usas auto-increment, ou algo do genero, a maneira mais fácil é usares o BETWEEN, tipo:

"SELECT * FROM tabela WHERE campo BETWEEN x , y"

começas com x 0 e y 50, dps dependendo do botão que o user seleccionar adicionas 50 ou subtrais 50, depois é só criares regras tipo se x é 0 o botão de navegação para voltar a atrás fica enable = false ou algo do género

ajudou?

cumps 

Ajudou bastante. Só uma coisa: Esse campo é auto-increment mas não está certo, ou seja, há alguns que foram eliminados.

Ex: passa do código 50 para 52 percebes? Assim não mostra sempre 50 de cada vez

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim, ou mudas a maneira de adicionar registos (recomendado, pois autoincemente é manhoso)

ou fazes um dataset rows count

e listas na datagrid por index(0 a 50, 51 a 100 etc)

teste primeiro a 2º opção, para não alteras nada na BD, se não resultar usas a 1º, tens é de alterar os registos manualmente, e quando o user adicionar algum registo tens de fazer a verificação se existe algum id em falta se for true, ocupas esse numero e actualizas todos os id's dos registos seguintes, ou então (melhor opção) ao elminar, actualizas todos os id´s dos registos existentes

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hmm.. estou a ver.

não percebi foi muito bem a 2º opção. Podes dar um exemplo?

cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

agora para testares, alteras os ids na BD e mudas de autoincremnte para numerico

depois no botão para eliminar registos,gravas o id para elimanar numa variavel e depois fazes o codigo para elimniar, em seguida

metes algo assim

"SELECT * FROM tabela WHERE id < '" & variavel com id eliminado & "'"

... (resto das instruções de sql)

contador = dataset.tabela("tabela").rows.count

var = 0

do until var = contador

"UPDATE tabela SET id = '" & variavel com id eliminado &"'

variavel com id eliminado = variavel com id eliminado +1

loop

percebeste?

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Opa isso de eliminar não me serve para muito, por isso e que nao percebi lá muito bem :o

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora