Public const percorso database esterno

di il
8 risposte

Public const percorso database esterno

Buon giorno
Vorrei sapere se è possibile memorizzare in una costante il percorso di un database esterno
che di solito è posizionato su una chiavetta.
vorrei richiamare la costante senza riscrivere ogni volta il codice nelle masachere


Private Sub Form_Open(Cancel As Integer)
On Error GoTo MyError
Dim db As DAO.Database
Set db = CurrentDb()
Dim DBDATI AS String
DBDATI = Left(db.Name, Len(db.Name) - Len(Dir(db.Name))) & "DATI.MDB"
set db = Nothing

MyError:
Exit Sub

End sub

grazie

8 Risposte

  • Re: Public const percorso database esterno

    psq ha scritto:


    Buon giorno
    Vorrei sapere se è possibile memorizzare in una costante il percorso di un database esterno
    che di solito è posizionato su una chiavetta.
    vorrei richiamare la costante senza riscrivere ogni volta il codice nelle masachere
    Private Sub Form_Open(Cancel As Integer)
    On Error GoTo MyError
    Dim db As DAO.Database
    Set db = CurrentDb()
    Dim DBDATI AS String
    DBDATI = Left(db.Name, Len(db.Name) - Len(Dir(db.Name))) & "DATI.MDB"
    set db = Nothing
    
    MyError:
                 Exit Sub
    
    End sub
    grazie
    Sì, si può, perché non dovrebbe essere possibile?
    Occhio che il valore di una costante è scritto "fisso" (costante, appunto), non può essere costruito in base ad altri valori, se non di altre costanti.
    Const DBDATI As String = Left(db.Name, Len(db.Name) - Len(Dir(db.Name))) & "DATI.MDB" 'NON FUNZIONA - basta fare debug
    Const DBDATI As String = "C:\directory1\directory2\DATI.MDB" 'OK
    oppure
    Const Percorso As String = "C:\directory1\directory2\"
    Const DBDATI As String = Percorso & "DATI.MDB" 'OK anche così 
    E' proprio questo che volevi?
  • Re: Public const percorso database esterno

    psq ha scritto:


    Vorrei sapere se è possibile memorizzare in una costante il percorso di un database esterno
    che di solito è posizionato su una chiavetta.
    vorrei richiamare la costante senza riscrivere ogni volta il codice nelle masachere
    La risposta corretta è NO.

    Il motivo è semplice: la lettera attribuita dal sistema alla chiavetta USB quando viene inserita potrebbe cambiare.
    Il fatto che cambi o meno dipende da diversi fattori esterni e non prevedibili.

    Se tu lasci la chiavetta USB senza mai estrarla dal pc si può ragionevolmente supporre che la lettera non cambi, ma non esiste mai una certezza assoluta.

    Se la chiavetta USB dovessere essere utilizzata su più computer, allora è assolutamente da evitare un approccio del genere.

  • Re: Public const percorso database esterno

    Grazie per la risposta
    come a bene descritto Gibra, la chiavetta è usata su diversi pc
    quindi la lettara associata alla chiavetta cambia a seconda del pc

    quindi deduco che non è possibile inserire in una costante il percorso!!!
    giusto?
  • Re: Public const percorso database esterno

    psq ha scritto:


    Grazie per la risposta
    come a bene descritto Gibra, la chiavetta è usata su diversi pc
    quindi la lettara associata alla chiavetta cambia a seconda del pc

    quindi deduco che non è possibile inserire in una costante il percorso!!!
    giusto?
    Giusto. E non solo perché l'ha detto Gibra ( ) ma perché sicuramente hai analizzato tutto quello che avevo scritto io e alla fine, alla domanda:

    Philcattivocarattere ha scritto:


    E' proprio questo che volevi?
    hai capito che non saresti arrivato ad ottenere quello che avevi in mente.
  • Re: Public const percorso database esterno

    Ciao Gibra,
    non si potrebbe tramite api o Fso, aggirare l'ostacolo della costante, individuando il drive o drives rimuovibili per cercare il DB incriminato?
    chiaramente non si parlerà più di costante ma di variabile stringa che conterrà il path.
    che dici?
    un saluto.
  • Re: Public const percorso database esterno

    Secondo me ha poco senso... complicarsi la vita per una cosa di questo tipo.
  • Re: Public const percorso database esterno

    psq ha scritto:


    quindi deduco che non è possibile inserire in una costante il percorso!!!
    giusto?
    Giusto.
  • Re: Public const percorso database esterno

    Goku ha scritto:


    non si potrebbe tramite api o Fso, aggirare l'ostacolo della costante, individuando il drive o drives rimuovibili per cercare il DB incriminato?
    chiaramente non si parlerà più di costante ma di variabile stringa che conterrà il path.
    che dici?
    Tutto è possibile.
    Non esistono limiti, se non quelli nostri, personali.

Devi accedere o registrarti per scrivere nel forum
8 risposte