Condividi:        

[Access] Routine per inserire foto in un db

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Access] Routine per inserire foto in un db

Postdi davide70 » 10/03/06 16:34

Ho costruito un database con associate in modo specifico alcune foto ad alcuni dati.

Ora, la procedura utilizzata è la seguente:
Codice: Seleziona tutto
Private Sub Comando109_Click()
Const LocalPath = "c:\percorsofoto\"
Dim Foto, LocalAbsPath
Dim Ret As Double

If ([Form_Scheda Dati1].[Foto - Schema].Value <> "") Then
               Foto = [Form_Scheda Dati1].[Foto - Schema].Value

   LocalAbsPath = LocalPath & Foto
   Ret = Shell("rundll32.exe url.dll,FileProtocolHandler " & (LocalAbsPath))
Else
   MsgBox "Non esiste la foto", vbOKOnly + vbExclamation, "Avviso"
End If
End Sub


Fin qui, tutto bene. Funziona che è una meraviglia (se l'ho trascritta bene).

Il mio problema è che ci sono per una decina di pulsanti con una decina di associazioni diverse su due percorsi diversi.
Installando il database su computer diversi devo ogni volta andare a modificare ogni percorso singolarmente su tutti i pulsanti.
Quello che vorrei fare è creare una maschera dove inserisco una stringa con il percorso ed una routine che vada a piazzare la stringa nei posti giusti.
Qualcuno sa darmi un aiuto?

Grazie Ciao ciao
Davide
davide70
Utente Junior
 
Post: 11
Iscritto il: 03/10/05 10:02

Sponsor
 

Re: Una routine per access

Postdi archimede » 11/03/06 08:56

davide70 ha scritto:Il mio problema è che ci sono per una decina di pulsanti con una decina di associazioni diverse su due percorsi diversi.
Se interpreto correttamente, il tuo problema è il contenuto di LocalPath. In tal caso io metterei questo e altri eventuali parametri generali in una tabella specifica: fare una form per inserire/modificare i dati di questa tabella è un gioco da ragazzi, fare una query SQL (magari in una funzione) per leggere il singolo parametro mi pare altrettanto semplice.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi davide70 » 13/03/06 10:07

Ok, capito più o meno tutto.
C'è un problema... non sono un programmatore.
In altr parole non ho la minima idea di come mettere la stringa della tabella che contiene il percorso (chiamiamola "tabella1" "percorso1") dentro la stringa del localpath.
Chiedo venia se rompo.
Grazie comunque per il buon suggerimento che comunque seguirò.
Ciao ciao
Davide
:-)
davide70
Utente Junior
 
Post: 11
Iscritto il: 03/10/05 10:02

Postdi archimede » 13/03/06 10:16

davide70 ha scritto:non ho la minima idea di come mettere la stringa della tabella che contiene il percorso (chiamiamola "tabella1" "percorso1") dentro la stringa del localpath.
localpath = DLookup("percorso1", "tabella1")

HTH.

Alessandro
archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi davide70 » 14/03/06 13:34

Mettiamola così : Percorso delle fotografie: C:\Percorsofoto\

Usando il comando seguente so che funziona perché l'ho provato:
Codice: Seleziona tutto
Private Sub Comando1_Click()
Const LocalPath = "c:\Percorsofoto\"
Dim Foto, LocalAbsPath
Dim Ret As Double

If ([Form_Scheda A].[Foto 1].Value <> "") Then
               Foto = [Form_Scheda A].[Foto 1].Value

   LocalAbsPath = LocalPath & Foto
   Ret = Shell("rundll32.exe url.dll,FileProtocolHandler " & (LocalAbsPath))
Else
   MsgBox "Non esiste la foto", vbOKOnly + vbExclamation, "Avviso"
End If
End Sub


Ora, per usare una tabella coi percorsi come faccio?

Nome tabella: tabella1
Campi tabella:
ID
Percorso
DescrizionePercorso
In totale nella tabella 2 record:
Record 1:
ID = 1
Percorso = c:\Percorsofoto\
DescrizionePercorso = Percorso delle foto

Record 2:
ID = 2
Percorso = C:\Schemi\
DescrizionePercorso = Percorso degli Schemi
Ho provato come segue ma mi esce un errore (errore di compilazione):

Codice: Seleziona tutto
Private Sub Comando1_Click()
Const LocalPath = DLookup("[Percorso]", "tabella1", "[ID] = 1")
Dim Foto, LocalAbsPath
Dim Ret As Double

If ([Form_Scheda A].[Foto 1].Value <> "") Then
               Foto = [Form_Scheda A].[Foto 1].Value

   LocalAbsPath = LocalPath & Foto
   Ret = Shell("rundll32.exe url.dll,FileProtocolHandler " & (LocalAbsPath))
Else
   MsgBox "Non esiste la foto", vbOKOnly + vbExclamation, "Avviso"
End If
End Sub


Un aiutino? Grazie moltissime
Davide
:-)
davide70
Utente Junior
 
Post: 11
Iscritto il: 03/10/05 10:02

Postdi archimede » 15/03/06 08:43

Non mi pare che nella definizione di una costante si possa usare una funzione come hai fatto tu (ma non ne sono sicuro).
Prova a definire LocalPath come variabile e valorizzala dentro all'if.
Se così non va, posta l'errore esatto.

HTH.

Alessandro

PS: se decidi per una tabella parametri multirecord (il che ha un suo senso), io mi orienterei più verso una struttura del tipo:

Nome tabella: Parametri
Campi tabella:
Parametro (chiave primaria)
Valore

Quindi una funzione come ad esempio (codice NON verificato):
Codice: Seleziona tutto
Function GetParam(Nome) As String
   GetParam = DLookup(Valore, "Parametri", "Parametro='" & Nome & "'")
End Function
archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi davide70 » 16/03/06 10:43

Ho risolto così... speriamo non si inchiodi sugli altri computer, sul mio funziona. Grazie moltissime
Ciao ciao
Davide
:-)
Codice: Seleziona tutto
Private Sub Comando2_Click()
Dim LocalPath As Variant
LocalPath = DLookup("[Percorso]", "Tabella1", "[ID] = 1")
Dim Foto, LocalAbsPath
Dim Ret As Double

If ([Form_Scheda A].[Foto 1].Value <> "") Then
               Foto = [Form_Scheda A].[Foto 1].Value

   LocalAbsPath = LocalPath & Foto
   Ret = Shell("rundll32.exe url.dll,FileProtocolHandler " & (LocalAbsPath))
Else
   MsgBox "Non esiste la foto", vbOKOnly + vbExclamation, "Avviso"
End If
End Sub
davide70
Utente Junior
 
Post: 11
Iscritto il: 03/10/05 10:02


Torna a Applicazioni Office Windows


Topic correlati a "[Access] Routine per inserire foto in un db":


Chi c’è in linea

Visitano il forum: Nessuno e 42 ospiti