Pannello di Controllo Moderatore ]

[Risolto]Macro inserimento valori su campi formulario

Discussioni sulle caratteristiche di database

[Risolto]Macro inserimento valori su campi formulario

Messaggioda Zago_87 » venerdì 29 maggio 2020, 16:48

Buongiorno, sto modificando un database gestionale fatto per un amico anni fa, sono in difficoltà perché non ricordo molte cose che avevo appreso per fare quel progetto. Quindi chiedo per prima cosa se potete mettermi dei link riguardo la scrittura delle macro, ho già letto la guida SQL di HTML.it ma mi sembra che poi la sintassi cambi per Base, su wiki.openoffice ho navigato parecchio senza però capirci molto.

Fatta questa richiesta iniziale, il mio problema attuale è questo:

Ho due campi data, compilato il primo tramite form vorrei che il secondo fosse compilato in automatico sommando un certo numero di giorni alla prima data.
Ho già creato la macro e l'ho assegnata al momento il cui il cursore si sposta dalla prima data, ma ho questi problemi nella macro:
- riesco a leggere solo il campo ID, non quello data
- quando avrò capito come leggere il campo data correttamente non so come sommare un numero di giorni fisso a quel valore
- nella parte dove scrivo all'interno della tabella collegata al form il comando SQL funziona solo se non metto la condizione WHERE, che credo serva a identificare tramite ID la riga da aggiornare, e se metto una data fissa, non so come indicare correttamente la variabile impostata sopra.

Attualmente il file mi sovrascrive quindi la seconda data con il valore fisso su tutte le righe.

Allego il file, grazie per il supporto

Test.odb
(13.21 KiB) Scaricato 27 volte
Ultima modifica di Zago_87 il domenica 14 giugno 2020, 12:10, modificato 1 volta in totale.
LibreOffice 6.3.6
Windows 7 PRO
Avatar utente
Zago_87
 
Messaggi: 109
Iscritto il: giovedì 15 gennaio 2015, 0:53

Re: Macro inserimento valori su campi formulario

Messaggioda charlie » venerdì 29 maggio 2020, 19:41

Ciao, io per le macro sono un novellino e mi hai fatto sudare.
Recentemente ho tradotto in italiano il capitolo delle macro di Base Handbook, lo trovi qui: viewtopic.php?f=29&t=10531; ma non ho trovato lì le risposte da darti.
Cercando in rete e smanettando ho modificato la macro che allego e funziona.
  • Intanto diciamo che un campo Data, non è una data ma un oggetto :shock: , va letta la sua proprietà Date e poi per poterla inserire in una tabella bisogna trasformarla in stringa e formattarla come si deve.
  • Poi per far accettare WHERE all'istruzione SQL UPDATE bisogna destreggiarsi fra apici, doppi apici, & commerciali, ... una vera sudata.
  • La macro va in errore inserendo un nuovo record tramite il menu a tendina, perché uscendo dal campo il record non è ancora salvato. Ma credo che questo non sia un problema trattandosi di un database di prova.
Codice: Seleziona tutto   Espandi visualeStringi visuale
REM --------------------------------------------------------------------------------
REM Aggiorna il campo Prossima Data automaticamente
REM --------------------------------------------------------------------------------
Sub Form_CalcoloProssimaData
   Dim Form As Object, CMD, Statement
   Dim DataMan As Date, ID As String, Stringa As String, DataStringa As String, Data As Object
   Form = ThisComponent.DrawPage.Forms.GetByName("MainForm")
   ID = Form.GetByName("fmtID_Doc").CurrentValue
   'MsgBox ID
    Data = form.GetByName("datData_Doc").Date
   Stringa = ""+ Data.Year +"-"+ Data.Month +"-"+ Data.Day
    DataStringa = Format(Stringa, "YYYY-MM-DD") 
   'MsgBox DataStringa
   Statement = Form.ActiveConnection.CreateStatement()
   CMD = "UPDATE ""Tab_Doc"" SET ""ProssimaData_Doc"" = '" + DataStringa + "' WHERE ""ID_Doc"" = '" & ID &"'"
   Statement.ExecuteUpdate(CMD)
   Form.Reload
End Sub   
charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Macro inserimento valori su campi formulario

Messaggioda Zago_87 » venerdì 29 maggio 2020, 21:58

Intanto grazie 1000 Charlie, ho trovato poche richieste analoghe in rete e spesso c'erano soluzioni proposte senza la spiegazione di come ci fossero arrivati e non sono riuscito a farle funzionare, le tue dritte mi hanno fatto comprendere meglio il problema dalle basi.
Darò molto volentieri una occhiata alla tua traduzione! :bravo:

Per ora ho solo letto il codice e mi sembra chiara la procedura, il come poter lavorare sulle date da macro, domani lo inserisco nel DB originale e vedo che succede. Spero che si, il problema non si presenti nel DB vero e proprio :mrgreen:
LibreOffice 6.3.6
Windows 7 PRO
Avatar utente
Zago_87
 
Messaggi: 109
Iscritto il: giovedì 15 gennaio 2015, 0:53

Re: Macro inserimento valori su campi formulario

Messaggioda charlie » lunedì 1 giugno 2020, 14:23

charlie
macOS 10.12 Sierra: Open Office 4.1.7 - LibreOffice 6.2.8.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 6937
Iscritto il: mercoledì 19 dicembre 2012, 11:50


Torna a Base

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti