[Risolto]Duplicazione record in Base

Creare una macro - Scrivere uno script - Usare le API
Rispondi
gino62
Messaggi: 91
Iscritto il: giovedì 26 dicembre 2013, 18:39

[Risolto]Duplicazione record in Base

Messaggio da gino62 »

Buona domenica.
Aprendo il formulario FrmDuplica, scgliendo un cognome e premendo il tasto "duplica" vorrei venisse visualizzato sul formulario FrmModifica una copia dei dati del record scelto per poter effettuare delle modifiche e poi salvarlo come nuovo record. (ad esempio perche due fratelli hanno molti campi in comune.
Io non sono riuscito.
Allego file di prova (non riesco ad accedere al formulario FrmMofdifica per poi accedere agli elementi di controllo - non capisco dove sbaglio)
Grazie.
Buona giornata
Allegati
ProvaDuplica.odb
(191.66 KiB) Scaricato 124 volte
Ultima modifica di gino62 il mercoledì 7 maggio 2014, 21:28, modificato 2 volte in totale.
LibreOffice 3.5.4.2
Debian /.3 wheezy
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Duplicazione record

Messaggio da patel »

Vedo che molti tuoi post rimangono senza risposta, questa sezione viene utilizzata al 99 % per macro da utilizzare su Calc, quinti ti invito a postare nella sezione BASE anche richieste relative alle macro o quantomeno segnalare nel titolo [Base]
Ultima modifica di patel il domenica 4 maggio 2014, 18:49, modificato 2 volte in totale.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 9059
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Duplicazione record

Messaggio da charlie »

Ciao, dubito che in Base tu abbia più visibilità. In ogni caso ti raccomando di fare attenzione a non creare duplicati. Grazie.
charlie
macOS 15.5 Sequoia: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
vladboscaneanu
Volontario
Volontario
Messaggi: 380
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Duplicazione record in base

Messaggio da vladboscaneanu »

Ti occorre un altro form,dove dovresti riempire "manualmente" tutti i campi,caselle etc., con l'aiuto del Signore e di una macro ,come criterio avendo il cognome e l'ID del alunno .Una volta modificati i dati ,salvi tutto(tranne id ,che verrà assegnato automaticamente) con il comando InsertRow.
LibreOffice ultima versione su Windows 10
gino62
Messaggi: 91
Iscritto il: giovedì 26 dicembre 2013, 18:39

Re: Duplicazione record in base

Messaggio da gino62 »

vladbvladboscaneanuoscaneanu ha scritto:Ti occorre un altro form,dove dovresti riempire "manualmente" tutti i campi,caselle etc.....Una volta modificati i dati ,salvi tutto(tranne id ,che verrà assegnato automaticamente) con il comando InsertRow.
buona giornata.
Ciao vladboscaneanu, ho fatto come hai detto. Ho trovato alcuni problemi:
con Doc=ThisComponent mi dava errore con Doc.DrawpageForms
con Doc=StarDesktop.CurrentComponent devo provare da form e non in debug, non mi funzionava se non mettevo una attesa di qualche millesecondo.
A parte questo sono riuscito, il problema ora è che non so se devo usare su tutti i campi "commit" o se c'è un modo per far "sapere" che c'è scritto qualcosa sul form.
Nell'esempio ho usato commit in tutti i campi - ma quelli booleiani non hanno come proprietà commit. C'è una istruzione unica al postodi usare commit in tutti i campi?
Nei campi booleani cosa devo fare? Grazie
Allego file
Grazie e buona giornata
Allegati
prova2.odb
(231.97 KiB) Scaricato 154 volte
LibreOffice 3.5.4.2
Debian /.3 wheezy
vladboscaneanu
Volontario
Volontario
Messaggi: 380
Iscritto il: martedì 22 ottobre 2013, 1:35

Re: Duplicazione record in Base

Messaggio da vladboscaneanu »

'se non metto un tempo di attesa di 2 millisecondi l'istruzione oDoc.Drawpage.Forms dà errore
io ho cancellato proprio il comando Wait...funziona lo stesso,ho fatto due modifiche,tutto super,registrato.
C'e un po di disordine nella macro:si fa fatica a leggere e capire l'algoritmo,forse perché Io sono un novellino nella programmazione.Hai scritto tu il codice?
Il valore del campo boolean è quello dello record originale---se primo bimbo e disabile,allora ti torna nel Form che anche questo ha handicap...logicamente,perché stai COPIANDO e riportando qui i stessi valori,quindi e l'utente a decidere se anche questo è malato o no.
Il codice funziona,almeno sul mio computer.L'unica cosa e da ottimizzare un po il codice,da inserire qualche funzione in più,per non ripetere stesse righe.Ma
questo con il tempo.Complimenti,un bel lavoro!
Allegati
Cattura.PNG
LibreOffice ultima versione su Windows 10
gino62
Messaggi: 91
Iscritto il: giovedì 26 dicembre 2013, 18:39

Re: Duplicazione record in Base

Messaggio da gino62 »

ciao vladboscaneanu, ho provato a cancellare Wait ma mi dà errore. Per campi booleani non devo usare commit, mi si aggiornano automaticamente. Il codice non ho idea come otimizzarlo e automatizzarlo.
Buona serata e grazie.
LibreOffice 3.5.4.2
Debian /.3 wheezy
Rispondi