il pulsante di cui parli tu è una piccola grande impresa per chi non si sa muovere in VB.
Il tutto funziona così:
Il pulsante deve avviare una procedura che ha al suo interno diverse funzioni.. Focalizziamo i punti.
1) Dovresti richiamare la finestra "Apri file" classica di win (e questo codice ce l'hai già)
2)prenderne il risultato e, in caso di un risultato non nullo, avviare la funzione di scrittura sulla tabella
3)copiare quindi (magari ti interessa solo copiare la locazione del file e non il file intero, dipende da te) il file nella cartella immagini del db
4)scriverne il percorso sulla tabella
Per fare tutto ciò ti servirebbe un minimo di dimestichezza nella connessione ad un db tramite l'oggetto ActivexDataObject e quindi nell'utilizzo dei Recordset...
Spiegartelo significherebbe bloccarmi al pc per un ora ed in questo momento non posso. Cmq ti do una mano:
Supponendo che la maschera si basi sulla tabella che ha come campo "path", cioè il percorso dell'immagine, devi creare una funzione privata che riceva come dato la path che hai tirato fuori tramite un'altra funzione che ti spiegherò la prox volta.
Private Function writeToTable (ByRef pathToWrite As String)
'se pathToWrite non è nullo
if (isEmpty(pathToWrite)=false) Or Not pathToWrite="" then
'apro il recordset, nello specifico una nuova riga
' ed inserisco nel campo path il contenuto di pathToWrite
Dim objRS
Set objRS=Me.Recordset '(in taluni casi è meglio scrivere
'il nome della maschera completo: [form_Maschera xyz].Recordset
objRS.AddNew
objRS("path")=pathToWrite 'scrivo nel campo path
objRS.Update
Set objRS=Nothing
'se, come in questo caso, la maschera xyz è stata costruita su
'questa tabella allora aggiorno i dati
Me.Requery 'meglio [form_Maschera xyz].Requery
'vado all'ultimo record immesso
DoCmd.GoToRecord acDataForm, "Maschera xyz", acLast
'ora puoi aggiornare i controlli col nuovo valore immesso nel campo path
else
MsgBox "Percorso del file immagine non valido"
end if
End Function
Praticamente questa funzione la dovrai chiamare dopo che l'utente sceglie il file tramite la finestra di dialogo "Apri file" (codice che hai già) e, nel richiamarla, dovrai passarle il percorso ricavato dal risultato della finestra, cioè
Dim risFinestra As String
risFinestra=cmdlg_file
writeToTable risFinestra
Non ho controllato bene il codice che hai tu ma credo sia corretto.
Alla prossima

