[RISOLTO] Macro Ricerca data

Discussioni sulle caratteristiche di database
Rispondi
Avatar utente
LUGIUDANI
Messaggi: 400
Iscritto il: martedì 27 marzo 2012, 12:29

[RISOLTO] Macro Ricerca data

Messaggio da LUGIUDANI »

Salve a tutti!
Avrei bisogno di un'aiuto per questa seguente macro:

Sub RicercaData
dim combo
oForm = ThisComponent.DrawPage.Forms
dataf = oForm.GetByName("RicercaData")
combo=doppio(dataf.date)
oForm.Filter ="(""MOVIMENTO"".""DATA"" LIKE '"+datefield+"' )"
oForm.reload
End Sub

ho inserito in un formulario un campo data con calendario apribile dal quale vorrei fare la ricerca di un determinato record a seconda della data che seleziono dal calendario.

Inserendo la macro sopra mi dà errore al punto ' dataf = oForm.GetByName("RicercaData") '

"RicercaData" è la denominazione del campo dove viene effettuata la scelta della data.

Spero di essere stata chiara e di ricevere al più presto un vostro aiuto.
Ultima modifica di LUGIUDANI il giovedì 20 giugno 2013, 12:18, modificato 3 volte in totale.
Openoffice.org 3.2
codicem
Messaggi: 57
Iscritto il: venerdì 30 aprile 2010, 14:30

Re: Macro Ricerca data

Messaggio da codicem »

Ciao a quanto pare non hai messo il nome del formulario.

Sub RicercaData
dim combo
oForm = ThisComponent.DrawPage.Forms.(qui devi mettere il nome del formulario)
dataf = oForm.GetByName("RicercaData")
combo=doppio(dataf.date) ' qui eviterei di mettere doppio davanti a (dataf.date) perchè è una funzione che raddoppia gli apici
oForm.Filter ="(""MOVIMENTO"".""DATA"" LIKE '"+datefield+"' )"
oForm.reload
End Sub
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
Avatar utente
LUGIUDANI
Messaggi: 400
Iscritto il: martedì 27 marzo 2012, 12:29

Macro Ricerca data

Messaggio da LUGIUDANI »

Ho provato a fare la modifica ma adesso non mi legge il dato oForm.Filter ="(.....)"

Riepilogando io ho inserito nel formulario (denominato MOVIMENTO) un campo data apribile, la macro l'ho inserita nel tab Eventi - Testo modificato. E' corretto il passaggio oppure dovevo fare diversamente? Probabile che debba inserire una casella combinata vero? Ma allora se volessi fare tramite il campo data come dovrei modificare la macro?

Al momento la modifica apportata è questa:

Sub RicercaData
dim datafield
oForm = ThisComponent.DrawPage.Forms("MOVIMENTO")
dataf = oForm.GetByName("RicercaData")
datafield =(dataf.date)
oForm.Filter ="(""MOVIMENTO"".""DATA"" LIKE '"+datafield+"' )"
oForm.reload
End Sub
Openoffice.org 3.2
Avatar utente
LUGIUDANI
Messaggi: 400
Iscritto il: martedì 27 marzo 2012, 12:29

Re: Macro Ricerca data

Messaggio da LUGIUDANI »

Ecco qui un'altra modifica apportata e sembra funzionare ma poi dopo due cambi di data mi esce questa finestra di messaggio errore:
"Si è verificata un'eccezione Type:com.sun.star.container.NoSuchElementException Message:."
Chi mi sa dire cosa significa?

Sub RicercaData
dim combo
oForm = ThisComponent.DrawPage.Forms
combo = oForm.GetByName("RicercaData")
datafield = doppio(combo.date)
oForm.Filter ="(""MOVIMENTO"".""DATA"" LIKE '"+combobox+"' )"
oForm.reload
End Sub
Openoffice.org 3.2
codicem
Messaggi: 57
Iscritto il: venerdì 30 aprile 2010, 14:30

Re: Macro Ricerca data

Messaggio da codicem »

se metti file vediamo di capire meglio.
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
Avatar utente
LUGIUDANI
Messaggi: 400
Iscritto il: martedì 27 marzo 2012, 12:29

Macro Ricerca data

Messaggio da LUGIUDANI »

Ecco in allegato il file. Ho aggiunto un campo tabella dove vorrei vedere i risultati della ricerca.
Ricerca per data.odb
Openoffice.org 3.2
codicem
Messaggi: 57
Iscritto il: venerdì 30 aprile 2010, 14:30

Re: Macro Ricerca data

Messaggio da codicem »

Ok, sistemata la macro ed aggiunto anche il pulsante pulisci filtro.
Allegati
Ricerca per data.odb
(14.38 KiB) Scaricato 345 volte
OpenOffice 3.3 su Winxp / Libreoffice 3.3.2 su Mandriva 2010.2
Avatar utente
LUGIUDANI
Messaggi: 400
Iscritto il: martedì 27 marzo 2012, 12:29

Macro Ricerca data

Messaggio da LUGIUDANI »

C'è qualcosa che non va!
Ho scaricato il tuo allegato ma quando cerco di entrare nel formulario MOVIMENTO si chiude il database.
Openoffice.org 3.2
Avatar utente
LUGIUDANI
Messaggi: 400
Iscritto il: martedì 27 marzo 2012, 12:29

[RISOLTO] Macro Ricerca data

Messaggio da LUGIUDANI »

Sono riuscita a leggere la macro!
Fantastico... era proprio quello che cercavo! Funziona!!!!
:super:
Openoffice.org 3.2
Avatar utente
LUGIUDANI
Messaggi: 400
Iscritto il: martedì 27 marzo 2012, 12:29

Re: Macro Ricerca data

Messaggio da LUGIUDANI »

Ciao a tutti. Ho fatto un'altra macro per la ricerca data e la macro è la seguente:

Codice: Seleziona tutto

Sub FiltroData(oEv, NomeCtrl, NomeTabella, NomeCampo)
   dim DATVALUE as date
oForm = oEv.source.model.parent
   oControl = oForm.GetByName(NomeCtrl)
   DATVALUE = oControl.text 
   oForm.Filter = " ( """ & NomeTabella & """.""" & NomeCampo & """ = '{D'" & DATVALUE &"'}' )"
   oForm.Reload()
End Sub
Se controllo i risultati delle variabili, sono corrette... ma nella ricerca nel formulario non mi mostra il risultato alla scelta di una determinata data.
Dove stà l'errore?
Oltretutto mi viene fuori questo messaggio:
Syntax error, unexpected INTNUM, expecting ')' or OR

Qualcuno mi sa dire cosa significa?
Openoffice.org 3.2
Avatar utente
LUGIUDANI
Messaggi: 400
Iscritto il: martedì 27 marzo 2012, 12:29

Re: Macro Ricerca data

Messaggio da LUGIUDANI »

Ho corretto la macro e ora funziona... per chi fosse interessato:

Codice: Seleziona tutto

Sub FiltroData(oEv, NomeCtrl, NomeTabella, NomeCampo)
   oForm = oEv.source.model.parent
   oControl = oForm.GetByName(NomeCtrl)
   DATVALUE = oControl.date
   datafield = left(DATVALUE,4)&"-"&mid(DATVALUE,5,2)&"-"&right(DATVALUE,2)
   oForm.Filter = " ( """ & NomeTabella & """.""" & NomeCampo & """ = {D '"+datafield+"'})"
   oForm.Reload()
End Sub
Openoffice.org 3.2
Rispondi