+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 8 su 8

Recuperare indirizzo di File

  1. #1
    L'avatar di dade_n
    dade_n non è in linea Scolaretto
    Salve Ragazzi,
    ho recuperato questo codice passato da Gibra per aprire una determinata cartella modificandolo alle mie esigenze solo che io avrei bisogno di recuperare il nome di un determinato file e non solo il nome della cartella
    Dim sMyDir As String
    On Error Resume Next
    sMyDir = CreateObject("Shell.Application").BrowseForFolder(0, "Messaggio nella finestra", 0, 0).Self.Path
    If sMyDir <> "" Then txturl.Text = sMyDir
    
    Mi aiutate a capire come posso fare per favore?

    Ho provato con la commondialog ma mi succede una cosa strana ovvero, dopo avere aperto la schell e selezionato il primo file, quando eseguo una qualunque altra operazione nel mio programma che mi esegue una connessione verso il db, mi si presenta l'errore sulla connessione perchè mi rimane impostato il percorso che ho selezionato con la commondialog questo è il codice che utilizzo
    CommonDialog1.Filter = "Immagine (*.jpg)|*.jpg"
    CommonDialog1.ShowOpen
    txturl.Text = CommonDialog1.FileName
    
    Grazie
    Davide
    Ultima modifica di dade_n; 10-06-2008 09:58  Motivo: Mi ero dimenticato il codice della commondialog
    ℹ️ Leggi di più su dade_n ...

  2. #2
    L'avatar di gibra
    gibra ora è in linea Very Important Person
    Anche se impostando un'apposito flag potrebbe mostrare i nomi dei file, la BrowseForFolder non va bene, primo perchè è un'interfaccia scomoda, secondo perchè non puoi applicare alcun filtro nella selezione.
    Devi usare proprio la CommonDialog Apri, invece che è 100 volte più pratica per l'utente.

    Certo, dipende anche da come la usi, ma non avendo postato il codice che usi per accedere al database non possiamo saperlo.

    Eventualmente puoi guardare questo mio progetto di esempio che dimostra come fare diverse operazioni tra cui anche la selezione di un file di database MDB tramite la CommonDialog.

    Progetto Prova Login

    Ricorda inoltre che applicando come filtro il nomde del DB, l'utente vedrà solo quello (quando lo trova) e questo semplifica di molto la selezione del file perchè non è costretto ad andare a cercarlo se la cartella vi sono molti file: lui vedrà solo quello o nessun file.

    Ciao
    ℹ️ Leggi di più su gibra ...

  3. #3
    L'avatar di dade_n
    dade_n non è in linea Scolaretto
    Ciao Gibra, grazie per la tua risposta,
    ti spiego che cosa mi succede di preciso utilizzando la commondialog:
    con questo codice recupero l'indirizzo del mio file
    CommonDialog1.Filter = "Immagine (*.jpg)|*.jpg"
    CommonDialog1.ShowOpen
    txturl.Text = CommonDialog1.FileName
    
    poi con quest'altro codice mi carico l'immagine precedente in una Image
    If txturl.Text = "" Then
    GoTo fine
    Else
    txtselurl.Text = ""
    txturl.SelStart = Len(txturl.Text) - 4
    txturl.SelLength = 4
    txtselurl.Text = txturl.SelText
        
        If txtselurl.Text = ".JPG" Or txtselurl.Text = ".jpg" Or txtselurl.Text = ".Jpg" Or txtselurl.Text = ".GIF" Or txtselurl.Text = ".gif" Or txtselurl.Text = ".Gif" Or txtselurl.Text = ".ico" Or txtselurl.Text = ".ICO" Or txtselurl.Text = ".Ico" Then
        Image1.Picture = LoadPicture(txturl.Text)
        Else
        MsgBox "L'immagine non è stata trovata, verifica di avere inserito il nome giusto completo di estensione."
        End If
    End If
    fine:
    
    e fin qui nessun problema, poi quando clicco sul bottone che mi salva i dati nel db e quindi mi apre la connessione
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=dati.mdb;Jet OLEDB:Database Password=prova;"
    
    qui però mi viene l'errore perchè lui mi cerca il db nel percorso dove ho caricato precedentemente il file, per esempio, se ho caricato il file c:\pippo\pippo.jpg, lui mi cerca il database il c:\pippo\dati.mdb e ovviamente non lo trova perchè non stà li.
    Hai qualche suggerimento?
    Ciao
    Davide
    ℹ️ Leggi di più su dade_n ...

  4. #4
    L'avatar di spikexx84
    spikexx84 non è in linea Scribacchino
    Ciao, quando tu scrivi

    Quote Originariamente inviato da dade_n Visualizza il messaggio
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=dati.mdb;Jet OLEDB:Database Password=prova;"
    
    Il database (in genere) viene cercato nella cartella da cui viene lanciato l'exe del programma, mentre per un qualche motivo che sinceramente non conosco, se prima di aprire la connessione viene chiamata una CommonDialog la cartella nella quale il file viene cercato diventa quella dove è stata selezionato il file dalla CommonDialog.

    Per risolvere il tuo problema a questo punto è sufficente specificare il percorso completo del database grazie all'App.path
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dati.mdb;Jet OLEDB:Database Password=prova;"
    
    Resta il fatto che sarei molto curioso di sapere a questo punto perchè VisualBasic o il Microsf ActiveX DataObject danno questo errore, o se semplicemente è giusto che lavorino così, e io non ne conosco il motivo

    In bocca al lupo a dade_n e ringrazio anticipatamente chiunque saprà spiegare il perchè dell'anomalia da lui trovata

  5. #5
    L'avatar di dade_n
    dade_n non è in linea Scolaretto
    Ciao spikexx84, hai fatto centro, il problema era proprio quello, aggiungendo App.path il problema non mi si presenta più, ma però mi si presenta da un'altra parte quando carico come sfondo una immagine
    Me.Picture = LoadPicture("\Immagini\Sfondo.jpg")
    
    Come risolvo questo?
    Grazie
    Davide
    ℹ️ Leggi di più su dade_n ...

  6. #6
    L'avatar di spikexx84
    spikexx84 non è in linea Scribacchino
    Ehm... Nella stessa maniera?

    Me.Picture = LoadPicture(App.path & "\Immagini\Sfondo.jpg")
    
    In bocca al lup

  7. #7
    L'avatar di dade_n
    dade_n non è in linea Scolaretto
    Grazie 1000, tutto ok, ho sistemato tutto il mio progettino e adesso è proprio come volevo.
    Grazie ancora a tutti.
    Ciao
    Davide
    ℹ️ Leggi di più su dade_n ...

  8. #8
    L'avatar di gibra
    gibra ora è in linea Very Important Person
    Quote Originariamente inviato da dade_n Visualizza il messaggio
    Ciao Gibra, grazie per la tua risposta,
    ti spiego che cosa mi succede di preciso utilizzando la commondialog:
    con questo codice recupero l'indirizzo del mio file
    CommonDialog1.Filter = "Immagine (*.jpg)|*.jpg"
    CommonDialog1.ShowOpen
    txturl.Text = CommonDialog1.FileName
    
    poi con quest'altro codice mi carico l'immagine precedente in una Image
    If txturl.Text = "" Then
    GoTo fine
    Else
    txtselurl.Text = ""
    txturl.SelStart = Len(txturl.Text) - 4
    txturl.SelLength = 4
    txtselurl.Text = txturl.SelText
     
        If txtselurl.Text = ".JPG" Or txtselurl.Text = ".jpg" Or txtselurl.Text = ".Jpg" Or txtselurl.Text = ".GIF" Or txtselurl.Text = ".gif" Or txtselurl.Text = ".Gif" Or txtselurl.Text = ".ico" Or txtselurl.Text = ".ICO" Or txtselurl.Text = ".Ico" Then
        Image1.Picture = LoadPicture(txturl.Text)
        Else
        MsgBox "L'immagine non è stata trovata, verifica di avere inserito il nome giusto completo di estensione."
        End If
    End If
    fine:
    
    e fin qui nessun problema, poi quando clicco sul bottone che mi salva i dati nel db e quindi mi apre la connessione
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=dati.mdb;Jet OLEDB:Database Password=prova;"
    
    qui però mi viene l'errore perchè lui mi cerca il db nel percorso dove ho caricato precedentemente il file, per esempio, se ho caricato il file c:\pippo\pippo.jpg, lui mi cerca il database il c:\pippo\dati.mdb e ovviamente non lo trova perchè non stà li.
    Hai qualche suggerimento?
    Ciao
    Davide
    Il tuo approccio è completamente sbagliato, se avessi dato un'occhiata al progetto che ti ho indicato avresti capito subito.
    Non si usa mai il percorso assoluto nella stringa di connessione, ma una variabile (che legge il percorso da un file di configurazione).
    Se tu installi il tuo programma su Vista, non funzionerà più.

    Ma se dici di aver risolto, ok.

    Ciao
    ℹ️ Leggi di più su gibra ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. inserire l'indirizzo del NAS su file hosts
    Da mandrak nel forum Microsoft Windows
    Risposte: 5
    Ultimo Post: 01-12-2019, 18:16
  2. Recuperare file mdb danneggiato
    Da Max.Riservo nel forum Microsoft Access
    Risposte: 7
    Ultimo Post: 19-08-2018, 15:02
  3. Recuperare un dato da un indirizzo in RAM
    Da MaurizioLaserbin nel forum Visual Basic .Net
    Risposte: 3
    Ultimo Post: 23-03-2013, 19:12
  4. Recuperare i file in una cartellaProtetta
    Da mark_owen nel forum Microsoft Windows
    Risposte: 2
    Ultimo Post: 28-11-2003, 11:07
  5. come recuperare i frammenti di file perdu
    Da VERDE nel forum Microsoft Windows
    Risposte: 1
    Ultimo Post: 31-07-2003, 23:49