Collegamento ipertestuale in base

In libreoffice base in una tabella subordinata ho creato un campo SCHEDA che contiene il collegamento ad un file di testo. NEL formulario ho introdotto il formulario principale "PIANTE"ed il secondario associato “PIANTE_SCHEDA” contenente il campo “SCHEDA” con il percorso del file di testo. Ho creato un pulsante che per ogni record si collega al file di testo corrispondente. Ho associato al pulsante questa macro:
Sub ApriScheda
Dim oForm As Object
Dim oSubForm As Object
Dim sFilePath As String

oForm = ThisComponent.Drawpage.Forms.getByName("PIANTE")
oSubForm = oForm.getByName("PIANTE_SCHEDA")

' Ottenere il percorso del file dal record corrente

sFilePath = oSubForm.getByName(“SCHEDA”).Text

If sFilePath <> "" Then
    ' Apri il file
    Shell("cmd /c start " & sFilePath, 0)
End If

End Sub
Ma il risultato alla riga 13 è questo
Errore di runtime BASIC.
Proprietà o metodo non trovato: Text.

Ciao, è difficile dare aiuto senza avere il file database.

Ciao,
premetto che sto usando libreoffice base vers. 6.0.7.3.
Ti invio il DB semplificato che contiene la tabella con pochi records e con il campo SCHEDA con il testo del collegamento.
Ho modificato la macro che ora non dà errore ma non esegue il collegamento.
SCHEDE.odb (13.9 KB)

Ciao, credo tu debba modificare con:
sFilePath = oForm.getByName("MainForm_Grid_SCHEDE").getByName("SCHEDA").getCurrentValue()

(io non riesco a provarlo perché successivamente mi dà “file non trovato” alla riga * Shell("cmd /c start " & sFilePath, 0)* ; deve essere un comando Windows e io lavoro su Mac)

Comunque, mettendo subito dopo una riga provvisoria di controllo
print sFilePath
si rileva che il percorso del file viene letto, quindi quanto sopra è corretto. Funziona anche con .Text al posto di .getCurrentValue()

Purtroppo il pulsante non esegue nessuna azione.
Avevo provato a scrivere in propietà pulsante Generale - "Apri documento/pagina Web e nel campo URL ho indicato la directory che contiene tutti i file scheda odt. In questo caso il pulsante funziona e mi dirige nella Dir. Penso che pur, utilizzando un passaggio in più perchè devo aprire il file manualmente, non perderò ancora tempo e ricorrerò a questa soluzione. Grazie per l’aiuto!

Se vuoi provare questo file funziona, ma devi cambiare i link della tabella con quelli dei tuoi file da aprire.
ApriFILE.odb (13.5 KB)

Purtroppo non funziona. Credo che rinuncerò perchè vado a tentoni non conoscendo bene nè i comandi basic nè la gestione delle macro.Non esegue nessuna azione. Forse dipende dal link al percorso. Tu stai lavorando in MAC.Io in ubuntu -Libreoffice.
Ti invio il tuo db con le modifiche fatte da me. Ho alcune domande. Va bene aver indicato nelle proprietà del pulsante in URL il percorso di uno qualunque dei file da collegare?

Nella macro va bene lasciare un generico “txtLink”?.I file da linkare posso stare in qualsiasi dir vero?

Ultima prova e dopo abbandono i tentativi. Ti ringrazio in anticipo per la pazienza

ApriFILE.odb (13.4 KB)

Ciao, rispondo alle domande:

  • Nelle proprietà del pulsante va indicato in Operazione: apri documento/pagina web. l’indirizzo URL lo mette la macro al primo utilizzo.
  • txtLink non è un termine generico, è il nome della casella che contiene il link

  • Sono sicuro che il problema è come indicare correttamente il percorso in ambiente Linux. Dovrebbe cominciare anche quello con la parola “file:”. Prova a fare delle ricerche.

Grazie mille! Ti farò sapere

Ciao Ti aggiorno un attimo.Ho avuto un colpo di fortuna perchè cercando in Inglese ho trovato a questo link

https://ask.libreoffice.org/t/link-to-external-files-from-base/22667
un odb che mi pare stia funzionando. ovviamente ho cambiato i percorsi. Si chiama GetExternal.odb.
Grazie