Caricare file in un campo

Buona giornata,
ho un esigenza tempo fa ci ero riuscito adesso non mi viene più.

devo scegliere un file e devo inserirlo in un campo per creare una lista di file per ritrovarli facilmente.

avevo usato una macro in un pulsante e un campo scelta file, il pulsante mi prendeva l’indirizzo del campo “scelta file” e me lo caricava in un campo " file".
Mi fate un esempio, non mi riesce più

grazie

Ciao, non ti sei spiegato molto …
Ho intuito che potrebbe servirti qualcosa del genere.

Se la mia riposta ti ha aiutato, votala con :heavy_check_mark: (qui a sinistra)

ApriPDF.odb

EDIT: prova questa macro.

Sub CaricaFile
    Dim oForm As Object
	Dim sFile As String
	oForm=thisComponent.drawpage.forms.getByName("MainForm")
	sFile= oForm.getByName("Scelta file 1").text
	oStatement = oForm.ActiveConnection.createStatement()
	sSQL= "INSERT INTO ""Documenti""(""File"") VALUES ('" & sFile & " ') "
	oStatement.executeUpdate(sSQL)
	oForm.Reload
End Sub

CaricaFile.odb

EDIT 2: Nuovo file

CaricaFile_2.odb

EDIT 3: Nuovo database

Nuovo database2_2.odb

Ok Charlie, funziona era proprio quello che volevo, ma se la maschera è una sottomaschera non funziona, come faccio a indirizzare i comandi alla sottomaschera? faccio un esempio e lo allego nella domanda principale.

grazie

Dovrebbe essere sufficiente modificare il codice di accesso:

oForm=thisComponent.drawpage.forms.getByName("MainForm").getByName("SubForm")

Ho provato ma niente, hai visto l’esempio?

Poiché il SubForm è in relazione con il MainForm tramite Idcantiere, è necessario rilevarlo e scriverlo nella tabella assieme al File:

 Sub CaricaFile
    	Dim oForm As Object
    	Dim sFile As String
    	Dim iID As Integer
        oForm=thisComponent.drawpage.forms.getByName("MainForm").getByName("SubForm")' accede al sub formulario
    	iID = CINT(oForm.getByName("SubForm_Grid").getByName("Idcantiere").text) 'legge l'ID cantiere attuale
    	print iID
    	sFile= oForm.getByName("Scelta file 1").text' legge il contenuto del campo di ricerca File
    	print sFile
    	oStatement = oForm.ActiveConnection.createStatement()' Crea istruzione da eseguire
    	sSQL= "INSERT INTO ""Documenti""(""Idcantiere"",""File"") VALUES ('" & iID & " ','" & sFile & " ') "' scrive iID e sFile nella colonna File della tabella Documenti
    	oStatement.executeUpdate(sSQL)' Esegue l'struzione SQL
    	oForm.Reload
    End Sub

Charlie scusa, mi viene da ridere, ma non ci riesco proprio. Sbaglio qualcosa io, se a te ha funzionato su l’esempio che ti ho inviato, sono io che faccio qualche errore.

Devi stare più attento alle maiuscole/minuscole. Nel tuo db hai usato IDCantiere al posto di Idcantiere e file invece di File. Comunque ho allegato un nuovo esempio che comprende queste modifiche.

Scusa forse non ho capito, mi hai allegato un db funzionante, ma all’apertura del formulario mi da errore
Non è stato possibile aprire il documento “Cantiere”.
SfxBaseModel::loadFromStorage: 0xf26

Era funzionante, ma ora mi dà lo stesso problema che hai tu. Mi era già capitato modificando il tuo primo file allegato, per questo l’avevo rifatto da zero.
Ho verificato in rete che si tratta di un bug, ma non ho capito a che cosa è dovuto.
Adopera il mio secondo database CaricaFile_2.odb che continua a funzionare benissimo.

[C:\fakepath\WhatsApp Image 2020-12-21 at 10.11.54.jpeg] questo è l’errore che mi esce

(/upfiles/16085436041799147.jpeg)Non è quello che volevo fare, ti allego una prova spero di essere più chiaro.
grazie

Prova a carica file.odb

Questo un db di prova con una sottomaschera
Nuovo database2.odb

Vedi risposta modificata.

Niente non funziona allego nella risposta di prima l’errore

no no funziona solo che l’indirizzo è troppo lungo
prenderebbe solo indirizzi brevi

ok modificata la lunghezza ammissibile del campo.