Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

inserire una riga vuota sopra o sotto un record

68 views
Skip to first unread message

mario rossi

unread,
Oct 5, 2022, 10:44:54 AM10/5/22
to
ho una tabella fatture e una tabella fatturevoci che contiene le righe della fattura in relazione uno a molti con la tabella fatture

per inserire una riga sopra una riga già esistente uso questo codice che non so se sia la soluzione migliore, voi cosa ne pensate? c'è un modo più semplice e immediato?

DoCmd.SetWarnings False
'disattivo gli avvisi

DoCmd.OpenQuery "VociToTemp", acViewNormal, acEdit
'accodo le voci nella tabella vocitemp

DoCmd.RunSQL ("DELETE FROM fatturevoci where idfattura=" & Forms![fattura]![ID] & " and id>=" & Forms![fattura]![Voci]![ID])
'cancello da quella riga in poi i record da fatturevoci

DoCmd.RunSQL ("INSERT INTO fatturevoci (idfattura) VALUES (" & Forms![fattura]![ID] & ")")
'inserisco la riga nuova in fatturevoci

Dim temp As Variant
temp = DMax("id", "fatturevoci", "idfattura=" & Forms![fattura]![ID])
prelevo l'id del record appena inserito per poi posizionarmi a quel record

DoCmd.OpenQuery "TempToVoci", acViewNormal, acEdit
'accordo le voci dalla tabella temp alla tabella fatturevoci

Me.Voci.Form.Requery
aggiorno la sottomaschera voci della maschera fattura

DoCmd.RunSQL ("DELETE FROM temp")
'svuoto la tabella vocitemp

Me.Voci.SetFocus
'do il focus alla sottomaschera voci

Me.Voci.Form.Recordset.FindFirst "id = " & temp
'mi posiziono sul record aggiunto

Me.Voci.Form.Controls("descrizione").SetFocus
'do il focus al campo descrizione della voce inserita

BFS

unread,
Oct 5, 2022, 12:36:51 PM10/5/22
to
Il 05/10/2022 16:44, mario rossi ha scritto:
> ho una tabella fatture e una tabella fatturevoci che contiene le righe della fattura in relazione uno a molti con la tabella fatture
>
> per inserire una riga sopra una riga già esistente uso questo codice che non so se sia la soluzione migliore, voi cosa ne pensate? c'è un modo più semplice e immediato?
>


personalmente ho un campo "numriga" in ogni riga fattura
valorizzato con 10,20,30...100,110 etc automaticamente.
maschera e stampa sono ordinati in base a quel valore

quindi per aggiungere una riga tra due, mi basta cambiare il valore di
numriga, dandogli un valore compreso tra la precedente e la successiva
e tutto si riordina.


BFS

RobertoA

unread,
Oct 5, 2022, 1:47:18 PM10/5/22
to
Pure io uso il campo specifico
E di 10 in 10 come te, guarda che caso

Ammammata

unread,
Oct 6, 2022, 2:43:47 AM10/6/22
to
Il /05 Oct 2022/, *RobertoA* ha scritto:

> Pure io uso il campo specifico
> E di 10 in 10 come te, guarda che caso
>

tutti ex programmatori basic? :)

--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-

BFS

unread,
Oct 6, 2022, 2:55:10 AM10/6/22
to
Il 06/10/2022 08:43, Ammammata ha scritto:
> Il /05 Oct 2022/, *RobertoA* ha scritto:
>
>> Pure io uso il campo specifico
>> E di 10 in 10 come te, guarda che caso
>>
>
> tutti ex programmatori basic? :)
>


mi sa di si

ci sarà un giorno dove anche le righe delle maschere di access saranno
spostabili/draggabili con un semplice trascinamento...ma non è questo il
giorno

BFS


mario rossi

unread,
Oct 9, 2022, 11:24:56 AM10/9/22
to
come fate a sapere il numero della riga precedente?
esempio la
riga 1 vale 10
riga 2 vale 20

avevo inserito in precedenza una riga sotto la riga 1 quindi avevo dato il valore 11 (immagino) la situazione è diventata
riga 1 vale 10
riga 2 vale 11
riga 3 vale 20


se ora voglio aggiungere un altra riga sotto la riga 1 che valore gli do? con la virgola?
inoltre come ottengo il valore della riga precedente o successiva in base all'esigenza di inserire la riga sopra o sotto?









BFS

unread,
Oct 10, 2022, 1:53:12 AM10/10/22
to
sarebbe meglio dare 15 al posto di 11
ad ogni modo era il concetto da seguire
puoi anche fare salti di 100 in cento
e prevedere un ricalcolo del progressivo righe dopo ogni inserimento

esempio
far diventare il tuo 10/11/20/30 in 10/20/30/40 dopo l'aggiunta
puoi anche evitare di far inserire il numero all'utente per rendere la
cosa trasparente...tipo mettere un pulsante "aggiungi riga qui" e da
codice calcolarti il numero riga da assegnare per farla cadere nel punto
scelto

BFS














Ammammata

unread,
Oct 10, 2022, 2:30:50 AM10/10/22
to
Il /09 Oct 2022/, *mario rossi* ha scritto:

> avevo inserito in precedenza una riga sotto la riga 1 quindi avevo
> dato il valore 11 (immagino) la situazione è diventata riga 1
> vale 10 riga 2 vale 11
> riga 3 vale 20
>

un vero programmatore basic non fa questi errori :)
la riga in mezzo la inserisce con il 15, se ne serve un'altra si prende
il 13 o il 17, insomma ci si garantisce la possibilità di infilarne
almeno un paio ancora dopo il primo

poi (in alcuni basic) arriva il RENUM, in altri si fa a mano

RobertoA

unread,
Oct 10, 2022, 4:43:48 AM10/10/22
to
Il 10/10/2022 08:30, Ammammata ha scritto:
> Il /09 Oct 2022/, *mario rossi* ha scritto:
>
>> avevo inserito in precedenza una riga sotto la riga 1 quindi avevo
>> dato il valore 11 (immagino) la situazione è diventata riga 1
>> vale 10 riga 2 vale 11
>> riga 3 vale 20
>>
>
> un vero programmatore basic non fa questi errori :)
> la riga in mezzo la inserisce con il 15, se ne serve un'altra si prende
> il 13 o il 17, insomma ci si garantisce la possibilità di infilarne
> almeno un paio ancora dopo il primo
>
> poi (in alcuni basic) arriva il RENUM, in altri si fa a mano
>

Il RENUM de che?
Mi sembrava stessimo parlando del contenuto di un campo sul db

Detto questo sarei curioso di sapere se voi usate numerare le righe di
codice, in manuale o in automatico
Personalmente si, sono solito farlo usando l'automatismo previsto su
MzTools, lo scopo e' vedere esattamente dove accadono eventuali errori
ed avere informazioni precise quando vengono registrati log vari

0 new messages