Newsgroup: it.comp.appl.access
Titolo: Tabelle e VBA

Un problema per me irrisolvibile:
come modifico l'ordine FISICO dei records di una tabella usando VBA?
Non parlo quindi di creazione di indici o riordinamenti temporanei, ma di un
vero e proprio cambiamento fisico di posizione delle righe. Ad esempio data
una tabella con i campi A,B,C,D,E, come faccio a farla riordinare rispetto a
B,C (come banalmente si fa, ad esempio, in Excel).
A parte il fatto che non riesco a farlo nemmeno intervenendo direttamente
sulla tabella (sono incapace completo io o è effettivamente difficile in
Access?), a me interessa poterlo fare con Visual Basic.
Grazie
Giovanni

 ha scritto nel messaggio
news:9cu8un$bnk$1...@fe1.cs.interbusiness.it...

Premesso che non mi sono mai posto il problema (anche perché non mi sembra
un problema... :-)), mi spieghi a che ti serve?
--
Silvio
il sito comune di it.comp.appl.access:
http://www.sitocomune.com

 un problema... :-)), mi spieghi a che ti serve?
Provo a spiegare il problema:
ho una tabella con i seguenti campi:
1. chiave primaria contatore
2. Codice utente (intero numerico da 1 a 500, tanti sono gli utenti)
3. Numero progressivo che definisce il contatto n-simo con il singolo utente
4. Data del contatto (formato data __/__/__)
5. Descrizione del contatto con l'utente (campo memo)
La tabella funziona così: parlo al telefono per la terza volta con l'utente
pippo, il cui codice utente è 123, in data 10 marzo 2001.
Infilo in un nuovo record nel campo 2 il numero 123, nel campo 3 il numero
progressivo del contatto con quell'utente, cioè 3, quindi metto la data nel
campo 4 e cosa ci siamo detti nel campo 5.
Dunque la tabella ha lo forma:
690    123    3        10/03/01    Tanti saluti...
691    190    12      10/03/01    Oggi siamo...
692    123    4        11/03/01    Ancora saluti da...
Rappresento i dati di questa tabella in una banale struttura composta da una
maschera contenente una sottomaschera così fatte:
nella maschera stanno i dati di una singolo utente: nome, città, ecc. ecc.,
nella sottomaschera si possono scorrere SOLO i contatti relativi a
quell'utente, con relativa data, numero progressivo e descrizione.
Naturalmente i dati degli utenti sono contenuti in una tabella utenti che è
in relazione uno-a-molti con la tabella dei contatti.
Il problema è il seguente: per quale oscuro motivo i contatti con un utente,
nella sottomaschera, non compaiono in ordine progressivo? Per certi tutto
funziona, per altri il secondo contatto viene prima del primo, che viene
dopo il quarto ecc. ecc. Non  capisco perché, visto che i contatti vengono
inseriti uno dopo l'altro, per cui ad ogni contatto viene assegnata una
chiave contatore progressiva, e non ci sono senz'altro errori di
inserimento. Se poi provo a ordinare la tabella rispetto al campo "codice
utente", in alcuni casi mi si presenta la situazione:
671    123    2        09/03/01        Vorrei consegnare...
692    123    4        11/03/01        Ancora saluti da...
660    123    1        08/03/01        Ci vediamo...
690    123    3        10/03/01        Tanti saluti...
Anziché la situazione
660    123    1        08/03/01        Ci vediamo...
671    123    2        09/03/01        Vorrei consegnare...
690    123    3        10/03/01        Tanti saluti...
692    123    4        11/03/01        Ancora saluti da...
Come dovrebbe essere.
Quando questo si verifica nella tabella, per quell'utente, nella
sottomaschera accadono i casini di cui sopra. Per gli utenti in cui i
contatti compaiono ben ordinati nella tabella, non si sono problemi. Solo
che le modalità di inserimento sono le stesse per tutti. La tabella non è
indicizzata in nessun campo, se non per la chiave primaria.
Da cosa cavolo può dipendere? Ecco perché volevo un sistema per ripristinare
l'ordine ottimale ogni volta che venivano inseriti nuovi dati.
Non so se mi sono spiegato, comunque se qualcuno ha avuto voglia di leggere
è già qualcosa.
Saluti e grazie

 ha scritto nel messaggio
news:EyXI6.3977$024....@news2.tin.it...

Creati una query basata sulla tabella che è origine record della
sottomaschera. Ordina la query in modo crescente per il campo numero
progressivo.
Ora usa come origine record della sottomaschera la query anziché la tabella.
Se nei vari tentativi avessi impostato per la sottomaschera la proprietà
"Ordina per", eliminala.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:mxZI6.20529$UW4.1...@news.infostrada.it...
