Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

memorizzare percorso file

374 views
Skip to first unread message

rasjudah

unread,
Apr 11, 2011, 5:34:38 AM4/11/11
to
Ciao
sto facendo un database che, in breve, tramite una maschera assegna un
numero progressivo (numero di pratica) e fa impostare alcuni paramtri
tramite combobox. Ora io vorrei allegare dei filea queste pratiche,
file che possono essere anche diversi, documenti, immagini. La nuova
funzione di access 2007/2010 è interessante perchè mi allega
diretamente il file al database ma temo che man mano l'mdb mi diventi
cosi grande da risultare ingestibile.Voi che ne pensate?chi ha
esperienze in materia?
Infatti quello he volevo fare io è lasciando intatta la mia struttura
di memorizzazione dati sull hard disk, memorizzare solo il percorso
dei vari file nel record in questione. Quindi al momento di aprire un
determinato file aprire il percorso contentente ildocumento stesso (o
se possibile il documento stesso)..ma senza incorporarlo
Che ne pensate, è possibile?
grazie

Popi - TheBadHabits

unread,
Apr 11, 2011, 6:17:47 AM4/11/11
to

Ciao!

Non so il 2007/10, ma qua da me ho sempre optato per la seconda
opzione.

E con un semplice [Shell "CMD.EXE /C """ & NomeDocumento & """",
vbHide] lancio qualsiasi documento che abbia una estensione
riconosciuta dal sistema senza preoccuparmi dell'applicativo ad essa
associato.

HTH
Popi

rasjudah

unread,
Apr 11, 2011, 6:33:05 AM4/11/11
to
> Popi- Nascondi testo citato
>
> - Mostra testo citato -

scusa non riesco a seguirti

allora quello che mi serve è
1 salvare il percorso..con un tasto su una maschera..clicco e vado a
scegliere il percorso del file che voglio "allegare"
2 aprirlo tramite un altro box..


come uso il tuo codice?

grazie

Popi - TheBadHabits

unread,
Apr 11, 2011, 6:51:44 AM4/11/11
to
> scusa non riesco a seguirti
>
> allora quello che mi serve è
> 1 salvare il percorso..con un tasto su una maschera..clicco e vado a
> scegliere il percorso del file che voglio "allegare"
> 2 aprirlo tramite un altro box..
>
> come uso il tuo codice?

Ok, mettiamo che il codice del pulsante con cui scegli il documento
sia qualcosa come quanto segue (la ScegliFileDaAprire e' una funzione
che usa l'API GetOpenFileName) per salvare il nome completo di
percorso del documento scelto.

Private Sub ScegliFile_Click()

Dim NomeFileScelto As String
Dim rsDocumenti As DAO.RecordSet

NomeFileScelto = ScegliFileDaAprire()

If (NomeFileScelto <> "" ) Then
set rsDocumenti = Me.SubFormDocumenti.RecordSetClone
rsDocumenti.AddNew
rsDocumenti.Fields("NomeDocumentoDaAggiungere") =
NomeFileScelto
rsDocumenti.Update
Set rsDocumenti = Nothing
Me.SubFormDocumenti.Requery

Shell "CMD.EXE /C """ & NomeFileScelto & """", vbHide
End If

End Sub

Se vuoi salvare il documento e mostrarlo al tempo stesso la shell
sara' a valle del salvataggio, altrimenti dovrai inserirla nel codice
evento di (ad esempio) un altro pulsante.

Private Sub VisualizzaDocumento_Click

Shell "CMD.EXE /C """ & Me.NomeDocumentoDaAggiungere & """",
vbHide

End Sub

HTH
Popi

rasjudah

unread,
Apr 11, 2011, 7:14:12 AM4/11/11
to
> Popi- Nascondi testo citato
>
> - Mostra testo citato -

piano piano..
allora
ScegliFileDaAprire() cosa è? un campo del record?

Message has been deleted

rasjudah

unread,
Apr 11, 2011, 7:31:58 AM4/11/11
to
> Popi- Nascondi testo citato
>
> - Mostra testo citato -

per essere piu pecisi..non capisco cosa dovrebbe essero questi

ScegliFileDaAprire()
Me.SubFormDocumenti
("NomeDocumentoDaAggiungere")

Popi - TheBadHabits

unread,
Apr 11, 2011, 8:02:36 AM4/11/11
to
> per essere piu pecisi..non capisco cosa dovrebbe essero questi
>
> ScegliFileDaAprire()
> Me.SubFormDocumenti
> ("NomeDocumentoDaAggiungere")

Mmmmm ... forse è meglio se prima dici tu cosa hai gia' nel db e poi
vediamo cosa fare.

Popi

rasjudah

unread,
Apr 11, 2011, 8:13:05 AM4/11/11
to
> Popi- Nascondi testo citato
>
> - Mostra testo citato -


ok..diciamo che è ancora in fase di progettazione
cmq per partire, ho una tabella "Pratiche"
con i campi
Numero
Cliente
Fattura (si/no)
Percorso (campo che ho creato per memorizzare il percorso del
documento fattura)

prevedo di svilupparlo con aggiunta di ulteriroi campi tipo ORDINE
(si/no) e relativo campo percorso..insomma seguendo piu o meno la
stessa logica

rasjudah

unread,
Apr 12, 2011, 2:32:48 PM4/12/11
to
> stessa logica- Nascondi testo citato

>
> - Mostra testo citato -

potrei avere qualche altra informazione?
grazie

Popi - TheBadHabits

unread,
Apr 13, 2011, 4:40:01 AM4/13/11
to

Ok, quindi avrai una form che conterra', fra gli altri controlli, le
textbox associate ai campi contenenti il percorso dei documenti.

Nella form inserirerai due eventi per ciascun campo come segue (ad
esempio il percorso della fattura).

private sub PercorsoFattura_MouseDown(Button As Integer, Shift As
Integer, X As Single, Y As Single)

' Scegli il percorso se tasto destro premuto
if (button=acRightButton )then
me.percorsofattura =
ScegliFileDaAprire(Me.Hwnd,Nz(me.percorsofattura,""))
endif

end sub

private sub PercorsoFattura_DblClick(Cancel As Integer)

' Visualizza il documento se facciamo doppio click


Shell "CMD.EXE /C """ & Me.NomeDocumentoDaAggiungere & """",vbHide

end sub

La funzione ScegliFileDaAprire() sara' presente in un modulo
(inserisci quanto segue) e servira' per richiamare la finestra
standard di Windows di apertura file.

Public Const OFN_FILEMUSTEXIST = &H1000
Public Const OFN_HIDEREADONLY = &H4
Public Const OFN_PATHMUSTEXIST = &H800

Public Type OpenFilename
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustomFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias
"GetOpenFileNameA" (lpofn As OpenFilename) As Long

Public Function ScegliFile(HandleChiamante As Long, Optional
PercorsoBase As String, Optional EstensioniCercate As String, Optional
TitoloMascheraRicerca As String, Optional FileDeveEsistere As Boolean
= True, Optional NomePredefinito As String) As String

Dim FileScelto As OpenFilename

With FileScelto
.lStructSize =
Len(FileScelto) 'Dimensione della
struttura
.hwndOwner =
HandleChiamante 'Handle della
finestra chiamante la funzione
.hInstance =
0 'Handle
dell'istanza chiamante (non necessario)
.lpstrFilter = Nz(EstensioniCercate, "File di Access (*.MDB)"
& vbNullChar & "*.mdb" & vbNullChar)
'.lpstrFilter = "Tutti i File (*.*)" & vbNullChar & "*.*" &
vbNullChar
'"BMP Files (*.bmp)" & vbNullChar & "*.bmp" &
vbNullChar
'"GIF Files (*.gif)" & vbNullChar & "*.gif" &
vbNullChar
'"JPG Files (*.jpg)" & vbNullChar & "*.jpg" &
vbNullChar & vbNullChar
'.lpstrCustomFilter is ignored -- unused string
.nMaxCustomFilter = 0
.nFilterIndex =
1 'Default filter is
the first one
.lpstrFile = Left$(Nz(NomePredefinito, "") & Space$(256), 256)
& vbNullChar 'Nessun nome di default, con
spazio sufficiente per path scelto dall'utente
.nMaxFile = Len(.lpstrFile)
.lpstrFileTitle = Space(256) &
vbNullChar 'Spazio destinato al path scelto
dall'utente
.nMaxFileTitle = Len(.lpstrFileTitle)
.lpstrInitialDir = Nz(PercorsoBase, "C:\") &
vbNullChar 'Setta la directory di partenza
.lpstrTitle = Nz(TitoloMascheraRicerca, "Scelta File") &
vbNullChar 'Titolo della dialog
If (FileDeveEsistere = True) Then
.Flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or
OFN_HIDEREADONLY
Else
.Flags = OFN_PATHMUSTEXIST Or OFN_HIDEREADONLY
End If
.nFileOffset =
0 'Le opzioni
restanti non sono necessarie
.nFileExtension = 0
'.lpstrDefExt is ignored -- unused string
.lCustData = 0
.lpfnHook = 0
'.lpTemplateName is ignored -- unused string
End With

If (GetOpenFileName(FileScelto) <> 0) Then
ScegliFile = Left$(FileScelto.lpstrFile,
InStr(FileScelto.lpstrFile, vbNullChar) - 1)
End If

End Function

HTH
Popi

0 new messages