Pagina 1 di 1
[Risolto] Macro già pronte per base
Inviato: domenica 19 aprile 2015, 15:52
da steaz
Ciao ragazzi,
chiedo se per cortesia, qualcuno mi può dare indicazioni, perchè sto cercando una macro per:
aprire un formulario filtrato in base all'ID (record) selezionato in un altro formulario, per es:
sono in un formulario in cui sto scorrendo l'elenco tabella delle fatture emesse, clicco a fianco un bottone e relativamente al record corrente mi si apre la scheda (formulario) completa.
Grazie

Re: Macro già pronte per base
Inviato: lunedì 20 aprile 2015, 16:41
da Mizio1961
Ciao
La macro che segue dovrebbe fare al caso tuo, ovviamente va adattata
Codice: Seleziona tutto
private sub F_CnTe_Persone(oEvent) ' ByMizio - F_CntTes: PERSONE
dim sNameDB, sNameFm, NBFATT as string
dim oForm as object
'---------------------------------------------'
sNameFm = "F_AnaPer" ' MASCHERA DA APRIRE (Il nome del tuo formulario contenente la singola fattura)
sNameDB = thisComponent.title ' NOME FILE BASE SU CUI SI OPERA
sNameDB = MID$(sNameDB,1,instr(sNameDB, ":")-1)
NBFATT = oEvent.Source.Model.Parent.getByName("NBFATT ").text ' ACQUISISCI IL TUO NUMERO DI FATTURA (NBFATT E' FITTIZIO, DEVI METTERE IL NOME DEL TUO CAMPO TABELLARE)
oForm = FormOpenDB(sNameDB, sNameFm) ' APRI FORMULARIO IN DB
oForm.filter = "T_ANAPER.AZIENDA = '" & NBFATT & "'" ' FILTRO PER NUMERO FATTURA DA PERSONALIZZARE CON TUO NOME_TABELLA.NOMECAMPO = NUMFATTURA
oForm.reload '
end sub '
Prova

Re: Macro già pronte per base
Inviato: lunedì 20 aprile 2015, 17:31
da steaz
Grazie Mizio, provo subito
Re: Macro già pronte per base
Inviato: lunedì 20 aprile 2015, 17:56
da steaz
Sto sbagliando qualcosa
Codice: Seleziona tutto
private sub apriformcorrisp(oEvent) ' ByMizio - F_CntTes: PERSONE
dim sNameDB, sNameFm, NBFATT as string
dim oForm as object
'---------------------------------------------'
sNameFm = "Pannello eventi" ' maschera che si deve aprire
sNameDB = gesmenu ' file odb su cui sto lavorando
sNameDB = MID$(sNameDB,1,instr(sNameDB, ":")-1)
NBFATT = oEvent.Source.Model.Parent.getByName("tabella").text ' QUI NON HO CAPITO COSA METTERCI e ci ho messo il nome della tabella
oForm = FormOpenDB(sNameDB, sNameFm) ' APRI FORMULARIO IN DB
oForm.filter = "id_nominativo = '" & NBFATT & "'" ' nome del campo di riferimento per individuare la 'Fattura' da vedere
oForm.reload '
end sub
restituisce il seguente errore:
Errore di runtime basic
Proprietà o metono non trovati.text
Re: Macro già pronte per base
Inviato: lunedì 20 aprile 2015, 18:32
da steaz
ho risolto in questo modo:
prima faccio una macro per la selezione in base all' ID
Codice: Seleziona tutto
Option Explicit
Global id_nominativo As Integer
Sub FormularioEvento(Event As Object)
Dim oForm As Object
oForm = Event.Source.Model.Parent
If oForm.IsNew Or oForm.IsAfterLast Then Exit Sub
id_nominativo = oForm.Columns.GetByName("id_nominativo").GetInt
With ThisDatabaseDocument.FormDocuments.GetByName("Pannello eventi")
.Close
.Open
End With
End Sub
Poi all'apertura del formulario con dentro il dettaglio che cerco, imposto questa macro che filtra in base all'ID che avevo selezionato e funziona bene.
Codice: Seleziona tutto
Sub FiltraEvento(Event As Object)
Dim oForm As Object
oForm = Event.Source
oForm.ApplyFilter=True
oForm.Filter="""id_nominativo""=" & id_nominativo
oForm.Reload
End Sub
Re: Macro già pronte per base
Inviato: martedì 21 aprile 2015, 10:33
da Mizio1961

Comunque sNameDB = "gesmenu" (Mancavano le doppie virgolette)
Ciao
Re: Macro già pronte per base
Inviato: martedì 21 aprile 2015, 12:50
da steaz
Auch!!! non ci avevo fatto caso!
Grazie, provo la macro.